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

CapabilityVercelGrid
Compute ModelServerless Functions (cold starts)Long-running Containers (no cold starts)
Execution Timeout10s (Hobby) / 60s (Pro) / 900s (Enterprise)Unlimited
Persistent StorageBlob / KV only (3rd party for volumes)Native persistent volumes
DatabaseVercel Postgres/KV/Blob (paid addons)Included Postgres + Redis
Vendor Lock-inHigh (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/monthUnlimited users

Migration Steps

1. Export your data from Vercel

  • Export your Vercel Postgres database using vc db pull or pg_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

  1. Push your code to GitHub
  2. In Grid, click New Service and select your repository
  3. Grid auto-detects the framework and builds
  4. Your app is live with a *.grid.app URL

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

FeatureOn VercelOn Grid
ISR (Incremental Static Regeneration)NativeWorks via next start
Middleware (Edge)Edge RuntimeWorks on Node.js runtime
Image OptimizationManagedBuilt-in via sharp
WebSocket SupportLimitedFull 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