37signals vs. The Cloud: A $10M Case Study in Repatriation
37signals ran the math, did the work, and saved $10 million. The receipts are public. The question now is: are you willing to run the same numbers for your business?
This is part of a series of articles exploring Cloud Economics. The costs and impacts of cloud decisions, told from the perspective of a technology industry veteran. If you want to start at the beginning or see all the related essays, check out the series page.
When David Heinemeier Hansson posted a photo of two pallets of Dell servers on Twitter in 2022, the cloud industry collectively rolled its eyes. Another contrarian hot take from @DHH, they figured. Cute. Then he posted the receipts.
I remember the reactions in Slack channels and Reddit threads. "They're a tiny company." "This doesn't scale." "They'll be back on AWS in two years." The dismissal was almost reflexive. 37signals has around 60 employees. Basecamp has a few million users. Of course their situation doesn't apply to enterprises running thousands of microservices across 47 regions. That's what I heard repeatedly, and I get it. The cloud narrative is built on scale. What works for a lean, profitable company with stable workloads shouldn't extrapolate to a hypergrowth startup or a financial services firm juggling regulatory requirements in six countries.
Except that's exactly the wrong lesson to take from this case study.
37signals, the company behind Basecamp and HEY, was spending $3.2 million a year on AWS. That wasn't bloat from careless engineering or forgotten test instances. It was a "highly optimized" budget they'd spent years trimming. They'd done everything right: tagged resources, turned on savings plans, ruthlessly killed unused capacity. They'd played the FinOps game perfectly and still felt like they were losing. I've seen this pattern dozens of times consulting with mid-market companies. They implement all the best practices, hire cost optimization specialists, automate their commitment management, and still watch the bill creep up year over year.
In October 2022, DHH announced they were leaving. Not reducing cloud spend. Not going hybrid. Leaving.
I read that announcement three times. There was something in the tone I hadn't heard before from tech leaders. Not anger at the cloud. Not ideology about open source or independence. Just cold arithmetic. "We spent three years optimizing this, and it's still not right."
The eyerolls were audible. Moving off the cloud in 2022 felt like switching from email back to fax machines. The consensus was clear: this would be expensive, complicated, and ultimately a mistake they'd regret in two years when they quietly crawled back to AWS.
But that's not what happened.
By mid-2023, 37signals had saved $1 million. By October 2024, the savings hit almost $2 million annually. Their cloud bill dropped from $3.2 million to $1.3 million. The remaining spend was entirely on AWS S3, locked in by a four-year contract set to expire in summer 2025. Once that rolled off and they migrated to Pure Storage, they'd be off the cloud entirely.
The total? Over $10 million saved in five years. For a company with fewer than 100 employees.
I know what people are thinking at this point. "Of course a small company with no growth obligations can do this. What about us? We're not 37signals." Fair. But stay with me.
Here's what they actually did. They spent $700,000 on Dell R7625 servers, roughly 90 per data center, split across eight 48U cabinets between Deft's Ashburn and Chicago facilities. Power draw was modest, about 40 kW total per site, split among four cabinets. They didn't build a data center. They didn't hire an army of ops engineers. They colocated in managed facilities with a provider they'd worked with since 2010.
Monthly cost? Around $60,000 for both data centers, covering racks, power, bandwidth, and support. That's $720,000 a year, all in. The $700,000 hardware investment was recouped entirely in 2023 as cloud commitments rolled off one by one. Think about that for a second. Hardware they expect to use for five to seven years, fully paid off from six months of savings while AWS contracts expired.
Performance got better too. Median Basecamp request times dropped from 67ms to 19ms. Mean response times fell from 138ms to 95ms. Query times were cut in half. Faster, cheaper, and actually simpler to reason about.
The final piece was storage. They had been storing almost 10 petabytes on S3, paying roughly $1.5 million a year. This was the hidden tax at scale: S3 looked cheap until you multiplied it by petabytes and years. In 2025, they're migrating to 18 petabytes of Pure Storage flash arrays for about $1.5 million upfront. Operating cost? Less than $200,000 a year. AWS even waived $250,000 in egress fees to smooth the exit, a rare gesture driven partly by European Data Act pressure to remove "obstacles to effective switching."
The math is brutal. They're trading $1.5 million a year in S3 rent for $200,000 a year in operational costs after a one-time hardware purchase roughly equal to one year of their old bill. They'll hit breakeven in year one. After that, it's four to six years of pure savings.
Now, here's where most people dismiss the case study entirely. They point out what the analysis "misses": hardware refresh cycles, additional ops headcount, power and cooling costs, security overhead. I've heard all of it. The implication is that 37signals got lucky, or that their situation is too unique to extract lessons from.
But here's what actually happened: they knew their workloads. They knew their traffic patterns. They knew their data footprint. And because they knew those things, they could make a decision based on reality instead of hype.
Except 37signals already accounted for that. They're using managed hosting. Deft handles the hardware maintenance, the network redundancy, the physical security. The ops team didn't explode in size because they weren't trying to hire cloud-native wizards or compete in the DevOps hiring wars. They designed for their actual workloads, not for infinite theoretical scale.
This isn't the first time a major company ran these numbers and came to the same conclusion. Dropbox did it in 2015. They moved off AWS S3 onto custom-built infrastructure and saved $74.6 million over two years. The savings were immediate: $39.5 million in the first year alone. Dropbox had hundreds of millions of users and intimate knowledge of their own workload patterns. Building infrastructure tuned exactly to those needs beat paying AWS to provide general-purpose, infinitely flexible compute.
What both companies share isn't size. It's clarity.
They knew what they were running. They knew how much traffic they were handling. They knew where the money was going. They could answer these questions with precision: "We store X petabytes. We serve Y requests per second. We need Z regions." Most enterprises can't answer those questions accurately. Not because they're incompetent, but because they've never forced themselves to look.
So when does this work, and when doesn't it?
Repatriation makes sense when your workloads are stable and predictable. 37signals knew exactly what Basecamp and HEY needed because they'd been running them for years. They weren't a startup trying to figure out product-market fit. They weren't expecting 10x growth next quarter. Their traffic patterns were well-understood. When you can forecast your workload 80% accurately, the cloud's elastic pricing advantage evaporates. That predictability is everything.
It also works when you've got the ops expertise. 37signals has been running their own hardware since 2010. They already knew how to manage servers, databases, and networks. They weren't learning on the job. If you're a team of developers who've only ever touched cloud consoles, repatriation is a much riskier bet.
You also need workloads heavy enough to justify the overhead. If your total cloud bill is $50,000 a month, buying and managing your own hardware probably won't save you much after you account for operational costs. But at $3 million a year? The unit economics flip dramatically. And here's the thing: there are probably more companies at that scale than people realize. They're just not talking about it because cloud adoption is the default assumption.
Regulatory and data gravity considerations matter too. If you're moving massive amounts of data in and out constantly, or you need to be in 15 regions around the world, the cloud's global reach is hard to replicate. 37signals didn't have that problem. Their workloads live in two U.S. data centers. Their customers don't care if Basecamp runs in AWS or a colo facility in Chicago, they care that it's fast and reliable.
Where repatriation doesn't work is for genuinely variable, unpredictable workloads. If your traffic spikes 50x during Black Friday and drops to baseline the next week, owning that peak capacity year-round is wasteful. The cloud's elasticity is real, and some businesses genuinely need it. But a shocking number of companies convinced themselves they needed infinite scale when what they actually had were steady, predictable workloads that just happened to live in the cloud because that's where everyone said they should be.
I've worked with organizations spending millions on reserved capacity they never use, because they provisioned for scenarios that never materialized. The cloud promised flexibility. Instead, they got locked into commitment cycles just as rigid as owning hardware, but with worse unit economics.
The other place it fails is when organizations treat it like a religion instead of a spreadsheet. Repatriation for its own sake is no smarter than cloud-first for its own sake. The question isn't "cloud or not cloud." It's whether your specific workloads, at your specific scale, with your specific team, cost less to run yourself than to rent.
37signals answered that question with $10 million in savings over five years. They proved that "the cloud is just someone else's computer" isn't just a snarky T-shirt slogan. Sometimes that someone else really is charging Manhattan real estate prices for server time. And sometimes you can just buy the building.
The real lesson isn't that everyone should leave the cloud. It's that everyone should know whether they should leave the cloud. Most companies don't. They moved to AWS in 2015 because that's what you did, and they've been there ever since, assuming the math still works. For some, it does. For others, they're paying a 3x premium for flexibility they'll never use.
And look, I get the impulse to dismiss 37signals as a special case. They're small. They're profitable. They're not under pressure to grow at any cost. But that's exactly why their lesson matters. They had the freedom to ask hard questions, the discipline to answer them honestly, and the courage to act on the answers. Most enterprises have all three, they just don't use them.
Know your workloads. Know your business. Know your spend. If you do those three things honestly, the rest of the decision follows naturally. Some of you will stay on the cloud. Some of you will move portions of your workload. Some of you might follow 37signals and Dropbox and renegotiate your entire infrastructure. But at least it'll be a decision, not a default.
37signals did the math. Then they did the work. Then they saved $10 million. The receipts are public. The performance metrics are public. The network topology diagrams are public. This isn't a thought experiment. It's a case study with auditable results.
The question worth asking isn't whether cloud repatriation is smart. It's whether you're willing to run the numbers honestly enough to find out if you're one of the companies overpaying for convenience you no longer need.
Sources
37signals Cloud Exit Announcement (DHH)
37signals: $3.2M Annual AWS Spend (Data Center Dynamics)
37signals: $2M Annual Savings (The Register, Oct 2024)
37signals S3 Exit & Pure Storage Migration (The Register, May 2025)
37signals & Deft Case Study (PDF)
37signals Datacenter Overview & Performance Metrics
DHH on Pure Storage Migration (LinkedIn)
37signals Cloud Exit FAQ (Reddit)
37signals Employee Count (REWORK Podcast)
Dropbox: $74.6M Savings (GeekWire)
Dropbox Cloud Exit Case Study (TRG Data Centers)