@intentsolutionsio/vercel-pack 1.0.0 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +67 -44
  3. package/package.json +4 -4
  4. package/skills/vercel-advanced-troubleshooting/SKILL.md +185 -195
  5. package/skills/vercel-advanced-troubleshooting/references/errors.md +11 -0
  6. package/skills/vercel-advanced-troubleshooting/references/evidence-collection-framework.md +34 -0
  7. package/skills/vercel-advanced-troubleshooting/references/examples.md +11 -0
  8. package/skills/vercel-advanced-troubleshooting/references/systematic-isolation.md +56 -0
  9. package/skills/vercel-advanced-troubleshooting/references/timing-analysis.md +35 -0
  10. package/skills/vercel-architecture-variants/SKILL.md +227 -216
  11. package/skills/vercel-architecture-variants/references/errors.md +11 -0
  12. package/skills/vercel-architecture-variants/references/examples.md +12 -0
  13. package/skills/vercel-architecture-variants/references/variant-a-monolith-(simple).md +44 -0
  14. package/skills/vercel-architecture-variants/references/variant-b-service-layer-(moderate).md +72 -0
  15. package/skills/vercel-architecture-variants/references/variant-c-microservice-(complex).md +81 -0
  16. package/skills/vercel-ci-integration/SKILL.md +183 -73
  17. package/skills/vercel-ci-integration/references/errors.md +10 -0
  18. package/skills/vercel-ci-integration/references/examples.md +36 -0
  19. package/skills/vercel-ci-integration/references/implementation.md +54 -0
  20. package/skills/vercel-common-errors/SKILL.md +164 -60
  21. package/skills/vercel-common-errors/references/errors.md +53 -0
  22. package/skills/vercel-common-errors/references/examples.md +23 -0
  23. package/skills/vercel-cost-tuning/SKILL.md +158 -145
  24. package/skills/vercel-cost-tuning/references/cost-estimation.md +34 -0
  25. package/skills/vercel-cost-tuning/references/cost-reduction-strategies.md +40 -0
  26. package/skills/vercel-cost-tuning/references/errors.md +11 -0
  27. package/skills/vercel-cost-tuning/references/examples.md +15 -0
  28. package/skills/vercel-data-handling/SKILL.md +202 -155
  29. package/skills/vercel-data-handling/references/errors.md +11 -0
  30. package/skills/vercel-data-handling/references/examples.md +27 -0
  31. package/skills/vercel-data-handling/references/implementation.md +223 -0
  32. package/skills/vercel-debug-bundle/SKILL.md +163 -67
  33. package/skills/vercel-debug-bundle/references/errors.md +12 -0
  34. package/skills/vercel-debug-bundle/references/examples.md +24 -0
  35. package/skills/vercel-debug-bundle/references/implementation.md +54 -0
  36. package/skills/vercel-deploy-integration/SKILL.md +163 -156
  37. package/skills/vercel-deploy-integration/references/errors.md +11 -0
  38. package/skills/vercel-deploy-integration/references/examples.md +21 -0
  39. package/skills/vercel-deploy-integration/references/google-cloud-run.md +36 -0
  40. package/skills/vercel-deploy-integration/references/vercel-deployment.md +35 -0
  41. package/skills/vercel-deploy-preview/SKILL.md +164 -39
  42. package/skills/vercel-edge-functions/SKILL.md +185 -37
  43. package/skills/vercel-enterprise-rbac/SKILL.md +185 -170
  44. package/skills/vercel-enterprise-rbac/references/errors.md +11 -0
  45. package/skills/vercel-enterprise-rbac/references/examples.md +12 -0
  46. package/skills/vercel-enterprise-rbac/references/role-implementation.md +33 -0
  47. package/skills/vercel-enterprise-rbac/references/sso-integration.md +35 -0
  48. package/skills/vercel-hello-world/SKILL.md +141 -55
  49. package/skills/vercel-incident-runbook/SKILL.md +186 -138
  50. package/skills/vercel-incident-runbook/references/errors.md +11 -0
  51. package/skills/vercel-incident-runbook/references/examples.md +10 -0
  52. package/skills/vercel-incident-runbook/references/immediate-actions-by-error-type.md +41 -0
  53. package/skills/vercel-install-auth/SKILL.md +130 -53
  54. package/skills/vercel-known-pitfalls/SKILL.md +235 -233
  55. package/skills/vercel-known-pitfalls/references/errors.md +11 -0
  56. package/skills/vercel-known-pitfalls/references/examples.md +12 -0
  57. package/skills/vercel-load-scale/SKILL.md +197 -204
  58. package/skills/vercel-load-scale/references/capacity-planning.md +47 -0
  59. package/skills/vercel-load-scale/references/errors.md +11 -0
  60. package/skills/vercel-load-scale/references/examples.md +26 -0
  61. package/skills/vercel-load-scale/references/load-testing-with-k6.md +59 -0
  62. package/skills/vercel-load-scale/references/scaling-patterns.md +65 -0
  63. package/skills/vercel-local-dev-loop/SKILL.md +159 -71
  64. package/skills/vercel-local-dev-loop/references/errors.md +11 -0
  65. package/skills/vercel-local-dev-loop/references/examples.md +21 -0
  66. package/skills/vercel-local-dev-loop/references/implementation.md +60 -0
  67. package/skills/vercel-migration-deep-dive/SKILL.md +202 -187
  68. package/skills/vercel-migration-deep-dive/references/errors.md +11 -0
  69. package/skills/vercel-migration-deep-dive/references/examples.md +12 -0
  70. package/skills/vercel-migration-deep-dive/references/implementation-plan.md +80 -0
  71. package/skills/vercel-migration-deep-dive/references/pre-migration-assessment.md +39 -0
  72. package/skills/vercel-multi-env-setup/SKILL.md +167 -164
  73. package/skills/vercel-multi-env-setup/references/configuration-structure.md +59 -0
  74. package/skills/vercel-multi-env-setup/references/errors.md +11 -0
  75. package/skills/vercel-multi-env-setup/references/examples.md +11 -0
  76. package/skills/vercel-observability/SKILL.md +205 -195
  77. package/skills/vercel-observability/references/alert-configuration.md +40 -0
  78. package/skills/vercel-observability/references/errors.md +11 -0
  79. package/skills/vercel-observability/references/examples.md +13 -0
  80. package/skills/vercel-observability/references/metrics-collection.md +65 -0
  81. package/skills/vercel-performance-tuning/SKILL.md +212 -156
  82. package/skills/vercel-performance-tuning/references/caching-strategy.md +49 -0
  83. package/skills/vercel-performance-tuning/references/errors.md +11 -0
  84. package/skills/vercel-performance-tuning/references/examples.md +13 -0
  85. package/skills/vercel-policy-guardrails/SKILL.md +276 -193
  86. package/skills/vercel-policy-guardrails/references/errors.md +11 -0
  87. package/skills/vercel-policy-guardrails/references/eslint-rules.md +46 -0
  88. package/skills/vercel-policy-guardrails/references/examples.md +10 -0
  89. package/skills/vercel-prod-checklist/SKILL.md +219 -94
  90. package/skills/vercel-prod-checklist/references/errors.md +11 -0
  91. package/skills/vercel-prod-checklist/references/examples.md +25 -0
  92. package/skills/vercel-prod-checklist/references/implementation.md +60 -0
  93. package/skills/vercel-rate-limits/SKILL.md +187 -100
  94. package/skills/vercel-rate-limits/references/errors.md +11 -0
  95. package/skills/vercel-rate-limits/references/examples.md +46 -0
  96. package/skills/vercel-rate-limits/references/implementation.md +66 -0
  97. package/skills/vercel-reference-architecture/SKILL.md +226 -180
  98. package/skills/vercel-reference-architecture/references/errors.md +11 -0
  99. package/skills/vercel-reference-architecture/references/examples.md +13 -0
  100. package/skills/vercel-reference-architecture/references/key-components.md +65 -0
  101. package/skills/vercel-reference-architecture/references/project-structure.md +40 -0
  102. package/skills/vercel-reliability-patterns/SKILL.md +272 -211
  103. package/skills/vercel-reliability-patterns/references/circuit-breaker.md +36 -0
  104. package/skills/vercel-reliability-patterns/references/dead-letter-queue.md +48 -0
  105. package/skills/vercel-reliability-patterns/references/errors.md +11 -0
  106. package/skills/vercel-reliability-patterns/references/examples.md +11 -0
  107. package/skills/vercel-reliability-patterns/references/idempotency-keys.md +36 -0
  108. package/skills/vercel-sdk-patterns/SKILL.md +264 -92
  109. package/skills/vercel-sdk-patterns/references/errors.md +11 -0
  110. package/skills/vercel-sdk-patterns/references/examples.md +45 -0
  111. package/skills/vercel-sdk-patterns/references/implementation.md +67 -0
  112. package/skills/vercel-security-basics/SKILL.md +186 -96
  113. package/skills/vercel-security-basics/references/errors.md +10 -0
  114. package/skills/vercel-security-basics/references/examples.md +70 -0
  115. package/skills/vercel-security-basics/references/implementation.md +39 -0
  116. package/skills/vercel-upgrade-migration/SKILL.md +167 -67
  117. package/skills/vercel-upgrade-migration/references/errors.md +10 -0
  118. package/skills/vercel-upgrade-migration/references/examples.md +51 -0
  119. package/skills/vercel-upgrade-migration/references/implementation.md +29 -0
  120. package/skills/vercel-webhooks-events/SKILL.md +208 -132
  121. package/skills/vercel-webhooks-events/references/errors.md +11 -0
  122. package/skills/vercel-webhooks-events/references/event-handler-pattern.md +37 -0
  123. package/skills/vercel-webhooks-events/references/examples.md +16 -0
  124. package/skills/vercel-webhooks-events/references/signature-verification.md +33 -0
