What you get after migration
- Same developer experience: Push to deploy, just like Vercel
- Predictable costs: No per-request pricing or surprise bills from traffic spikes
- Full AWS access: Use any AWS service (RDS, ElastiCache, S3, SQS, etc.)
- Production-ready: Auto-scaling, auto-healing, monitoring, and CI/CD out of the box
- Built-in observability: Open-source stack with Prometheus, Loki, and Grafana—no extra cost
- No vendor lock-in: Your code runs on standard Kubernetes in your own AWS account
Migration overview
Need help? Schedule a migration call and our engineers will assist you through the
entire process.
Step 1: Set up LocalOps environment
Before migrating, you need a LocalOps environment running on AWS.Create LocalOps account
Sign up for LocalOps if you haven’t already.
Connect AWS account
Follow the AWS connection guide to connect your AWS account.
Create environment
Create a new environment (e.g., production) in your preferred AWS region. See
Create new environment.
Create service
Create a new service and connect your GitHub repository. See Create new service.
Step 2: Prepare your application
Next.js applications
If you’re running a Next.js app, LocalOps automatically detects and builds it. Your app will run as a Node.js server rather than serverless functions, which provides:- Faster cold starts
- Persistent connections to databases
- WebSocket support
- No function timeout limits
Serverless functions
If you’re using Vercel Serverless Functions, convert them to standard API routes:Edge functions
Edge Functions need to be converted to standard API routes or middleware. Since your app runs on AWS infrastructure close to your users, latency differences are minimal.Step 3: Migrate Vercel Postgres to Amazon RDS
If you’re using Vercel Postgres, follow these steps to migrate to Amazon RDS.3.1 Create a backup of your Vercel Postgres database
Get your connection string from the Vercel dashboard and usepg_dump:
3.2 Create RDS database in your LocalOps environment VPC
Option A: Using ops.json (Recommended)
Add anops.json file to the root of your repository:
Option B: Manual RDS creation
- Login to AWS Console in the same region as your LocalOps environment
-
Create a DB Subnet Group:
- Navigate to RDS > Subnet groups > Create DB subnet group
- Select the VPC ID from your LocalOps environment
- Add the private subnet IDs from your LocalOps environment
-
Create RDS Instance:
- Navigate to RDS > Create database
- Choose PostgreSQL
- Select the DB subnet group you created
- Set
Publicly accessibleto No - Create a security group allowing port 5432 from
10.0.0.0/16
3.3 Restore backup to Amazon RDS
3.4 Update database connection
Update your application to use the new database:Step 4: Migrate Vercel KV (Redis) to ElastiCache
If you’re using Vercel KV, migrate to Amazon ElastiCache:Step 5: Migrate Vercel Blob to S3
If you’re using Vercel Blob, migrate to Amazon S3:Step 6: Migrate environment variables
- In Vercel dashboard, go to Project Settings > Environment Variables
- Export or copy each variable
- In LocalOps console, navigate to your service > Settings > Secrets
- Add each variable as a secret
Step 7: Deploy and verify
- Push your changes to trigger a deployment
- Check logs in the LocalOps console to verify the application starts correctly
- Test your application endpoints
- Update your DNS to point to the new LocalOps environment
Built-in observability
Every LocalOps environment comes with a fully integrated open-source observability stack—no paid add-ons required.Prometheus + Grafana for metrics
Prometheus automatically collects CPU, memory, disk, and network metrics from every node running your application. View and analyze metrics through pre-built Grafana dashboards, accessible from the Monitoring tab in your environment. You can filter and group metrics by:- Node
- Pod
- Deployment
- Service
- Namespace
Loki + Grafana for logs
Loki automatically collects all logs from STDOUT and STDERR across your services. No log drain configuration needed—just print to console and your logs are captured. Access logs through the same Grafana dashboard, with powerful filtering by Kubernetes namespace, deployment, or custom labels.Custom dashboards
Each environment gets its own Grafana instance with pre-built dashboards for infrastructure monitoring. You can create custom dashboards to visualize application-specific metrics and logs.Migrating Vercel features
| Vercel Feature | LocalOps Equivalent |
|---|---|
| Web Deployments | Web service |
| Serverless Functions | API routes in your app |
| Cron Jobs | Cron jobs |
| Vercel Postgres | Amazon RDS |
| Vercel KV | Amazon ElastiCache |
| Vercel Blob | Amazon S3 |
| Vercel Analytics | Built-in metrics |
| Log Drains | Built-in logging |