Next.js hosting looks cheap right up until your first real invoice. I’ve watched clients casually deploy to Vercel on the free tier, hit a product launch, and then stare at a bill they didn’t budget for. In 2026, with App Router, ISR, and next/image transforms all adding to the tab, the cost story has gotten more complex—not less. Here’s what the numbers actually look like at mid-traffic scale, and more importantly, when each platform is worth it.
Let’s walk through each option with the same baseline: ~80k page views/month, ~4 GB egress, ISR on ~200 routes, and roughly 300k image transforms via next/image.
1. The baseline that actually matters
Most hosting comparisons use toy traffic numbers or cherry-pick the free tier. The numbers I care about are what you hit after a successful product launch or a solid 6 months of SEO traction: somewhere around 80k page views/month, a CMS backend (Sanity, Contentful, take your pick), ISR rebuilding a few hundred routes, and next/image doing real work.
At that scale, three costs start to bite:
- Egress — every byte you send to users
- Image transforms —
next/imageisn’t free at volume on managed platforms - Function invocations — ISR revalidation and Route Handlers add up fast on per-invocation billing
If your app is mostly static with one or two API routes, this calculus is totally different. But if you’re running a real App Router project with Server Components doing data fetching, RSC payloads, and ISR—read on.
2. Vercel — best DX, highest ceiling
Vercel is still the obvious first choice for Next.js, and honestly the DX justifies the price—to a point. Preview deployments, automatic ISR invalidation wired directly to the framework, Edge Middleware that just works, and zero-config next/image optimization. You’re paying for the tight integration with the framework its creators ship.
At the baseline above, expect to land on the Pro plan at $20/month per seat, then watch add-ons stack: image optimization overages kick in past the plan’s included transforms, and bandwidth overages are $0.15/GB beyond the allotment. Realistically, that 80k page-view site costs$40–$80/month on Pro depending on how aggressively you’re usingnext/image and how many collaborators are on the team.
The ceiling is where it gets uncomfortable. A mid-size e-commerce site doing 500k visits/month with heavy ISR can easily clear $300–$500/month before you’ve added any enterprise features. Vercel’s pricing is designed for teams that treat infra cost as a rounding error versus engineering salaries. If that’s you, stay on Vercel. If it’s not, keep reading.
3. Netlify — closer than you think, with caveats
Netlify’s Next.js support has genuinely improved in 2026. The Essential Next.js plugin handles App Router, Server Components, and ISR reasonably well now. The gotcha is that “reasonably well” isn’t the same as “first-class.” You occasionally run into edge cases where ISR revalidation behaves slightly differently than on Vercel, and debugging it means digging through Netlify’s function logs rather than a nice timeline UI.
Cost-wise, Netlify’s Pro plan is $19/month per seat, roughly matching Vercel. The difference shows up in next/image: Netlify doesn’t run its own image optimization pipeline for Next.js apps the same way—you either offload to an external CDN (Cloudinary, imgix) or pay for transforms separately. At 300k transforms/month, that external bill can dwarf the Netlify plan cost itself.
I’d consider Netlify if you’re already deep in their ecosystem (forms, identity, edge functions for non-Next.js projects) and you want one vendor. Otherwise, the image optimization story alone makes me hesitate.
4. Railway — the sweet spot for teams who code
Railway has become my go-to recommendation for teams that aren’t afraid of writing a Dockerfile or wiring up their own cache headers. You deploy Next.js as a containerized Node.js server, which means you control everything: cache-control headers, ISR behavior via the cache handler, image optimization via a sidecar service or just pointing next/image at a Cloudflare Images endpoint.
At the 80k page-view baseline, Railway runs roughly $15–$35/monthon a reasonable instance size (2 vCPU, 2 GB RAM). Egress is included up to 100 GB on most plans, which covers the 4 GB baseline with massive room to grow. You’re not paying per function invocation or per image transform— you’re paying for compute time and memory.
The tradeoff is real though:
- No automatic preview deployments unless you wire them up yourself (doable with GitHub Actions, but it’s an hour of setup)
- ISR requires a custom cache handler pointed at Redis or a file system mount—Railway supports both, but you have to configure it
- No built-in analytics or Web Vitals dashboard like Vercel’s Speed Insights
If your team has a DevOps bone in its body, Railway is probably saving you $30–$60/month at mid-traffic and $150–$300+/month as you scale.
5. VPS — cheapest floor, real operational cost
A $20/month VPS from Hetzner, DigitalOcean, or Vultr will handle 80k page views easily if you set it up correctly. Nginx in front of a Node.js process, pm2 for process management, a Cloudflare CDN layer absorbing egress cost, and a simple cron for ISR invalidation if you need it. Monthly cost: $20–$40 all-in.
But here’s what the cost comparisons usually omit: the VPS approach trades dollars for hours. Someone has to set up SSL renewal. Someone has to handle the 3am alert when the Node process OOMs and pm2 respawns it in a weird state. Someone has to figure out why ISR isn’t invalidating after a CMS publish. That someone is you, or an engineer on your team.
For solo developers or small teams who enjoy that work—or who have a sysadmin already—a VPS is genuinely great. For a product team trying to ship features, the operational overhead often costs more than the Vercel bill.
6. What I actually recommend to clients
I’ve helped teams migrate both directions—off Vercel when the bill got out of hand, and onto Vercel when a Railway setup became a maintenance burden. Here’s the mental model I use now:
- Stay on Vercel if your team is small (1–3 devs), you ship frequently, and preview deployments are genuinely part of your review process. The time saved on infra maintenance at that team size almost always covers the bill.
- Move to Railway if you’re on Vercel Pro and the bill has crossed $100/month, your team has at least one person comfortable with Docker, and you’re not using Vercel-specific features (Edge Config, Speed Insights, Vercel KV) heavily. The migration is a weekend, not a week.
- Use a VPS if cost is the primary constraint and you have the ops knowledge. Pair it with Cloudflare’s free CDN tier and you have a genuinely solid stack for most mid-traffic Next.js sites.
- Skip Netlify for App Router-heavy projects until the image optimization story improves. It’s better than it was in 2024, but it’s still not first-class.
One pattern I push on almost every engagement: separate your image optimization from your hosting decision. Pointing next/imageat Cloudflare Images or a dedicated imgix account means your image transform cost is predictable and cheap regardless of where the app runs. That single change has dropped hosting bills by $40–$80/month on stores I’ve worked on.
The dirty secret of the Vercel-vs-VPS debate is that the answer changes as your app matures. Start on Vercel, optimize aggressively once you understand your traffic patterns, then make a deliberate decision at $100/month. Trying to optimize hosting costs on day one is premature—worrying about it after you’ve crossed $150/month is too late to avoid a painful migration.
If you’re staring at a Next.js hosting decision right now and want a second opinion on your specific traffic shape and feature usage, a development consultation is probably the fastest way to get an answer without burning a week on benchmarks. Or browse the case studies to see how similar projects ended up structured.