@@ -1,244 +1,259 @@
1
1
  ---
2
2
  name: vercel-migration-deep-dive
3
- description: |
4
- Execute Vercel major re-architecture and migration strategies with strangler fig pattern.
5
- Use when migrating to or from Vercel, performing major version upgrades,
6
- or re-platforming existing integrations to Vercel.
7
- Trigger with phrases like "migrate vercel", "vercel migration",
8
- "switch to vercel", "vercel replatform", "vercel upgrade major".
9
- allowed-tools: Read, Write, Edit, Bash(npm:*), Bash(node:*), Bash(kubectl:*)
3
+ description: 'Migrate to Vercel from other platforms or re-architecture existing Vercel
4
+ deployments.
5
+
6
+ Use when migrating from Netlify, AWS, or Cloudflare to Vercel,
7
+
8
+ or when re-platforming an existing Vercel application.
9
+
10
+ Trigger with phrases like "migrate to vercel", "vercel migration",
11
+
12
+ "switch to vercel", "netlify to vercel", "aws to vercel", "vercel replatform".
13
+
14
+ '
15
+ allowed-tools: Read, Write, Edit, Bash(vercel:*), Bash(npm:*), Bash(npx:*)
10
16
  version: 1.0.0
11
17
  license: MIT
12
18
  author: Jeremy Longshore <jeremy@intentsolutions.io>
