Back to writing
Blog · 05 / 18APR 27, 2026INFRA8 min read

The Real Cost of Vercel at Indie Scale

Vercel is wonderful until your bill is $400 for a side project with 12k MAU. The math, the Hetzner vs Hostinger comparison, and when each wins.

The Real Cost of Vercel at Indie Scale

Vercel is the best place on the internet to ship a Next.js app. The DX is genuinely magical. The first deploy works. The preview URLs are beautiful. The dashboard is the cleanest thing in this corner of the industry. None of that is in dispute.

What is in dispute is the bill at month four, when your side project has 12,000 monthly users, you've blown past the Hobby tier, and the Pro tier just charged you $400 for a thing you used to host on a $5 VPS.

This is the math, the alternatives, and when each one is actually the right call.

The Vercel Cost Model

The Vercel Pro plan is $20/seat/month plus usage. The usage line items that actually matter:

  • Edge requests — generous, hard to exceed
  • Function invocations — the killer for anything API-heavy
  • Function duration — pricing per GB-second, fast to add up
  • Image optimization — every transformed image counts
  • Bandwidth — egress is metered
  • Build minutes — cheap, rarely an issue

A real example from one of my projects: a Next.js 15 app with ~12k MAU, mostly read-heavy with a few image-heavy pages. Pro bill in month four: $387. Breakdown: $40 seats, $90 functions, $130 image optimization, $80 bandwidth, $47 misc. The site has ~$200/month of revenue. The math obviously didn't work.

What I Did Instead

I moved this specific app to a $12/month Hetzner box running:

  • Next.js in Node.js mode (not Vercel adapter)
  • Caddy in front for TLS and HTTP/3
  • A small sharp-based image proxy for next/image
  • Cloudflare in front of Caddy for caching and CDN

Total cost after the move: $12/month for Hetzner, $0 for Cloudflare's free tier, $0 for everything else. The DX is worse—I now manage systemd units and have to think about deploys—but the math is dramatic and the performance is genuinely better at the edge because Cloudflare's network is huge.

Time investment for the move: about 4 hours, including ironing out image optimization. ROI: paid back the first month.

When Vercel Is The Right Call

I want to be fair. Vercel is the right call in specific, common cases:

Pre-revenue projects. If you're not making money yet, the bill is $0 on Hobby, the deploy time is zero, and any time you spend on infra is time you're not spending on the product. Just use Vercel.

Marketing sites with bursty traffic. A landing page that gets HN'd. A launch announcement. The serverless model genuinely shines when traffic is unpredictable.

Heavy ISR / on-demand revalidation. Vercel's caching is excellent. If your app leans on it, replicating the behavior elsewhere is real work.

Teams without ops capacity. If nobody on your team has run a Linux box in five years, the $400 is cheaper than a 3 AM page.

Edge middleware-heavy apps. Geo-routing, A/B testing at the edge, auth checks before the response. Hard to replicate cheaply.

Hetzner vs. Hostinger — The VPS Sub-Comparison

Once you decide to go VPS, the next question is which one. The two I keep recommending and using are Hetzner and Hostinger. They overlap in pricing but solve different problems.

Hetzner CX22 — $4/month, 2 vCPU, 4 GB RAM, 40 GB NVMe, 20 TB egress. Datacenters in Germany, Finland, and the US. Network is fast, the panel is utilitarian, and the experience assumes you know what you're doing. The killer feature is the 20 TB egress allowance—Hostinger and most US hosts have lower or stricter limits.

Hostinger KVM 2 — $7-10/month effective (heavily promo-discounted on annual), 2 vCPU, 8 GB RAM, 100 GB NVMe, 8 TB egress. Datacenters in the US, UK, Netherlands, India, Brazil, and Singapore. The panel is friendlier, the documentation is denser, and they bundle things like a one-click WordPress and a simpler firewall UI. They also cost more if you don't commit annually.

The tradeoffs that matter in practice:

  • Network performance. Hetzner's network is genuinely faster for European and US-East workloads. I've benchmarked both. Hetzner wins on raw throughput by ~30% in my tests.
  • Geographic spread. Hostinger wins for India, Brazil, and Singapore. Hetzner has nothing close to those regions.
  • Pricing predictability. Hetzner is hourly-billed, no contracts, no promos. The $4/month is the $4/month forever. Hostinger's headline pricing is the promotional annual rate—the renewal price is often 2-3x. Read the fine print.
  • Support. Hostinger has 24/7 chat that actually responds in minutes. Hetzner has email support and you'd better know what you're doing.
  • Snapshots and backups. Hostinger includes weekly backups in most tiers. Hetzner charges separately for backups (~20% of the VPS cost).
  • IPv4 cost. Hetzner charges €0.50/month for an IPv4. Hostinger includes one. Tiny but adds up across many projects.

My rule of thumb in 2026:

  • Hetzner for anything serving primarily Europe or US East, where I want pure cost efficiency and don't care about hand-holding
  • Hostinger for anything serving primarily India, Brazil, or Southeast Asia, or for clients who'll need to log into the panel themselves
  • Cloudflare in front of either, free tier, which makes the underlying VPS region matter much less for static and cacheable content

For my own projects, that's mostly Hetzner. For client work where the client owns the infra, that's mostly Hostinger.

Either is dramatically cheaper than Vercel at scale. The real choice is which one fits your workflow.

When Vercel Stops Being The Right Call

The pattern that consistently breaks Vercel's economics:

  • You have a baseline of constant traffic. Serverless prices well for spiky workloads. For 1,000 requests/second sustained, a $20 VPS crushes a $400 Vercel bill.
  • You're image-heavy. Image optimization charges add up faster than people expect. A separate sharp proxy or a Cloudflare Worker is dramatically cheaper.
  • Your functions do real work. Anything that touches a database, calls an LLM, or processes a payload spends GB-seconds quickly. Cold starts compound the issue.
  • You have predictable scale. Once you can predict traffic within 2x, a fixed-price VPS is almost always cheaper than usage-based pricing.

The economics are not subtle. Serverless is a flexibility tax. The tax is worth paying when you don't yet know your shape. It's not worth paying once you do.

The Stack That's Replacing Vercel For Me

For projects that have outgrown the free tier, the new default stack:

  • Hetzner CX22 ($4) or CCX13 ($12) for EU/US-East workloads, or Hostinger KVM 2 (~$8) for India/Brazil/SEA
  • Caddy for TLS, HTTP/3, gzip, and reverse proxying
  • Docker Compose for the app, Postgres, MinIO, and any background workers
  • Cloudflare in front, free tier, with caching rules tuned to the app
  • GitHub Actions for build, push to a private registry, SSH-deploy via docker compose pull && up -d
  • systemd-timer cron for scheduled tasks
  • Backblaze B2 for backups at $0.005/GB/month

This is roughly $12-25/month for projects up to several hundred thousand requests/day. It scales further with very little additional cost. The deploy story is uglier than git push, but it takes about 30 seconds end-to-end and runs the same on every project.

The Honest Trade

The real trade-off isn't Vercel vs. self-hosting. It's flexibility-per-dollar at unknown scale vs. cost-per-dollar at known scale. Vercel wins the first. Self-hosting wins the second.

The mistake is staying on Vercel after you know your shape. The bill is real, the alternative is straightforward, and the gap between "I can't run a server" and "I can run a server" is now about one weekend of work, most of which Claude Code or Cursor will do for you.

The boring stack is having a moment. It's not nostalgia—it's that LLMs made the boring stack as easy to operate as the magic stack used to feel.

That's the actual headline. The cost math is just the receipt.