Why We Migrated Off Vercel to Cloudflare Pages + Hetzner — $0 to $180/mo for 10M Requests

Vercel's Pro plan ($20/seat) + bandwidth overages hit $480/mo for our Next.js app. Cloudflare Pages (free) + Hetzner CX42 (€32/mo) for API handles 10M requests at $180/mo total — but we lost Vercel's preview deployments and edge middleware DX.

Published 2026-06-17

Why We Migrated Off Vercel to Cloudflare Pages + Hetzner — $0 to $180/mo for 10M Requests

TL;DR: Vercel Pro + bandwidth overages cost $480/mo for our Next.js 14 app (10M req/mo, 3 seats). Cloudflare Pages (free, unlimited bandwidth) + Hetzner CX42 (€32/mo) for Node.js API = $180/mo total. Trade-off: lost instant preview deployments, edge middleware, and vercel.json simplicity. Full comparison →

The Context

Three-dev team, Next.js 14 (App Router) + tRPC + PostgreSQL (Supabase). Vercel Pro since Jan 2025: 3 seats × $20 = $60/mo base. May 2026 bill: $480/mo — $60 seats + $420 bandwidth overage (2.3TB egress at $0.18/GB over 1TB). Traffic: 10M requests/mo, 60% static (Next.js ISR), 40% dynamic (tRPC API). Evaluated alternatives June 2026.

What We Tested

PlatformUse CaseVerdictWhy
Cloudflare Pages (Free) + Hetzner CX42 (€32/mo)Production: Static on CF Pages, API on Hetzner$180/mo total (€32 server + €15 domain + €0 bandwidth), unlimited egress, DDoS included
Vercel Pro (current)Baseline$480/mo; bandwidth model punishes success
Netlify CoreStatic + Functions alternative⚠️$19/mo/seat + $55/100GB functions + $0.15/GB edge — est $280/mo
Fly.io (2x shared-cpu-1x + 1GB RAM)Full-stack containers⚠️$15/mo each + $0.02/GB egress — est $120/mo but ops burden higher
AWS Amplify + Lambda@EdgeEnterprise comparisonComplex pricing, ~$350/mo estimated, CloudFront costs add up

The Pivot Point

May 15, 2026: Vercel bill $480. CFO asked for alternatives. Archived Next.js output: 'standalone' build → Docker image. Cloudflare Pages: connected GitHub repo, build: "pnpm build && pnpm --filter=web build", output: ".next/static" — static assets served from CF edge (300+ PoPs), free unlimited bandwidth. Dynamic API: Dockerfilefly deploy on Hetzner (via dokku on CX42). tRPC endpoints: app/api/trpc/[trpc]/route.ts → standalone Node server on Hetzner. DNS: api.domain.com → Hetzner A record, domain.com → Cloudflare Pages CNAME. Result: June bill €147 (€32 CX42 + €15 domain + €100 CI/CD GitHub Actions minutes). Latency: p50 45ms (was 38ms on Vercel edge), p99 180ms (was 95ms) — acceptable for B2B SaaS.

What We Use Now

Cloudflare Pages (Free tier) for Next.js static/ISR:

  • Build: pnpm build.vercel/output/static → Pages auto-detects
  • ISR: next.config.js experimental: {isrMemoryCache: true} — revalidation via CF Cache Tags API
  • Preview: CF Pages preview deployments (slower than Vercel: 3–5 min vs 45s)
  • Custom domain: CNAME to *.pages.dev, free cert, WAF included

Hetzner CX42 (€32/mo, 8 vCPU, 16GB RAM, 160GB NVMe) for API:

  • OS: Ubuntu 24.04 + dokku (Heroku-style PaaS on single box)
  • Deploy: git push dokku@api.domain.com:api main → builds Dockerfile, runs migrations, zero-downtime swap
  • Monitoring: netdata (built-in) + uptime-kuma (self-hosted)
  • Backups: dokku postgres:backup → encrypted to Wasabi S3 ($6/TB)

When You’d Choose Differently

  • Vercel if: preview deployment speed is critical (designer/stakeholder feedback loop), edge middleware (rewrites, auth at edge) is core to product, or team lacks Linux/Docker ops capacity — Vercel’s DX is genuinely superior for pure Next.js.
  • Netlify if: you need form handling, identity, edge functions, and want Git-centric workflow without server management — but functions pricing scales poorly.
  • Fly.io / Railway / Render if: you want container-native, global anycast, and managed Postgres/Redis — higher $ but lower ops than self-hosted.
  • AWS / GCP / Azure if: enterprise compliance, existing cloud commitments, or need managed services (RDS, ElastiCache, CloudFront) at scale.

Tool Crucible Rating

DimensionRating (1–5)Notes
Overall462% cost reduction; DX regression on previews/edge is real but manageable
Ease of Use3Cloudflare Pages DX good; Hetzner+dokku requires Linux/Docker comfort
Value5$180 vs $480 = 62% savings; no bandwidth penalty for growth
Support3CF Pages: community + docs; Hetzner: email-only support, no SLA on CX line

This is part of our Hosting & Deployment series. See full comparison: Vercel Alternatives 2026: Cloudflare, Netlify, Fly.io, Hetzner, AWS Compared

Last reviewed 2026-06-17. See our methodology and affiliate policy.