19
+ tags:
20
+ - saas
21
+ - vercel
22
+ - migration
23
+ - replatform
24
+ compatibility: Designed for Claude Code, also compatible with Codex and OpenClaw
13
25
  ---
14
-
15
26
  # Vercel Migration Deep Dive
16
27
 
17
28
  ## Overview
18
- Comprehensive guide for migrating to or from Vercel, or major version upgrades.
19
29
 
20
- ## Prerequisites
21
- - Current system documentation
22
- - Vercel SDK installed
23
- - Feature flag infrastructure
24
- - Rollback strategy tested
30
+ Migrate applications to Vercel from Netlify, AWS (Lambda/CloudFront/S3), Cloudflare Workers, or traditional hosting. Covers configuration mapping, DNS cutover, feature parity validation, and incremental migration with the strangler fig pattern.
25
31
 
26
- ## Migration Types
32
+ ## Current State
27
33
 
28
- | Type | Complexity | Duration | Risk |
29
- |------|-----------|----------|------|
30
- | Fresh install | Low | Days | Low |
31
- | From competitor | Medium | Weeks | Medium |
32
- | Major version | Medium | Weeks | Medium |
33
- | Full replatform | High | Months | High |
34
+ !`vercel --version 2>/dev/null || echo 'Vercel CLI not installed'`
35
+ !`cat package.json 2>/dev/null | jq -r '.name // "no package.json"' 2>/dev/null || echo 'N/A'`
34
36
 
