Migrating from Vercel
What works, what needs changes
Most Vercel projects deploy on Percher with minimal changes.
What works out of the box
- Next.js (Pages Router and App Router)
- SvelteKit, Remix, Nuxt, Astro
- Static sites (Vite, React, Vue)
- API routes (Express, Hono, Fastify)
- Environment variables
- Custom domains
What needs changes
Vercel Serverless FunctionsRun as a normal Node.js server (Express/Hono) — no cold starts
Vercel Edge FunctionsNot supported — use standard API routes
Vercel KV / Postgres / BlobUse PocketBase (mode = "pocketbase") or external service
vercel.json rewrites/redirectsHandle in your app code or framework config
Vercel Cron JobsUse [crons] in percher.toml
Vercel AnalyticsUse a third-party analytics service
ISR / On-demand RevalidationWorks — Next.js ISR runs in the container
Steps
# 1. Initialize Percher in your Vercel project
cd my-vercel-app
bunx percher init
# Percher auto-detects Next.js/SvelteKit/etc.
# 2. Add a health endpoint (if missing)
# Next.js: create app/api/health/route.ts
# export function GET() { return Response.json({ status: 'ok' }) }
# 3. Move env vars
bunx percher env set DATABASE_URL=...
bunx percher env set STRIPE_KEY=...
# 4. Deploy
bunx percher publish
# Your app is live at your-app.percher.run
# Add your custom domain: bunx percher domains add myapp.com