← All guides
Migration guide
Migrate from Vercel to a VPS when your app outgrows serverless
VercelNext.jsVPSLovableBolt.newBase44v0ReplitCursor
Short answer
The same app runs on a VPS you control, with SSL, deploy steps, backups, and a rollback path.
Why this matters
The app is live, but costs, runtime limits, bot traffic, background jobs, or database needs make Vercel a bad fit.
Walkthrough
- 01
Map what Vercel was doing for you
Before moving, list the platform features your app currently depends on so nothing disappears during migration.
- Capture env vars, build command, install command, and output behavior.
- Identify serverless functions, cron jobs, image optimization, and rewrites.
- If the app came from Lovable, Bolt, Base44, v0, Replit, or Cursor, list any builder-specific preview or export settings too.
- Plan DNS cutover after the VPS version passes smoke tests.
- 02
Choose a VPS runtime
The simplest migration runs the app as a Node process. Docker is better when the app has multiple services or native dependencies.
- Use PM2 for straightforward Next.js apps.
- Use Docker Compose for app plus database, Redis, or workers.
- Put Nginx in front for SSL and routing.
- 03
Cut over safely
A migration should not be a blind DNS switch. Test the server version first and keep a fallback path.
- Smoke test login, payments, forms, API routes, and database writes.
- Lower DNS TTL before cutover if possible.
- Keep Vercel available until the VPS proves stable.
Where RepoAssistant fits
RepoAssistant migrates Vercel apps to VPS when serverless is no longer the right shape.