Published · 2d agoBuild3 min read
Your Next.js hosting bill is a transform count, not a price list
A dev.to breakdown prices one 80k-pageview site across five host categories. The image line can reach 25 times the seat line, which is where the platform-versus-VPS decision actually lives.
Written for builders.See today for builders
What happened
- Reference traffic profile: about 80,000 page views/month, about 4 GB outbound egress/month, ISR on about 200 routes producing roughly 50,000 revalidation function invocations/month, and next/image serving about 300,000 image optimisation requests/month; figures presented as production numbers as of August 2026.
- Stack assumptions for the comparison: Next.js 15 App Router with Sanity CMS backend, peak around 500 concurrent, one staging environment, no video streaming.
- Vercel Pro starts at $20 per seat plus $20 per team, so a two-person team is $60 per month before a single request.
- Vercel image optimisation free tier covers 5,000 source images per month, then about $0.005 per optimised image; at 300,000 transforms that is $1,500.
- ISR function invocations are included up to 1 million per month on Vercel Pro, which the reference site fits inside.
Compiled by The EngineerSomething wrong?How this is made
Why it matters
A cost breakdown published on dev.to in August 2026 prices five categories of Next.js host against a single fixed traffic profile instead of comparing plan sheets. The useful result is not the ranking, it is which line item dominates: for the reference site, seats and bandwidth are rounding errors and image transforms are the bill.
The profile is roughly 80,000 page views a month, about 4 GB of outbound egress, ISR on about 200 routes producing roughly 50,000 revalidation invocations, and next/image serving about 300,000 optimisation requests [1]. The stack is Next.js 15 App Router with a Sanity backend, peak around 500 concurrent, one staging environment, no video [2]. That is a normal content or commerce site for a funded startup, and every number below is anchored to it.
On Vercel Pro, the entry cost is $20 per seat plus $20 per team, so a two-person team pays $60 before a single request [3]. Image optimisation includes 5,000 source images a month and then bills around $0.005 per optimised image, which puts 300,000 transforms at $1,500 [4]. That is 25 times the seat floor [1]. Meanwhile the two metrics buyers usually argue about are nowhere near the limits: 50,000 ISR invocations against 1 million included is 5 percent, and 4 GB against 100 GB of bandwidth is 4 percent [5][6][7]. The profile generates 3.75 transforms per page view [2]. To hold the image line at or below the $60 platform floor you need billable transforms under 12,000, meaning 96 percent of those requests must come from cache or somebody else's CDN [3].
Netlify Core is $19 per seat with 125,000 function invocations free, and the author calls the invocation headroom tight, since 50,000 revalidation calls consume 40 percent of it before general API routes [8][4]. Worth noting that the overage is cheap in absolute terms: at $25 per million invocations, you would need 2.4 million invocations beyond the free tier to spend $60 [8][5]. The exposure is the multiplier, not the rate, and the author's mitigation is batching so one webhook triggers one function that revalidates many tags [10]. Netlify's native image CDN was still in beta as of mid-2026, so images go to Sanity's CDN anyway [9].
The containerised hosts remove the metered lines by removing the managed runtime. No automatic ISR, no built-in image optimisation, and every transform burns your own CPU [11]. Render's Starter is $25 a month for a persistent Node container with no per-invocation billing [12]; Railway bills CPU and RAM seconds and typically lands under $40 at this traffic if sized correctly [13]; Fly.io runs two shared CPUs and 512 MB for $5 to $10 with egress at $0.02/GB, which is 8 cents at 4 GB [14][6]. A Hetzner CX32 at EUR 15 plus Cloudflare comes to roughly $20 to $25 in hard costs [15].
The honest counterweight is labour: TLS renewals, Node upgrades, zero-downtime deploys, logs and alerting, estimated at 2 to 4 hours a month [16]. Two hours exceeds the EUR 15 server at any billable rate above EUR 7.50 an hour [8], so on a client engagement the ops line is the larger number.
What to watch is your own transform counter, not the pricing page. Pin minimumCacheTTL to at least 86,400, set explicit sizes, drop quality to 80, and serve source images from Sanity with auto=format [17]. Do that and the managed hosts get cheap; skip it and a cache purge during a traffic spike writes the invoice.
Claim ledger
Ranked by verification strength, evidence, and original report placement.
- [1]
Reference traffic profile: about 80,000 page views/month, about 4 GB outbound egress/month, ISR on about 200 routes producing roughly 50,000 revalidation function invocations/month, and next/image serving about 300,000 image optimisation requests/month; figures presented as production numbers as of August 2026.
ReportedView cited source - [2]
Stack assumptions for the comparison: Next.js 15 App Router with Sanity CMS backend, peak around 500 concurrent, one staging environment, no video streaming.
ReportedView cited source - [3]
Vercel Pro starts at $20 per seat plus $20 per team, so a two-person team is $60 per month before a single request.
ReportedView cited source - [4]
Vercel image optimisation free tier covers 5,000 source images per month, then about $0.005 per optimised image; at 300,000 transforms that is $1,500.
ReportedView cited source - [5]
ISR function invocations are included up to 1 million per month on Vercel Pro, which the reference site fits inside.
ReportedView cited source - [6]
Vercel includes 100 GB of bandwidth free, which covers the reference site's 4 GB with large headroom.
ReportedView cited source
Sources & coverage · 1 publisher
The reporting this story was synthesized from, earliest first. Every link goes to the original.
- dev.toNayan Kyada2d agoNext.js hosting cost in 2026: Vercel vs Netlify vs Railway vs VPS

