Migration Guides
Guide
Migrating from Vercel
Move your projects from Vercel's serverless platform to Grid's container-based infrastructure.
Before you start: Ensure Grid is installed and running. See the Installation Guide if you haven't set it up yet.
Key Differences
| Capability | Vercel | Grid |
|---|---|---|
| Compute Model | Serverless Functions (cold starts) | Long-running Containers (no cold starts) |
| Execution Timeout | 10s (Hobby) / 60s (Pro) / 900s (Enterprise) | Unlimited |
| Persistent Storage | Blob / KV only (3rd party for volumes) | Native persistent volumes |
| Database | Vercel Postgres/KV/Blob (paid addons) | Included Postgres + Redis |
| Vendor Lock-in | High (Edge Runtime, ISR, proprietary APIs) | Zero (standard Docker) |
| Bandwidth Pricing | $0.15/GB (Enterprise only for overage) | Provider cost (often free up to 20TB) |
| Seat Pricing | $20/user/month | Unlimited users |
Migration Steps
1. Export your data from Vercel
- Export your Vercel Postgres database using
vc db pullorpg_dump - Export Vercel KV data via the Redis CLI
- Download any Vercel Blob storage contents
2. Convert your project for container deployment
Vercel serverless functions need to be wrapped in a small server. For Next.js:
// Instead of Vercel's serverless runtime,
// use next start or a custom server
// package.json
{
"scripts": {
"build": "next build",
"start": "next start -p $PORT"
}
}
// Dockerfile
FROM node:20-alpine
WORKDIR /app
COPY . .
RUN npm ci && npm run build
EXPOSE 3000
CMD ["npm", "start"]Grid's Nixpacks builder can auto-detect Next.js — in most cases no Dockerfile is needed.
3. Deploy to Grid
- Push your code to GitHub
- In Grid, click New Service and select your repository
- Grid auto-detects the framework and builds
- Your app is live with a
*.grid.appURL
4. Migrate environment variables
Copy your environment variables from Vercel to Grid:
# In your project settings on Grid, add:
# All Vercel env vars (without VERCEL_ prefix)
DATABASE_URL=postgres://...
REDIS_URL=redis://...
# No need for VERCEL_URL, VERCEL_ENV, etc.5. Set up custom domain
- Configure your DNS to point to your Grid server IP
- Grid (via Caddy) handles SSL automatically via Let's Encrypt
- No need for Vercel's DNS propagation — just an A record
What changes with Next.js
| Feature | On Vercel | On Grid |
|---|---|---|
| ISR (Incremental Static Regeneration) | Native | Works via next start |
| Middleware (Edge) | Edge Runtime | Works on Node.js runtime |
| Image Optimization | Managed | Built-in via sharp |
| WebSocket Support | Limited | Full support (long-running container) |
What you gain
- Zero cold starts — containers run 24/7
- Unlimited execution time — no 10s/60s timeout
- Persistent volumes — write to disk, not just blob
- No per-user seat pricing — invite your whole team
- Own your infrastructure — keep the AWS bill, not Vercel's markup