35
- ## Pre-Migration Assessment
36
-
37
- ### Step 1: Current State Analysis
38
- ```bash
39
- # Document current implementation
40
- find . -name "*.ts" -o -name "*.py" | xargs grep -l "vercel" > vercel-files.txt
37
+ ## Prerequisites
41
38
 
42
- # Count integration points
43
- wc -l vercel-files.txt
39
+ - Access to current hosting platform
40
+ - Git repository with application source
41
+ - DNS management access for domain cutover
42
+ - Vercel account (Pro recommended for production)
44
43
 
45
- # Identify dependencies
46
- npm list | grep vercel
47
- pip freeze | grep vercel
48
- ```
44
+ ## Instructions
49
45
 
50
- ### Step 2: Data Inventory
51
- ```typescript
52
- interface MigrationInventory {
53
- dataTypes: string[];
54
- recordCounts: Record<string, number>;
55
- dependencies: string[];
56
- integrationPoints: string[];
57
- customizations: string[];
46
+ ### Step 1: Configuration Mapping
47
+
48
+ **From Netlify:**
49
+
50
+ | Netlify | Vercel Equivalent |
51
+ |---------|-------------------|
52
+ | `netlify.toml` | `vercel.json` |
53
+ | `_redirects` / `_headers` | `vercel.json` redirects/headers |
54
+ | Netlify Functions (`netlify/functions/`) | API routes (`api/`) |
55
+ | Netlify Edge Functions | Edge Middleware or Edge Functions |
56
+ | `NETLIFY_ENV` | `VERCEL_ENV` |
57
+ | Deploy previews | Preview deployments (automatic) |
58
+ | Branch deploys | Branch preview URLs |
59
+
60
+ ```json
61
+ // Netlify _redirects → vercel.json
62
+ // FROM: /old-page /new-page 301
63
+ // TO:
64
+ {
65
+ "redirects": [
66
+ { "source": "/old-page", "destination": "/new-page", "permanent": true }
67
+ ]
58
68
  }
59
69
 
