Wes Bos published a video about how someone got a hosting bill for a fun side project. A temporary email service called jmail.world went viral — hundreds of millions of pageviews in a single month.
$0
for 30 days of hosting on Vercel
I watched that video and couldn't stop digging. Checked the pricing pages, ran the numbers across providers, built calculators. This site is the result — a complete breakdown of what hosting really costs, and how to never get caught off guard.
jmail.world was a fun weekend project.
A temporary email service that went viral on social media. Hundreds of millions of pageviews in a single month. The creators didn't expect more than a few thousand visitors.
“Around 36% of the bill was just... analytics.”
~36%
Analytics
$17,000
~31%
Requests
$15,000
~21%
Bandwidth
$10,000
~8%
Compute
$4,000
Percentages are approximate, based on public pricing and independent estimates — not an official invoice.
How a side project racks up $46,000.
It starts with a 650KB Facebook icon.
An unoptimized PNG served to every single visitor. No WebP, no CDN, no image optimization. Bandwidth costs skyrocketed.
Then analytics double-dips.
Vercel Analytics at 100% sampling: you pay for the analytics service AND the edge requests it generates. Around 36% of the total bill.
500 requests per minute, per user.
Aggressive hover-based prefetching loaded entire email threads before anyone clicked. Each visitor was a DDoS in miniature.
The math doesn’t lie.
~450M pageviews × ~2MB per visit × no caching = ~$10k in bandwidth alone. Add requests, analytics, and compute — $46,000.
What the jmail creators fixed.
Cloudflare in front of Vercel
cache-status: HIT. Most requests never reach Vercel origin. Immediate cost reduction.
30-day cache + stale-while-revalidate
Archival email data doesn't change. Cache it aggressively: 30 days with SWR fallback.
Vercel reportedly covered the bill
According to public accounts, Vercel's CEO stepped in and covered the $46k bill as a one-time courtesy — not a standard policy. Don't count on this.
Vercel reportedly covered the bill. But that's a one-time courtesy, not a guarantee. You might not be so lucky.
This doesn't have to happen to you.
Understand your costs, apply the right patterns, and deploy with confidence.
This site practices what it preaches.
Every rule in the wiki is applied to this site. Static, lightweight, portable.
See how it's builtCache aggressively
100% static export (SSG). Every page is a plain HTML file, ready for CDN caching with immutable fingerprinted assets.
Prefetch on intent only
Internal routes use <Link prefetch={false}> — no viewport prefetching. External links use plain <a> tags — zero router overhead, zero prefetch leaks. Every link type chosen deliberately.
Lazy-load heavy dependencies
Recharts (~150KB) is loaded via next/dynamic only on pages with charts. The /wiki page loads zero chart JavaScript.
No vendor lock-in
All calculation logic lives in pure TypeScript (lib/). Zero Vercel SDK. Static export means deploy anywhere.
No analytics overhead
Zero analytics scripts. No tracking, no double-dipping, no extra edge requests eating into your budget.
Lightweight first load
No SSR, no API routes, no server runtime. Static HTML + CSS with lazy-loaded JS. The lightest a Next.js app can be.