Back to Blog
Engineering6 min read

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.

Next.jsDeploymentAWSDevOps

Hire me for similar projects

Looking for a developer who can build what you just read about? Let's talk.

Get in Touch