From vercel-pack
Provides Vercel architecture blueprints for static sites, full-stack Next.js apps, API backends, and multi-project setups with structures and configs.
How this skill is triggered — by the user, by Claude, or both
Slash command
/vercel-pack:vercel-architecture-variantsThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Choose the right Vercel architecture based on team size, traffic patterns, and technical requirements. Covers five validated blueprints from static site to multi-project enterprise deployment, with migration paths between them.
Choose the right Vercel architecture based on team size, traffic patterns, and technical requirements. Covers five validated blueprints from static site to multi-project enterprise deployment, with migration paths between them.
Best for: Marketing sites, docs, blogs, landing pages Team size: 1-3 developers Traffic: Any (fully CDN-served)
project/
├── public/ # Static assets
├── src/
│ ├── pages/ # Static pages (SSG)
│ └── components/ # React components
├── vercel.json # Headers, redirects
└── package.json
// vercel.json
{
"headers": [
{
"source": "/(.*)",
"headers": [
{ "key": "Cache-Control", "value": "public, max-age=3600, stale-while-revalidate=86400" }
]
}
]
}
Key decisions:
Best for: SaaS applications, dashboards, e-commerce Team size: 2-10 developers Traffic: Low to high
project/
├── src/
│ ├── app/
│ │ ├── api/ # Serverless API routes
│ │ ├── (marketing)/ # Static public pages
│ │ └── dashboard/ # Dynamic authenticated pages
│ ├── lib/ # Shared utilities
│ ├── components/ # UI components
│ └── middleware.ts # Edge auth + routing
├── prisma/ # Database schema
├── vercel.json
└── package.json
// vercel.json
{
"regions": ["iad1"],
"functions": {
"src/app/api/**/*.ts": {
"maxDuration": 30,
"memory": 1024
}
}
}
Key decisions:
app/api/ for backend logicBest for: Mobile app backends, microservices, webhook processors Team size: 1-5 developers Traffic: API-driven
project/
├── api/ # Serverless functions (one per route)
│ ├── users/
│ │ ├── index.ts # GET/POST /api/users
│ │ └── [id].ts # GET/PUT/DELETE /api/users/:id
│ ├── webhooks/
│ │ └── stripe.ts # POST /api/webhooks/stripe
│ └── health.ts # GET /api/health
├── lib/ # Shared utilities
├── vercel.json
└── package.json
// vercel.json
{
"regions": ["iad1", "cdg1"],
"rewrites": [
{ "source": "/v1/(.*)", "destination": "/api/$1" }
],
"headers": [
{
"source": "/api/(.*)",
"headers": [
{ "key": "Access-Control-Allow-Origin", "value": "https://myapp.com" },
{ "key": "Access-Control-Allow-Methods", "value": "GET,POST,PUT,DELETE" }
]
}
]
}
Key decisions:
/v1/* → /api/*)Best for: Multiple related apps, shared component libraries Team size: 5-20 developers Traffic: Varies per app
monorepo/
├── apps/
│ ├── web/ # Main website (Vercel project 1)
│ │ ├── src/
│ │ ├── vercel.json
│ │ └── package.json
│ ├── docs/ # Documentation site (Vercel project 2)
│ │ ├── src/
│ │ ├── vercel.json
│ │ └── package.json
│ └── admin/ # Admin dashboard (Vercel project 3)
│ ├── src/
│ ├── vercel.json
│ └── package.json
├── packages/
│ ├── ui/ # Shared component library
│ ├── config/ # Shared ESLint, TS config
│ └── utils/ # Shared utilities
├── turbo.json
├── pnpm-workspace.yaml
└── package.json
Vercel auto-detects monorepos and builds only the affected app:
// apps/web/vercel.json
{
"ignoreCommand": "npx turbo-ignore"
}
Each app in apps/ is a separate Vercel project with its own domain, env vars, and deployment settings.
Best for: Large organizations with independent teams Team size: 20+ developers across multiple teams Traffic: High
Each zone is an independent Vercel project:
Zone 1: marketing.company.com → Marketing team's Next.js app
Zone 2: app.company.com → Product team's Next.js app
Zone 3: docs.company.com → Docs team's Next.js app
Zone 4: api.company.com → Platform team's API-only project
Main project uses multi-zones (next.config.js):
// Main app: next.config.js
module.exports = {
async rewrites() {
return [
{
source: '/docs/:path*',
destination: 'https://docs.company.com/docs/:path*',
},
{
source: '/blog/:path*',
destination: 'https://marketing.company.com/blog/:path*',
},
];
},
};
Key decisions:
| Factor | Static | Full-Stack | API-Only | Monorepo | Multi-Zone |
|---|---|---|---|---|---|
| Team size | 1-3 | 2-10 | 1-5 | 5-20 | 20+ |
| Deploy independence | N/A | Single | Single | Per-app | Per-team |
| Frontend | Yes | Yes | No | Yes | Yes |
| Database | No | Yes | Yes | Per-app | Per-zone |
| Complexity | Low | Medium | Low | Medium | High |
| Cost | Low | Medium | Low | Medium | High |
Static Site → Full-Stack Next.js → Monorepo → Multi-Zone
↑ ↑ ↑ ↑
Start here Add API routes Add shared Split teams
Add auth packages Independent
Add database deployments
| Error | Cause | Solution |
|---|---|---|
| Monorepo builds all apps | Missing ignoreCommand | Add npx turbo-ignore |
| Multi-zone routing conflict | Overlapping paths | Ensure rewrites don't conflict |
| Shared package not found | pnpm workspace misconfigured | Check pnpm-workspace.yaml includes |
| API-only 404 on root | No public/index.html | Add a minimal index or redirect |
For known pitfalls and anti-patterns, see vercel-known-pitfalls.
npx claudepluginhub fleet-to-force/claude-code-plugins-plus --plugin vercel-pack5plugins reuse this skill
First indexed Jul 10, 2026
Guides selecting Vercel architecture blueprints (static, full-stack, API-only) based on team size, traffic, and requirements. Use when designing new Vercel projects or planning multi-project deployments.
Provides expert guidance for deploying Next.js applications to Vercel, covering environment variables, Edge vs Serverless runtimes, build optimization, preview deployments, and monitoring.
Guides deploying Next.js apps to Vercel, covering environment variables, edge vs serverless runtimes, and build optimizations.