Engineering blog · 12 September 2026
37signals left the cloud. The numbers are theirs.
DHH published the cloud-exit arithmetic: Dell in two DCs, KVM/Docker/Kamal, no extra ops headcount, a $3.2M bill cut toward $1.3M, then S3 onto Pure Storage.
- cloud-exit
- cost
- ownership
David Heinemeier Hansson published the 37signals cloud exit as a sequence of first-person posts. The figures below are his, from those posts. They are not OpenXperiments measurements.
The move
In June 2023 DHH wrote that the last application had come home to their own hardware. Six months of work. Seven applications, including heritage products they still support (Basecamp Classic, Highrise, Writeboard, Campfire, Backpack, Ta-da List) and HEY, which had never run off-cloud before.
The stack he names is open source: KVM to slice Dell R7625s (192 threads) into isolated VMs, Docker for the containerised apps, Kamal for zero-downtime deploys and rollbacks. He presents that as a way to avoid Kubernetes and “enterprisey service-contract entanglements.”
Hardware lands at two data centres. Dell ships there; Deft racks. Operations staff, he says, work remotely and “basically never set foot” in the rooms. New IP addresses appear; KVM/Docker/Kamal take over. The lag versus AWS is weeks, not minutes. He argues their load is not unpredictable enough to pay the instant-provisioning premium, and that they can afford to over-provision.
The June 2023 post’s hardware snapshot: about half a million dollars for two pallets — combined 4,000 vCPUs, 7,680 GB RAM, 384 TB NVMe — amortised over five years. The December FAQ says they ordered $600,000 of Dell servers a month after announcing the exit. The October 2024 savings update puts the eventual spend at about $700,000, recouped during 2023 while reserved-instance commitments rolled off.
Headcount and the 2022 bill
DHH’s repeated claim: the operations team did not grow. The same people who ran HEY and Basecamp in the cloud run them on owned machines. He calls reduced ops headcount “the central deceit of the cloud marketing.”
The 2022 cloud budget he published: $3.2 million, “incredibly optimized” — long commitments, right-sizing, monitoring. June 2023 napkin math: save at least $1.5 million per year by owning rather than renting. He also wrote that this hardware cost was less than a third of the annual saving they expected.
The FAQ (December 2023): they had already secured a million dollars in savings by September as reserved instances expired. Hardware, he said, was already paid off by the savings.
2024: $3.2M toward $1.3M
October 2024 is the first “clean year” after contract tails ended. DHH: the cloud bill is down from the $3.2 million/year run rate to $1.3 million — “a saving of almost two million dollars per year for our setup.” Better than the original $7 million over five years estimate, because the new Dell gear fit existing racks and power.
The remaining $1.3 million, he wrote then, was all AWS S3. Compute and managed database/search had been on one-year commitments; file storage was on a four-year deal from 2021, expiring the following summer. They stored almost 10 petabytes in S3, including Basecamp and HEY files, duplicated across regions, mixed storage classes — “still well over a million dollars” after long-term discounts.
The planned replacement: a dual-DC Pure Storage setup, combined 18 petabytes. He said that hardware would cost about the same as one year of AWS S3, fit the existing racks, and that ongoing cost would be “modest service contracts.” He expected another four million dollars over five years, bringing combined cloud-exit savings to well over ten million dollars over five years.
He also wrote that they were looking forward to deleting the AWS account that summer, and that AWS had made S3 egress free if you leave the platform for good.
The S3 clock
March 2025, still on S3: “just shy of $1.5 million/year” for Basecamp, HEY, and everything else, locked by the four-year contract. Departure date he published: 30 June, when that contract expires.
Replacement already racked: Pure Storage in the two primary DCs, 18 petabytes, S3-compatible API — no Ceph or MinIO in his telling. Transfer: almost six petabytes out of S3. He cites AWS’s free 60-day egress window for leavers. On a 40 Gbit pipe he expected at least three weeks.
His reminder arithmetic if they miss the date: five thousand dollars a day while the files remain — $35,000/week, $150,000/month. Over five years he now put S3-exit savings at almost five million, maybe more with growth. Hardware: about $1.5 million for Pure, “a bit less than a million over five years” for warranty and support.
What he is not saying
He still grants the cloud a role: early companies whose spend is immaterial or whose 24-month survival is uncertain; businesses with huge load variance (“buy the baseline, rent the spike”). He says they bought the marketing — cheaper, easier, faster — and that only faster really arrived.
He is also not publishing someone else’s TCO. These are 37signals figures for 37signals workloads.
Why it sits on this site
Cost predictability is the obvious line: a capital purchase they amortise, versus a bill that needed a four-year S3 contract to look tolerable. Custody is the quieter one. Files for Basecamp and HEY move from a hyperscaler object store onto arrays they named, in rooms they already rented, under an operations team that did not grow.
OpenXperiments did not run this exit. We build platforms that are intended to live in the customer data centre from the first pilot, so the institution is not later doing DHH’s arithmetic under a reserved-instance hangover. The lesson we take from his posts is the one he keeps repeating: do the math, and do not treat rented computers as the default once the bill is material.