CalculatorCase StudyGuidesWikiChecklistSimulatorAbout

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.

chapter 01 · what happened

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.

chapter 02 · the anatomy

How a side project racks up $46,000.

01

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.

02

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.

03

500 requests per minute, per user.

Aggressive hover-based prefetching loaded entire email threads before anyone clicked. Each visitor was a DDoS in miniature.

04

The math doesn’t lie.

~450M pageviews × ~2MB per visit × no caching = ~$10k in bandwidth alone. Add requests, analytics, and compute — $46,000.

chapter 03 · the fix

What the jmail creators fixed.

01

Cloudflare in front of Vercel

cache-status: HIT. Most requests never reach Vercel origin. Immediate cost reduction.

02

30-day cache + stale-while-revalidate

Archival email data doesn't change. Cache it aggressively: 30 days with SWR fallback.

03

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.

chapter 04 · your turn

This doesn't have to happen to you.

Understand your costs, apply the right patterns, and deploy with confidence.

chapter 05 · dogfooding

This site practices what it preaches.

Every rule in the wiki is applied to this site. Static, lightweight, portable.

See how it's built

Cache 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.