Deploying Next.js: Vercel vs AWS vs Self-Hosted — An Honest Comparison
The Three Options
When a Next.js project is ready to ship, you have three realistic deployment paths: Vercel (the platform built by the Next.js team), AWS (using Amplify, ECS, or EC2), or self-hosted (a VPS running Docker with Coolify, Dokku, or raw Docker Compose). Each is the right choice in different situations.
Vercel: The Default for Good Reason
Vercel's developer experience is unmatched. Push to GitHub and your app is deployed in under two minutes. Preview deployments for every pull request. Edge functions with global CDN. Automatic image optimization. Built-in analytics. Zero configuration for most Next.js features — ISR, server components, middleware, and cron jobs all work without any setup.
The cost is manageable for most projects: the Pro plan at $20/month covers most SaaS applications. It gets expensive at high traffic volume or if you use many serverless function invocations. For a SaaS with under 100,000 monthly active users, Vercel is almost always the right economic choice when you factor in the engineering time saved.
AWS: Maximum Control, Maximum Complexity
AWS makes sense when you need fine-grained control over infrastructure, have compliance requirements that mandate specific regions or configurations, or are already running significant AWS infrastructure and want to consolidate. ECS with Fargate is the cleanest Next.js deployment on AWS — containerize the app, push to ECR, and run it behind an ALB. Use CloudFront for CDN.
The cost is lower than Vercel at high scale, but the operational overhead is significant. You are responsible for security patches, scaling configuration, health checks, and everything else Vercel handles automatically. Budget at least one engineer-day per month for infrastructure maintenance.
Self-Hosted VPS: Best for Cost-Sensitive Projects
A $12/month Hetzner or DigitalOcean VPS running Coolify can host multiple Next.js applications with full SSL, automatic deployments from GitHub, and a dashboard for monitoring. For clients with strict data residency requirements or tight budgets, this is genuinely excellent value. The trade-off is losing Vercel's edge network — your app runs in one datacenter rather than globally distributed.
My Default Decision Tree
New SaaS or startup → Vercel. Existing AWS infrastructure or enterprise compliance → AWS ECS. Budget under $50/month or European data residency → self-hosted Coolify. This covers 95% of projects. The remaining 5% have unusual requirements that warrant a deeper conversation.
I have deployed Next.js applications across all three platforms for production clients. Get in touch if you need help choosing or setting up your deployment infrastructure.
Hire me for similar projects
Looking for a developer who can build what you just read about? Let's talk.
Get in Touch