· vercel / nextjs / deployment
Vercel in 2026: Is It Still Worth It for Your Team?
Vercel's DX is the best default for small teams. At $300–600+/month and 5M pageviews or 5+ developers, the math breaks. The line, and three ways out.
By toolchew
2,217 words · 12 min read
Vercel is the right default for small teams. It’s the wrong choice for teams of 5+ or apps serving media at scale — and unlike 2023, the exits are now production-ready. Here’s exactly where the line is.
Who this is for: You’re running Next.js on Vercel and wondering if the bill is justified. Or you’re starting something new and want to know which platform to pick.
The bill that focused everyone’s attention
A 10-person team. A Next.js monorepo. Middleware running on every request. Unoptimized images. $700/month on Vercel.
That’s not a horror story — it’s a team that grew past the point where Vercel’s defaults are forgiving. Middleware on every request? Each one is an edge request plus CPU time. 28,000 images/month through Vercel’s image optimizer? That’s a separate line item, not covered by bandwidth. Ten developers? $200/month before a single request is served.
This team didn’t even fully migrate off. They kept Vercel for the frontend, moved assets to Cloudflare R2, added a $20/month VPS for compute-heavy APIs. $700/month became $120/month — an 83% reduction — with no frontend code changes.
That’s the shape of most Vercel cost problems: not a rogue feature, but compound defaults. Fix the compounding, and you can often stay.
What Vercel actually costs
Hobby plan (Free): 1M edge requests, 100GB bandwidth, 1M function invocations per month. Hard limits — hit them and the site goes down, not overdrawn.
Pro plan: $20/user/month base. Includes 1TB bandwidth, 10M edge requests. Active CPU billed on-demand (varies by region). Overages:
| Resource | Overage rate |
|---|---|
| Bandwidth | $0.15/GB |
| Edge requests | $2 per 1M |
| Active CPU | ~$0.128/hour (varies by region) |
| Image optimization | $0.05–$0.0812 per 1K (after 5K/month free) |
The September 2025 plan restructure helped. Vercel simplified billing to a flexible credit-based model, added free viewer seats for non-deploying collaborators, and enabled Spend Management by default. Per Vercel, over 100,000 teams were projected to see equal or lower bills.
The per-seat model is still the structural problem. Ten developers is $200/month before a single request lands. That compounds against every overage from there.
Five overage traps
- Per-seat multiplication. 10 developers = $200/month. No workaround.
- Image optimization. Not covered by bandwidth. At pre-Sept 2025 pricing ($5/1K), 28K images/month hit $135 in one documented case; at current rates ($0.05–$0.0812/1K), the same volume costs ~$1.40–$2.27. Use the
unoptimizedprop or offload to Cloudflare Image Resizing if image volume is extreme. - ISR runaway. Misconfigured
revalidateintervals silently accumulate $0.40/1,000 ISR read/write operations. - Edge middleware amplification. Every request through middleware = one edge request + CPU time. Audit what your middleware actually needs to intercept.
- No automatic hard cap by default. Spend Management is on by default now, but it requires you to set the actual limits. Without a cap, overages accumulate silently.
The lock-in question
In 2023, “don’t deploy Next.js anywhere but Vercel” was defensible. Edge Middleware, ISR revalidation, image optimization, and Server Components under load all had Vercel-specific behavior that alternatives couldn’t fully replicate.
That changed in 2026.
OpenNext + SST v3 is production-ready. The AWS adapter originated with SST in 2023 and is now production-ready; the Cloudflare adapter is now maintained by Cloudflare’s own team; Netlify maintains its own. More importantly: the Adapter API is stable in Next.js 16.2. Platforms no longer reverse-engineer build output — there’s a first-class integration point. OpenNext joined the Next.js Ecosystem Working Group in March 2026.
What SST on AWS delivers, fully working:
- Server Components and Server Actions
- ISR with S3 + Lambda + cache layer
- Edge Middleware via CloudFront Functions
- Image optimization via Lambda
- SSG and static file serving via CloudFront CDN
Cost difference at real scale: at 5M pageviews, Vercel runs $300–600+/month. Documented self-hosted migrations on AWS via SST + OpenNext show 80–95% cost reduction at scale. The gap widens with team size, since every extra developer adds $20/month to Vercel’s base cost with no AWS equivalent.
The catch is real: you need to understand AWS, IAM, and an infrastructure tool (Terraform, Pulumi, or CDK). OpenNext isn’t a one-command deploy. If your team has the ops knowledge, it’s now a genuine first-class migration path. If you’re two people pre-launch, it’s the wrong problem to solve today.
Lock-in in 2026: The question isn’t whether you can leave — you clearly can. The question is whether the ops overhead is worth it for your team size and traffic tier.
Alternatives breakdown
Railway — for teams that need real servers
Railway runs long-running servers, not serverless functions. No cold starts. Persistent connections work natively. If you’re building anything with WebSockets, real-time features, or long-running jobs, Railway is the right answer and Vercel isn’t.
Pricing: $5/month Hobby (includes $5 usage credit), $20/month Pro (includes $20 usage credit). Usage billed at $0.000463/vCPU-minute and $0.000231/GB-minute RAM, plus $0.05/GB egress.
When to use it: Background workers, WebSocket servers, APIs that can’t tolerate cold starts, monoliths that aren’t Next.js-specific.
When not to: Pure static sites, or Next.js apps that benefit from global edge distribution. Railway isn’t a CDN.
Railway is the only major Vercel alternative with an active affiliate program — 15% commission on referral revenue. Try Railway.
Cloudflare Pages + Workers — for high-traffic on a fixed budget
No egress charges. That’s the headline. For media-heavy applications at scale, no other platform matches it.
- Pages: Free tier includes unlimited bandwidth and requests. Pro at $20/month adds more concurrent builds and 5,000 builds/month.
- Workers: $5/month for 10M requests; additional requests at $0.30/M. At 100M requests/month with 7ms average CPU, total cost is about $45/month ($32 in requests: $5 base + $27 overage for 90M × $0.30/M; ~$13 in CPU: 670M billable CPU-ms × $0.02/M).
When to use it: Static-heavy sites, high-traffic applications where bandwidth is the cost ceiling, anything where you want edge distribution without per-GB charges.
When not to: Apps that depend on Node.js-specific APIs (Workers runs V8 isolates, not Node.js), or apps that need full Next.js ISR semantics without OpenNext.
For a deeper comparison of Cloudflare Workers and AWS Lambda as migration targets, see Cloudflare Workers vs AWS Lambda in 2026.
No affiliate program — Cloudflare has no affiliate arrangement as of May 2026.
Fly.io — for containerized workloads
Docker-native. Fly gives you real control over what’s running. Shared CPU instances start at $2.02/month; performance instances at $32.19/month. Multi-region deployments are a first-class feature, not a premium add-on.
When to use it: Apps already containerized, teams with Docker or ops experience, multi-region requirements on a controlled budget.
When not to: Teams without container experience, or projects where Vercel’s deploy workflow genuinely accelerates iteration. The tradeoff is real — Fly gives you control, not convenience.
Egress: $0.02/GB in US/EU, $0.04/GB in Asia-Pacific. Reservation blocks available for a 40% discount.
Where Render fits
Render starts at $7/month individual, $25/month for 2GB RAM professional. No confirmed affiliate program. A reasonable middle ground for containerized apps between Fly’s control and Railway’s simplicity, but it doesn’t have a compelling cost advantage over either at the tiers that matter.
Cost comparison by traffic tier
Methodology: Next.js app, mix of static and SSR pages, ~10 edge requests per pageview (HTML + assets + API), ~200KB average page weight, one SSR function invocation per dynamic pageview, 2–3 developers on team.
| Monthly pageviews | Vercel | Railway | Cloudflare | Fly.io |
|---|---|---|---|---|
| 100K | Free (Hobby) | ~$5–10 | Free (Pages) | ~$3–5 |
| 500K | ~$40–60 (Pro, 2 seats) | ~$15–25 | $20 (Pages Pro) | ~$10–15 |
| 1M | ~$80–120 (Pro, 3 seats) | ~$25–40 | $20–45 (Workers) | ~$15–30 |
| 5M | $300–600+ | ~$60–100 | ~$50–80 | ~$40–70 |
Prices verified 2026-05-18. Vercel 5M estimate assumes bandwidth overages at the stated workload profile.
The inflection points:
- Under 500K pageviews, 1–2 developers: Vercel Hobby is free. Hard to beat.
- 500K–2M, ≤3 developers: Vercel Pro is competitive.
- Over 2M, or 5+ developers: Vercel starts losing badly. At 5M pageviews, bandwidth overages alone add $75–150+/month. At 10 developers, you’re paying $200/month before any usage.
Who should stay, who should leave
Stay on Vercel if:
- Pre-PMF or personal project — Hobby is free and genuinely good
- Team is 1–3 people, under 500K monthly pageviews
- App is mostly static (Next.js SSG) — overages are rare
- You need zero-ops: preview deployments, branch previews, instant rollbacks matter to your workflow
- Spend Management is configured with a hard cap
Leave Vercel if:
- Team is 5+ — $100+/month before any usage, and the math doesn’t recover
- You’re serving significant media — Cloudflare Pages + R2 wins on cost at scale
- Monthly Vercel bill exceeds $200 and is trending up
- You need persistent connections (WebSockets, real-time features, long-running jobs) — Railway or Fly.io
- You want self-hosted Next.js on AWS — SST v3 + OpenNext is now production-ready and can cut costs 80–95%
If you’re leaving: three paths
1. Hybrid (lowest friction, fastest ROI)
Keep Vercel for frontend deployment. Move the specific cost drivers:
- Assets and images → Cloudflare R2 ($0.015/GB storage, free egress to Cloudflare network)
- Compute-heavy APIs → a $20/month VPS or Railway container
This is exactly what the $700→$120 case study did. No frontend code changes. No new DevOps expertise required. Works for teams that want a 50–80% bill reduction without a full platform migration.
The one-time setup for images: replace next/image default loader with a custom loader pointed at your R2 bucket, or use Cloudflare Image Resizing. Roughly a half-day of engineering time.
2. Full migration with SST + OpenNext (highest savings, highest effort)
- Install SST v3 and configure the Next.js adapter
- Set up AWS credentials with least-privilege IAM
- Deploy:
sst deploy --stage production - Point your domain to the CloudFront distribution output
- Verify ISR, middleware, and image optimization in staging before cutting over DNS
# minimal SST v3 Next.js setup
npm create sst@latest
# select: Next.js, AWS
sst deploy --stage production
Expect 80–95% cost reduction at scale. Expect 1–3 days of ops work upfront and ongoing AWS hygiene. The stable Adapter API in Next.js 16.2 makes this a supported path, not a community workaround.
3. Containerized (cleanest exit from Next.js lock-in)
If your app isn’t tightly coupled to Next.js ISR or Vercel-specific edge features, containerize it with Next.js standalone output:
FROM node:22-alpine AS builder
WORKDIR /app
COPY . .
RUN npm ci && npm run build
FROM node:22-alpine AS runner
WORKDIR /app
COPY --from=builder /app/.next/standalone ./
COPY --from=builder /app/.next/static ./.next/static
EXPOSE 3000
CMD ["node", "server.js"]
Deploy to Railway, Fly.io, or any Docker-compatible host. You trade Vercel’s edge distribution and ISR for persistent connections, predictable per-month billing, and no per-seat charges.
Verdict
Vercel built its reputation on deployment DX that was genuinely ahead. That’s still partially true in 2026 — the preview deployment workflow is still the fastest path from push to shareable URL, and the zero-ops story is real for small teams.
But the cost model punishes growth in ways that are now avoidable. The September 2025 restructure moved things in the right direction (free viewer seats, default Spend Management), but it didn’t fix per-seat compounding or the bandwidth overage rates at scale.
Pick Vercel if you’re pre-PMF, 1–3 developers, mostly static, bill under $100/month. Configure Spend Management with a hard cap on day one.
Switch if you have 5+ developers, serve significant media, or your monthly bill is above $200 and growing. OpenNext on AWS is now production-ready; Railway is the obvious choice for anything server-shaped; Cloudflare Pages wins for bandwidth-heavy workloads.
The lock-in question is settled: you can leave, and there are three workable ways to do it. The only question is whether the ops cost of leaving is less than the recurring cost of staying.
If you’re also weighing the underlying framework, Next.js 16 vs React Router v7 covers how the choice affects deployment flexibility across platforms.
Caveats
- Pricing verified 2026-05-18. Vercel’s overage rates have changed before; verify at vercel.com/pricing before making decisions.
- Cost estimates assume the stated workload profile. Media-heavy or large-team workloads push Vercel costs higher relative to the table.
- Railway is an affiliate link. toolchew earns a commission on referral revenue if you sign up through /go/railway. The verdict would be the same without the commission — Railway genuinely wins for server-shaped workloads.
- Enterprise pricing and extreme-scale DDoS behavior were not tested.