deploy · tutorial · vps

DHH Exited the Cloud and Saved Millions. Copy Him.

37signals left AWS, bought servers, saved millions. The solo-founder version: same exit logic at $5 scale. The playbook inside.

Hand-coloured postcard titled Moving in Cuba: a dozen people carrying a thatched hut on their shoulders, around 1910
Hand-coloured postcard titled Moving in Cuba: a dozen people carrying a thatched hut on their shoulders, around 1910 · Photo: H. H. Stratton, public domain, via Wikimedia Commons

The cloud bill nobody voted for

In 2022 DHH looked at 37signals' AWS bill — millions yearly for Basecamp and HEY, growing with success — and asked the forbidden question: what if we just... bought computers? By 2023 they'd done it: exited public cloud, bought Dell servers, colocated them, and started reporting the savings publicly (millions over five years, by their accounting).

Those posts read like a permission slip. The scale in question was $1,800 months, not $3M years — but the shape matched exactly: meters growing with success, bills arriving after the damage.

DHH exit cloud energy isn't about hating AWS. It's about refusing to rent what you can own — at every scale, including $5.

Rented vs owned at two scales

Axis 37signals scale Solo scale
Cloud bill ~$3M+/yr AWS (their numbers) $200–1,800/mo meters
Exit hardware Bought servers + colo $5/mo VPS (rented box, flat)
Reported savings Millions over 5 years Thousands yearly, same math
Ops burden after Small ops team ~1 hr/month (updates, snapshots)
Lock-in escaped S3/EKS gravity Vercel meters + DB vendors

Three things DHH proved that apply at $5:

  1. Growth shouldn't raise unit costs. Cloud bills scale with success — every new user costs compute-cents forever. Owned hardware (theirs) and flat boxes (solo) flip the curve: marginal user costs ~$0, so growth dilutes costs instead of multiplying them.
  2. The exit is a weekend, not a migration. 37signals planned quarters (scale demands it); solo exits take Friday-to-Sunday (this post's playbook). Both share the shape: reproduce, migrate, flip, keep the old running as parachute.
  3. Owning boring parts beats renting exciting ones. Nobody's product is "hosting" — it's the undifferentiated heavy lifting DHH named years ago. Clouds sell excitement (450 services!) for boring needs (run code, store rows). Flat boxes plus boring software cover the boring needs at boring prices.

Lineage: DHH proved the logic; solo founders copied it small.

Exit cloud like DHH (solo edition)

Same exit shape, solo scale — from the ditch-Vercel guide this repo ships.

Step 1 — Price your exit the DHH way (savings first).

exit math (one evening, honest numbers):
  cloud run-rate: $1,800/mo meters → $21,600/yr (+ growth multiplier)
  flat replacement: $5/mo box → $60/yr (+ 1 hr/mo)
  year-one savings: ~$21,000. payback on the weekend: immediate.
DHH's math was identical in shape, seven figures larger. Same formula.

Run your numbers before touching anything — exit conviction comes from arithmetic, not ideology. Include growth (meters compound, flat doesn't) and your hour (price it fairly; it's real). If savings don't clear 10x your time cost, stay rented and optimize in place.

Step 2 — Buy (rent flat) the replacement hardware.

# solo equivalent of Dell racks + colo: one CX22 ($5/mo), provisioned by script
# Node 22 + PM2 + SQLite (WAL) + Cloudflare Tunnel + Tailscale + swapfile
# DHH bought computers; you rent one flat computer. Same ownership logic.

Flat VPS is the solo colocation: fixed price, your software, no meters, exit-able anytime. Provision by script (identical boxes, no snowflakes), tunnel for edge, mesh for admin — the Hetzner guide builds it in an afternoon.

Step 3 — Flip like you mean to stay flipped.

# Friday: reproduce stack on box (Vercel still serving, zero risk)
# Saturday: migrate rows + secrets, verify via hosts-file override
# Sunday midnight: DNS flip, old project idles 30 days (parachute, then delete)
# Monday: first flat week begins.

Parachute discipline (old infra idles, not dies) is what makes exits brave — reversibility converts leap into experiment.

That's the deal — on hardware (or flat boxes) nobody can meter.

Two exits, one logic

Check 37signals exit Solo exit (this playbook)
Trigger $3M+/yr, growing $200–1,800/mo, growing
Replacement Owned racks + colo $5 flat VPS
Reported savings Millions / 5 yrs Thousands / yr
Ops after Small team ~1 hr/month
Reversibility Kept accounts during 30-day parachute
Verdict Blogged proudly Same, smaller font

The tax, named out loud at both scales: DHH hired ops attention (hardware fails physically — disks die, colo visits happen), solos inherit ~1 monthly hour (patches, snapshots, disk watch). Clouds genuinely absorb that labor — the question is only its price: millions yearly for 37signals, hundreds monthly for solos.

Own boring parts. Rent excitement never.

BoringPush is the outcome of that exit: the playbook above, pre-scripted, for $199 once.

FAQ

Did DHH exit cloud really save millions, or is it marketing?

Their published accounting claims multi-million five-year savings (verify current posts — the numbers evolve with hardware refreshes). Skeptics note omitted labor costs; DHH counters with headcount actually flat-to-down. Read both sides, then run YOUR math (step 1 above) — the solo case needs no faith, just your last twelve invoices versus $60/year.

Isn't colo/owned hardware overkill inspiration for a $5 VPS post?

The scale differs; the logic is identical (rented-meters → fixed-hardware → savings + control). Inspiration transfers across magnitudes when the mechanism matches — and here it matches exactly: reproduce, migrate, flip, parachute.

What would DHH criticize about the solo VPS version?

Probably the remaining rental (true ownership means hardware, and VPS is still someone's computer) and the single point of failure (one box, no rack redundancy). Fair — answered in order: VPS-flat is the affordable 80% of the exit (meters gone, control gained), and snapshots plus 30-day parachutes cover solo-scale failure modes.

How do I explain the exit to a non-technical cofounder?

Money and sleep: "we pay $X monthly that grows with success; the exit costs one weekend and $5 monthly flat; worst case we flip back in an hour." Founders understand insurance (parachute), payback (immediate), and optionality (reversible). Skip architecture entirely — lead with the invoice delta, close with the rollback plan.

Should early pre-revenue founders exit too, or start flat?

Start flat — skipping the cloud phase entirely beats exiting it (no migration, no meter habits, no surprise-invoice education). The whole playbook compresses to the Hetzner afternoon: provision, push, done.

What comes after the exit — is infrastructure thinking done?

Mostly: quarterly patch-and-snapshot verification, yearly provider price-shopping (takes an afternoon), scale triggers monitored (contention, geography). Infrastructure becomes a utility bill you glance at — the entire point, at $5 as at $3M.

Keep reading

+ all the boring stuff (analytics, auth, SQLite ↔ Supabase, full marketplace, webhooks)

The Agent-First Shipping Kit

Command from your phone.

Built so autonomous AI agents build what you want without breaking what's already paying you.

$199

Get BoringPush

One-time payment · Lifetime updates · Unlimited projects.

Keep reading