60
- async function assessVercelMigration(): Promise<MigrationInventory> {
61
- return {
62
- dataTypes: await getDataTypes(),
63
- recordCounts: await getRecordCounts(),
64
- dependencies: await analyzeDependencies(),
65
- integrationPoints: await findIntegrationPoints(),
66
- customizations: await documentCustomizations(),
67
- };
70
+ // Netlify _headers vercel.json
71
+ // FROM: /* X-Frame-Options: DENY
72
+ // TO:
73
+ {
74
+ "headers": [
75
+ {
76
+ "source": "/(.*)",
77
+ "headers": [
78
+ { "key": "X-Frame-Options", "value": "DENY" }
79
+ ]
80
+ }
81
+ ]
68
82
  }
69
83
  ```
70
84
 
71
- ## Migration Strategy: Strangler Fig Pattern
85
+ **From AWS (Lambda + CloudFront + S3):**
72
86
 
87
+ | AWS | Vercel Equivalent |
88
+ |-----|-------------------|
89
+ | Lambda functions | Serverless Functions (`api/`) |
90
+ | Lambda@Edge | Edge Functions / Middleware |
91
+ | CloudFront distributions | Automatic CDN |
92
+ | S3 static hosting | `public/` directory |
93
+ | API Gateway | Automatic routing |
94
+ | CloudFront behaviors | `vercel.json` rewrites |
95
+ | AWS SAM/CDK | `vercel.json` |
96
+ | Secrets Manager | Environment Variables |
97
+
98
+ ```typescript
99
+ // AWS Lambda handler → Vercel Function
100
+ // FROM:
101
+ export const handler = async (event) => {
102
+ return { statusCode: 200, body: JSON.stringify({ hello: 'world' }) };
103
+ };
104
+
105
+ // TO:
106
+ import type { VercelRequest, VercelResponse } from '@vercel/node';
107
+ export default function handler(req: VercelRequest, res: VercelResponse) {
108
+ res.status(200).json({ hello: 'world' });
109
+ }
73
110
  ```
74
- Phase 1: Parallel Run
75
- ┌─────────────┐ ┌─────────────┐
76
- │ Old │ │ New │
77
- │ System │ ──▶ │ Vercel │
78
- │ (100%) │ │ (0%) │
79
- └─────────────┘ └─────────────┘
80
-
81
- Phase 2: Gradual Shift
82
- ┌─────────────┐ ┌─────────────┐
83
- │ Old │ │ New │
84
- │ (50%) │ ──▶ │ (50%) │
85
- └─────────────┘ └─────────────┘
86
-
87
- Phase 3: Complete
88
- ┌─────────────┐ ┌─────────────┐
89
- │ Old │ │ New │
90
- │ (0%) │ ──▶ │ (100%) │
91
- └─────────────┘ └─────────────┘
92
- ```
93
111
 
94
- ## Implementation Plan
112
+ **From Cloudflare Workers/Pages:**
113
+
114
+ | Cloudflare | Vercel Equivalent |
115
+ |------------|-------------------|
116
+ | Workers | Edge Functions |
117
+ | Pages Functions | API routes |
118
+ | KV | Vercel KV or Edge Config |
119
+ | R2 | Vercel Blob |
120
+ | D1 | Vercel Postgres |
121
+ | `wrangler.toml` | `vercel.json` |
122
+
123
+ ### Step 2: Migrate Functions
95
124
 
96
- ### Phase 1: Setup (Week 1-2)
97
125
  ```bash
98
- # Install Vercel SDK
99
- npm install vercel
126
+ # Create Vercel project
127
+ vercel link
100
128
 
101
- # Configure credentials
102
- cp .env.example .env.vercel
103
- # Edit with new credentials
129
+ # Move function files to api/ directory
130
+ mkdir -p api
131
+ # Convert each function to Vercel format
104
132
 
105
- # Verify connectivity
106
- node -e "require('vercel').ping()"
133
+ # Install Vercel types
134
+ npm install --save-dev @vercel/node
107
135
  ```
108
136
 
109
- ### Phase 2: Adapter Layer (Week 3-4)
110
- ```typescript
111
- // src/adapters/vercel.ts
112
- interface ServiceAdapter {
113
- create(data: CreateInput): Promise<Resource>;
114
- read(id: string): Promise<Resource>;
115
- update(id: string, data: UpdateInput): Promise<Resource>;
116
- delete(id: string): Promise<void>;
117
- }
137
+ ### Step 3: Migrate Environment Variables
118
138
 
119
- class VercelAdapter implements ServiceAdapter {
120
- async create(data: CreateInput): Promise<Resource> {
121
- const vercelData = this.transform(data);
122
- return vercelClient.create(vercelData);
123
- }
139
+ ```bash
140
+ # Export from current platform, add to Vercel
141
+ # Netlify:
142
+ netlify env:list --json | jq -r '.[] | "\(.key)=\(.values[0].value)"' > .env.migration
124
143
 
125
- private transform(data: CreateInput): VercelInput {
126
- // Map from old format to Vercel format
127
- }
128
- }
129
- ```
144
+ # Add each to Vercel with proper scoping
145
+ while IFS='=' read -r key value; do
146
+ echo "$value" | vercel env add "$key" production preview development
147
+ done < .env.migration
130
148
 
131
- ### Phase 3: Data Migration (Week 5-6)
132
- ```typescript
133
- async function migrateVercelData(): Promise<MigrationResult> {
134
- const batchSize = 100;
135
- let processed = 0;
136
- let errors: MigrationError[] = [];
137
-
138
- for await (const batch of oldSystem.iterateBatches(batchSize)) {
139
- try {
140
- const transformed = batch.map(transform);
141
- await vercelClient.batchCreate(transformed);
142
- processed += batch.length;
143
- } catch (error) {
144
- errors.push({ batch, error });
145
- }
149
+ # Verify
150
+ vercel env ls
151
+ ```
146
152
 
147
- // Progress update
148
- console.log(`Migrated ${processed} records`);
149
- }
153
+ ### Step 4: Incremental Migration (Strangler Fig)
150
154
 
151
- return { processed, errors };
152
- }
153
- ```
155
+ Route traffic incrementally from old platform to Vercel:
154
156
 
155
- ### Phase 4: Traffic Shift (Week 7-8)
156
- ```typescript
157
- // Feature flag controlled traffic split
158
- function getServiceAdapter(): ServiceAdapter {
159
- const vercelPercentage = getFeatureFlag('vercel_migration_percentage');
157
+ ```json
158
+ // Phase 1: Route /api/* to Vercel, keep everything else on old platform
159
+ // On old platform, add a rewrite/proxy:
160
+ // /api/* https://my-app.vercel.app/api/*
160
161
 
161
- if (Math.random() * 100 < vercelPercentage) {
162
- return new VercelAdapter();
163
- }
162
+ // Phase 2: Move static pages to Vercel
163
+ // Update DNS for staging subdomain first:
164
+ // staging.example.com → cname.vercel-dns.com
164
165
 
165
- return new LegacyAdapter();
166
- }
166
+ // Phase 3: Move production
167
+ // Update DNS A record: example.com → 76.76.21.21
167
168
  ```
168
169
 
169
- ## Rollback Plan
170
+ ### Step 5: DNS Cutover
170
171
 
171
172
  ```bash
172
- # Immediate rollback
173
- kubectl set env deployment/app VERCEL_ENABLED=false
174
- kubectl rollout restart deployment/app
175
-
176
- # Data rollback (if needed)
177
- ./scripts/restore-from-backup.sh --date YYYY-MM-DD
178
-
179
- # Verify rollback
180
- curl https://app.yourcompany.com/health | jq '.services.vercel'
173
+ # Add domain to Vercel
174
+ vercel domains add example.com
175
+
176
+ # Verify domain ownership
177
+ vercel domains inspect example.com
178
+
179
+ # DNS records to set:
180
+ # Apex domain (example.com):
181
+ # A → 76.76.21.21
182
+ #
183
+ # Subdomain (www.example.com):
184
+ # CNAME → cname.vercel-dns.com
185
+ #
186
+ # Or transfer nameservers to Vercel:
187
+ # NS → ns1.vercel-dns.com
188
+ # NS → ns2.vercel-dns.com
189
+
190
+ # Wait for DNS propagation (check with dig)
191
+ dig example.com A +short
192
+ # Should return 76.76.21.21
193
+
194
+ # SSL certificate auto-provisions after DNS verification
181
195
  ```
182
196
 
183
- ## Post-Migration Validation
197
+ ### Step 6: Validate Feature Parity
184
198
 
185
- ```typescript
186
- async function validateVercelMigration(): Promise<ValidationReport> {
187
- const checks = [
188
- { name: 'Data count match', fn: checkDataCounts },
189
- { name: 'API functionality', fn: checkApiFunctionality },
190
- { name: 'Performance baseline', fn: checkPerformance },
191
- { name: 'Error rates', fn: checkErrorRates },
192
- ];
193
-
194
- const results = await Promise.all(
195
- checks.map(async c => ({ name: c.name, result: await c.fn() }))
196
- );
197
-
198
- return { checks: results, passed: results.every(r => r.result.success) };
199
- }
199
+ ```bash
200
+ # Compare old and new deployments
201
+ # Test all routes
202
+ for path in "/" "/about" "/api/health" "/api/users"; do
203
+ echo "=== $path ==="
204
+ echo "Old:"
205
+ curl -sI "https://old.example.com${path}" | head -3
206
+ echo "New:"
207
+ curl -sI "https://my-app.vercel.app${path}" | head -3
208
+ done
209
+
210
+ # Compare headers
211
+ diff <(curl -sI https://old.example.com/ | sort) \
212
+ <(curl -sI https://my-app.vercel.app/ | sort)
213
+
214
+ # Check redirects still work
215
+ curl -sI https://my-app.vercel.app/old-page | grep Location
200
216
  ```
201
217
 
202
- ## Instructions
203
-
204
- ### Step 1: Assess Current State
205
- Document existing implementation and data inventory.
206
-
207
- ### Step 2: Build Adapter Layer
208
- Create abstraction layer for gradual migration.
218
+ ## Migration Checklist
209
219
 
210
- ### Step 3: Migrate Data
211
- Run batch data migration with error handling.
212
-
213
- ### Step 4: Shift Traffic
214
- Gradually route traffic to new Vercel integration.
220
+ | Step | Validated |
221
+ |------|-----------|
222
+ | All functions converted to Vercel format | Required |
223
+ | Environment variables migrated with correct scoping | Required |
224
+ | Redirects and headers ported to vercel.json | Required |
225
+ | DNS configured and SSL provisioned | Required |
226
+ | Preview deployment tested end-to-end | Required |
227
+ | Performance baseline compared (old vs new) | Recommended |
228
+ | Monitoring and alerting configured | Required |
229
+ | Rollback plan documented (DNS revert) | Required |
230
+ | Old platform kept running during validation period | Recommended |
215
231
 
216
232
  ## Output
217
- - Migration assessment complete
218
- - Adapter layer implemented
219
- - Data migrated successfully
220
- - Traffic fully shifted to Vercel
221
233
 
222
- ## Error Handling
223
- | Issue | Cause | Solution |
224
- |-------|-------|----------|
225
- | Data mismatch | Transform errors | Validate transform logic |
226
- | Performance drop | No caching | Add caching layer |
227
- | Rollback triggered | Errors spiked | Reduce traffic percentage |
228
- | Validation failed | Missing data | Check batch processing |
234
+ - Configuration mapped from source platform to Vercel
235
+ - Functions converted to Vercel serverless/edge format
236
+ - Environment variables migrated with proper scoping
237
+ - DNS cutover completed with SSL auto-provisioning
238
+ - Feature parity validated
229
239
 
230
- ## Examples
240
+ ## Error Handling
231
241
 
232
- ### Quick Migration Status
233
- ```typescript
234
- const status = await validateVercelMigration();
235
- console.log(`Migration ${status.passed ? 'PASSED' : 'FAILED'}`);
236
- status.checks.forEach(c => console.log(` ${c.name}: ${c.result.success}`));
237
- ```
242
+ | Error | Cause | Solution |
243
+ |-------|-------|----------|
244
+ | Function format mismatch | AWS/Netlify handler signature | Convert to `(req, res)` or Web API format |
245
+ | Missing env var after migration | Not added to correct environment | Re-add with `vercel env add` |
246
+ | DNS not resolving | Propagation delay | Wait 24-48 hours, check with `dig` |
247
+ | SSL not provisioning | DNS records incorrect | Verify A/CNAME records match Vercel's requirements |
248
+ | 404 on migrated routes | Different path conventions | Add rewrites in vercel.json |
238
249
 
239
250
  ## Resources
251
+
252
+ - [Migrate to Vercel from Netlify](https://vercel.com/docs/getting-started/migration/netlify)
253
+ - [Migrate to Vercel from Cloudflare](https://vercel.com/docs/getting-started/migration/cloudflare)
254
+ - [Working with Domains](https://vercel.com/docs/domains/working-with-domains)
240
255
  - [Strangler Fig Pattern](https://martinfowler.com/bliki/StranglerFigApplication.html)
241
- - [Vercel Migration Guide](https://vercel.com/docs/migration)
242
256
 
243
- ## Flagship+ Skills
244
- For advanced troubleshooting, see `vercel-advanced-troubleshooting`.
257
+ ## Next Steps
258
+
259
+ For advanced troubleshooting, see `vercel-advanced-troubleshooting`.
@@ -0,0 +1,11 @@
1
+ # Error Handling Reference
2
+
3
+ | Issue | Cause | Solution |
4
+ |-------|-------|----------|
5
+ | Data mismatch | Transform errors | Validate transform logic |
6
+ | Performance drop | No caching | Add caching layer |
7
+ | Rollback triggered | Errors spiked | Reduce traffic percentage |
8
+ | Validation failed | Missing data | Check batch processing |
9
+
10
+ ---
11
+ *[Tons of Skills](https://tonsofskills.com) by [Intent Solutions](https://intentsolutions.io) | [jeremylongshore.com](https://jeremylongshore.com)*
@@ -0,0 +1,12 @@
1
+ ## Examples
2
+
3
+ ### Quick Migration Status
4
+
5
+ ```typescript
6
+ const status = await validateVercelMigration();
7
+ console.log(`Migration ${status.passed ? 'PASSED' : 'FAILED'}`);
8
+ status.checks.forEach(c => console.log(` ${c.name}: ${c.result.success}`));
9
+ ```
10
+
11
+ ---
12
+ *[Tons of Skills](https://tonsofskills.com) by [Intent Solutions](https://intentsolutions.io) | [jeremylongshore.com](https://jeremylongshore.com)*
@@ -0,0 +1,80 @@
1
+ # Implementation Plan
2
+
3
+ ## Implementation Plan
4
+
5
+ ### Phase 1: Setup (Week 1-2)
6
+
7
+ ```bash
8
+ # Install Vercel SDK
9
+ npm install vercel
10
+
11
+ # Configure credentials
12
+ cp .env.example .env.vercel
13
+ # Edit with new credentials
14
+
15
+ # Verify connectivity
16
+ node -e "require('vercel').ping()"
17
+ ```
18
+
19
+ ### Phase 2: Adapter Layer (Week 3-4)
20
+
21
+ ```typescript
22
+ // src/adapters/vercel.ts
23
+ interface ServiceAdapter {
24
+ create(data: CreateInput): Promise<Resource>;
25
+ read(id: string): Promise<Resource>;
26
+ update(id: string, data: UpdateInput): Promise<Resource>;
27
+ delete(id: string): Promise<void>;
28
+ }
29
+
30
+ class VercelAdapter implements ServiceAdapter {
31
+ async create(data: CreateInput): Promise<Resource> {
32
+ const vercelData = this.transform(data);
33
+ return vercelClient.create(vercelData);
34
+ }
35
+
36
+ private transform(data: CreateInput): VercelInput {
37
+ // Map from old format to Vercel format
38
+ }
39
+ }
40
+ ```
41
+
42
+ ### Phase 3: Data Migration (Week 5-6)
43
+
44
+ ```typescript
45
+ async function migrateVercelData(): Promise<MigrationResult> {
46
+ const batchSize = 100;
47
+ let processed = 0;
48
+ let errors: MigrationError[] = [];
49
+
50
+ for await (const batch of oldSystem.iterateBatches(batchSize)) {
51
+ try {
52
+ const transformed = batch.map(transform);
53
+ await vercelClient.batchCreate(transformed);
54
+ processed += batch.length;
55
+ } catch (error) {
56
+ errors.push({ batch, error });
57
+ }
58
+
59
+ // Progress update
60
+ console.log(`Migrated ${processed} records`);
61
+ }
62
+
63
+ return { processed, errors };
64
+ }
65
+ ```
66
+
67
+ ### Phase 4: Traffic Shift (Week 7-8)
68
+
69
+ ```typescript
70
+ // Feature flag controlled traffic split
71
+ function getServiceAdapter(): ServiceAdapter {
72
+ const vercelPercentage = getFeatureFlag('vercel_migration_percentage');
73
+
74
+ if (Math.random() * 100 < vercelPercentage) {
75
+ return new VercelAdapter();
76
+ }
77
+
78
+ return new LegacyAdapter();
79
+ }
80
+ ```
@@ -0,0 +1,39 @@
1
+ # Pre-Migration Assessment
2
+
3
+ ## Pre-Migration Assessment
4
+
5
+ ### Step 1: Current State Analysis
6
+
7
+ ```bash
8
+ # Document current implementation
9
+ find . -name "*.ts" -o -name "*.py" | xargs grep -l "vercel" > vercel-files.txt
10
+
11
+ # Count integration points
12
+ wc -l vercel-files.txt
13
+
14
+ # Identify dependencies
15
+ npm list | grep vercel
16
+ pip freeze | grep vercel
17
+ ```
18
+
19
+ ### Step 2: Data Inventory
20
+
21
+ ```typescript
22
+ interface MigrationInventory {
23
+ dataTypes: string[];
24
+ recordCounts: Record<string, number>;
25
+ dependencies: string[];
26
+ integrationPoints: string[];
27
+ customizations: string[];
28
+ }
29
+
30
+ async function assessVercelMigration(): Promise<MigrationInventory> {
31
+ return {
32
+ dataTypes: await getDataTypes(),
33
+ recordCounts: await getRecordCounts(),
34
+ dependencies: await analyzeDependencies(),
35
+ integrationPoints: await findIntegrationPoints(),
36
+ customizations: await documentCustomizations(),
37
+ };
38
+ }
39
+ ```