At 250,000 monthly views and 1,572 GB of modelled egress, the same Next.js application costs $102.24 per month on a managed platform and $28.00 on a virtual private server — a difference of $74.24. Static export on a CDN costs $0. There is no cost break-even; the VPS is cheaper at every volume.
Key takeaways
- Bandwidth decides the bill, not compute. Egress overage is 80% of the managed platform total.
- There is no cost break-even. A VPS is cheaper at every volume — the managed premium buys time, not savings.
- The VPS cost is flat. $28.00 covers 250,000 views and holds to 300,000 before the next tier.
- Static export costs effectively nothing — if your app can tolerate losing server-side rendering.
- The real break-even is hourly. At ~1 hour of monthly upkeep, managed only wins if your hour is worth more than $74.
What was tested
A Next.js 15 application with a mix of statically generated and server-rendered routes: a marketing homepage, a documentation section built at compile time, a search page that renders per request, and an API route backed by PostgreSQL. Median page weight across the three most-visited routes is 5.6 MB, dominated by images.
| Variable | Value |
|---|---|
| Monthly page views | 250,000 |
| Server-rendered share | 38% |
| Median page weight | 5.6 MB |
| Modelled egress | 1,572 GB |
| Database | Managed PostgreSQL, 1 GB |
| Cache-miss allowance | 15% |
The managed platform bill
The managed platform bills $102.24: a $20 base plan plus $82.24 in bandwidth overage for 548 GB beyond the included terabyte. Function invocations stay within the included million. The advertised price is $20, so 80% of the bill comes from usage the pricing page describes only in a footnote.
| Line item | Quantity | Cost |
|---|---|---|
| Base plan (Pro, 1 seat) | 1 | $20.00 |
| Bandwidth overage | 548 GB | $82.24 |
| Function invocations | 95k of 1M | $0.00 |
| Image optimisation | Included | $0.00 |
| Total | — | $102.24 |
The VPS bill
The virtual private server costs $28.00: a flat 4 vCPU / 8 GB instance including 5 TB of transfer, which the modelled 1,572 GB of egress sits well inside. The figure does not move with traffic until the next tier at 300,000 monthly views.
| Line item | Spec | Cost |
|---|---|---|
| Compute instance | 4 vCPU / 8 GB | $28.00 |
| Included transfer | 5 TB | $0.00 |
| Transfer overage | 0 GB (1,572 of 5,120) | $0.00 |
| TLS certificates | Let's Encrypt | $0.00 |
| Total | — | $28.00 |
The cost that does not appear on this invoice is time: roughly three hours to provision, harden and deploy, then about an hour a month for patching and monitoring. At $60 an hour that maintenance is worth $60 against a $74.24 saving. Whether the VPS is genuinely cheaper depends on what your hour is worth — which is the actual break-even here, not a traffic level.
The static export bill
Static export costs $0 per month on a CDN free tier, which does not meter bandwidth for static files. The trade-off is real: server-side rendering, the search route and the API endpoint all have to be removed or moved elsewhere. For a documentation or marketing site this is close to free. For an application, it is not an option.
Where the break-even sits
There is no traffic level at which the managed platform is cheaper. Its $20 base plan already exceeds the $12 entry VPS tier, and above roughly 163,000 views the bandwidth overage begins compounding while the VPS price stays flat. The premium buys operational time, never money.
| Monthly page views | Egress | Managed | VPS | Cheaper option |
|---|---|---|---|---|
| 25,000 | 157 GB | $20.00 | $12.00 | VPS by $8.00 |
| 100,000 | 629 GB | $20.00 | $12.00 | VPS by $8.00 |
| 250,000 | 1,572 GB | $102.24 | $28.00 | VPS by $74.24 |
| 600,000 | 3,773 GB | $432.42 | $44.00 | VPS by $388.42 |
How to run this for your own site
Four steps, about twenty minutes, and you will have a realistic figure rather than the advertised one.
- Measure average page weight. Load a representative page with the network tab open and record total transferred bytes. Use the median across your three most-visited routes, not the homepage alone.
- Estimate monthly egress. Multiply page weight by monthly page views, then add roughly 15% for assets that bypass the cache.
- Count server-rendered requests. Separate statically generated routes from server-rendered ones — only the latter consume function invocations.
- Apply the overage tiers. Subtract the included allowances, then price the remainder at the published overage rate.
- Cold start
- The delay incurred when a serverless function receives a request with no warm instance available, forcing the runtime to initialise before any application code runs. On Next.js server-rendered routes this typically adds 200–900 milliseconds, and it is invisible in synthetic tests that hit the same route repeatedly.
Which one to pick
- If an hour of your time is worth less than the monthly gap: take the VPS. At 250,000 views that gap is $74.24 against roughly an hour of upkeep.
- If you have no operations capacity at all: the managed platform is a legitimate purchase — you are buying time, and should not pretend it is a saving.
- Above 500,000 views: the gap widens fast enough that the managed premium becomes very hard to justify on any hourly rate.
- No server-side rendering needed: static export on a CDN, and stop paying for hosting entirely.