Skip to main content
DHH Was Right: The Inside Story of 37signals' $10M Cloud Exit
11 min read

DHH Was Right: The Inside Story of 37signals' $10M Cloud Exit

A detailed look at 37signals' AWS exit, the real numbers behind it, and why other companies are starting to follow.

Key Takeaways

  • 37signals slashed infrastructure costs by over 90%, from $3.2M/year on AWS to ~$360K/year on bare metal
  • The $600K hardware investment paid for itself in just 6 months, with same team size and zero new hires
  • AWS operates at 30-40% profit margins; meaning you pay $1.30-$1.40 for every $1 of actual infrastructure
  • Performance improved dramatically: database queries 3-5x faster with no 'noisy neighbors'
  • The migration sparked a movement: Dropbox saved $75M, and 86% of CIOs are now planning cloud repatriation

When David Heinemeier Hansson posted “Why We’re Leaving the Cloud” on October 19, 2022, the tech world collectively lost its mind. Here was the creator of Ruby on Rails, the guy who literally shaped modern web development, declaring that cloud computing was mostly a scam. The reactions ranged from “DHH has finally lost it” to “He’s just being contrarian again.”

Fifteen months later, with 37signals running on their own hardware and projecting $10 million in savings over five years, it turns out the contrarian was right. Again.

Here’s the full story of how one company’s frustration with AWS bills turned into something bigger.

The Road to Revolution: 37signals’ Cloud Journey

To understand why DHH’s announcement was so shocking, you need to understand 37signals’ history with the cloud. They were cloud pioneers, early adopters back when AWS was still new.

The Early Adopter Years (2006-2020)

37signals started using AWS in 2006, back when S3 was the hot new thing and “cloud” was still a meteorological term for most people. As DHH revealed on the Lex Fridman podcast, they were “in the cloud before it was cool.”

For years, it made sense. Basecamp was growing, they were launching new products, and the cloud delivered on its promise of simplicity for small-to-medium workloads. They could spin up new services, experiment with features, and scale without thinking about hardware.

The Warning Signs (2020-2022)

But something changed as 37signals matured. Their workloads became predictable. Basecamp wasn’t doubling every year. It was growing steadily and sustainably. Yet their AWS bills kept climbing at an alarming rate.

By 2022, the numbers had become absurd. Annual cloud spend hit $3.2-3.4 million, with database costs alone exceeding $500,000/year, and costs growing 15-20% annually despite flat usage.

As DHH later told Lex Fridman: “We were paying for the privilege of renting computers at obscene margins. AWS operates at almost 40% margin. That means for every dollar you spend, 40 cents is pure profit.”

The HEY Launch: Cloud’s Last Hurrah

When 37signals launched HEY in June 2020, they went all-in on AWS. It was a new email service competing with Gmail, exactly the kind of project where cloud’s elasticity should shine. And initially, it did. When they expected 30,000 signups in six months but got 300,000 in three weeks, AWS handled it.

But two years later, HEY had become another predictable workload with unpredictable costs. Basically, they were paying landlord-tier prices for infrastructure they could own outright.

The October Manifesto That Started Everything

On October 19, 2022, DHH published “Why We’re Leaving the Cloud” on his personal blog. DHH didn’t bother with a measured technical analysis. He went straight to war with cloud orthodoxy.

The key passages that set the internet on fire:

“Renting computers is (mostly) a bad deal for medium-sized companies like ours with stable growth. The savings promised in reduced complexity never materialized.”

“Let’s take HEY as an example. We’re paying over half a million dollars per year for database and search services from Amazon. Do you know how many insanely beefy servers you could purchase on a budget of half a million dollars per year?”

“It’s like paying a quarter of your house’s value for earthquake insurance when you don’t live anywhere near a fault line.”

But the real bombshell was his attack on the cloud’s economic model:

“AWS’ profit margin is almost 30%. This margin is bound to soar now that they’re extending the useful life of servers. Which is fine! Of course it’s expensive to rent your computers from someone else. But it’s never presented in those terms.”

The Philosophical Argument

The economic argument was only part of it:

“It’s also about what kind of internet we want to operate in the future. It strikes me as downright tragic that this decentralized wonder of the world is now largely operating on computers owned by a handful of mega corporations. This is not what DARPA designed!”

The Plan: From Cloud to Metal in Six Months

After the announcement, 37signals moved fast. By December 2022, they had placed an order for $600,000 worth of Dell servers. The plan was ambitious: migrate seven major applications off AWS and Google Cloud by summer 2023.

The Hardware Shopping Spree

As DHH revealed on the REWORK podcast finale in July 2023, here’s what $600,000 bought them:

On the database and search side: 8 powerful database servers, enough NVMe storage for millions of users, and search servers with massive RAM for caching. The compute farm was even more impressive: 20 servers housing 4,000 vCPUs total, 7,680 GB of RAM (7.5 TB), 384TB of NVMe storage, all distributed across two data centers.

As DHH told Lex Fridman: “These servers arrived on pallets. The Dell servers (Dell’s still the king of servers) they show up, and they’re absolutely gorgeous machines.”

The Migration Strategy

The migration wasn’t just a lift-and-shift. 37signals developed new tooling along the way: Kamal (their new open-source deployment tool), custom full disk encryption, automated zero-touch server provisioning, and multi-site backup replication.

They migrated strategically, starting with Basecamp Classic, 2, 3, and 4, then Campfire, Highrise, and Backpack, followed by legacy apps like Writeboard and Ta-da List. HEY was saved for last due to its complexity.

The Technical Deep Dive: How They Actually Did It

The migration details, shared on the REWORK podcast and dev blog, reveal the careful planning involved:

Breaking Free from AWS Services

HEY was the biggest challenge because it was “born in the cloud” and deeply integrated with AWS services. RDS became MySQL on bare metal. ElastiCache became Redis on local NVMe. Elasticsearch Service became self-hosted Elasticsearch. S3 was replaced with PureStorage for object storage. And ALB/ELB gave way to HAProxy and custom load balancing.

The Secret Weapon: Kamal

Along the way, 37signals built new deployment tooling that ended up becoming its own thing. Kamal, their open-source deployment tool, embodies DHH’s philosophy of radical simplicity:

# This is literally all it takes to deploy
kamal deploy

No Kubernetes. No service mesh. No YAML hell. Just Docker containers deployed to servers via SSH.

As DHH explained: “We built Kamal because we needed something that matched our operational philosophy: simple, understandable, and reliable.”

Zero Downtime Migration

The migration approach was methodical. They set up new hardware in parallel while replicating data continuously, tested extensively in production-like environments, then cut over during low-traffic windows with cloud resources kept as a fallback.

Total migration time: Just over 6 months (finished ahead of schedule)

The Shocking Results

When 37signals announced completion in June 2023, the numbers were staggering:

MetricBefore (Cloud)After (Bare Metal)
Monthly cost~$300,000Under $30,000
Annual run rate$3.2-3.4 million~$360,000
Cost trajectoryRising 30% in 8 monthsStable
SavingsN/AOver 90%

Payback Period: 6 Months

The $600,000 hardware investment would pay for itself in just six months. After that, pure savings.

Performance Improvements

The cost savings were just the beginning. Performance improved dramatically. Database queries ran 3-5x faster, page load times improved 30-50%, performance became consistent (no more “noisy neighbors”), and traffic spikes were handled better.

The Lex Fridman Interview: DHH Unfiltered

DHH’s appearance on the Lex Fridman podcast in late 2023 provided the most candid insights into the migration. Some key revelations:

On Cloud Economics

“Of course it’s cheaper to own things if you need those things for years rather than to rent it. In no other domain would we confuse those two things. You wouldn’t rent your house for 30 years at 3x the mortgage payment.”

On Complexity

“AWS is hella complicated. IAM rules and access parameters are harder than Linux. We had more operational complexity in the cloud than we ever had with physical servers.”

On Team Size

“We did this with the same ops team. Zero additional hires. It turns out that managing actual computers is easier than managing AWS’s 200+ services.”

On the Future

“We’re even exploring hosting servers at home. With 5 gigabit fiber connections now available, you could run a multi-million dollar business from your garage. That’s the real garage startup.”

The Ripple Effect: Industry Response

37signals’ exit triggered a broader movement:

Other Companies Following Suit

Dropbox saved $75 million over two years. Paddle cut $400K annually. Honeybadger saw a 60% cost reduction. Plausible Analytics hit 75% savings.

The Open Source Renaissance

There’s been a surge in interest for self-hosted solutions, a revival of traditional sysadmin skills, new tools for bare metal deployment (inspired by Kamal), and community-driven alternatives to cloud services popping up everywhere.

Cloud Providers’ Response

AWS and others are quietly offering deep discounts to prevent exits, doubling down on vendor lock-in through proprietary services, and pushing back with marketing that emphasizes “TCO” over raw costs.

Addressing the Skeptics

Throughout the journey, DHH and team addressed common objections:

“You must need a huge ops team now”

Same team size. As Eron Nicholson (Director of Operations) confirmed on REWORK: “We didn’t need to hire anyone new for this migration."

"What about elasticity?”

DHH’s response: “Unless you’re Pokemon Go, you don’t need 1,000 servers in 15 minutes. We keep 30% headroom and can add servers in days, not minutes."

"This only works for 37signals”

Any company with predictable workloads and >$20K/month cloud spend should run the numbers. The math is compelling.

”You’re going backwards”

DHH: “Using modern hardware with modern deployment practices isn’t backwards. Paying 10x for the same compute is backwards.”

The Deeper Philosophy

Beyond the economics, DHH’s cloud exit represents a broader philosophy. He’s been vocal about what he calls the “merchants of complexity,” saying: “The cloud industrial complex has convinced everyone that running servers is impossibly hard. It’s not. We did it for decades before AWS existed.”

There’s an ownership argument too. “When AWS goes down, half the internet goes with it,” he points out. He’s similarly blunt about concentration risk: “The internet was designed to be distributed. Having it all run on three companies’ computers is antithetical to its founding vision.”

The Hybrid Reality

Despite the dramatic exit, 37signals didn’t go full hermit. They kept CloudFlare CDN because physics still matters for global distribution, maintained some cloud usage for development environments and testing, retained the ability to spin up cloud resources for emergency capacity, and kept minimal S3 usage for specific edge cases.

But the big win was replacing S3 with PureStorage for their primary object storage needs, proving that even “cloud-native” services like S3 can be successfully replaced with on-premise alternatives.

As DHH notes: “Use the cloud like a credit card: strategically, not as your primary checking account.”

Lessons for the Industry

The 37signals story offers clear lessons:

1. Do the Math

If you’re spending >$20K/month on cloud, you’re probably overpaying by 70-90%. Run the numbers.

2. Question the Orthodoxy

“Everyone uses the cloud” is herd mentality, not a strategy.

3. Complexity Isn’t Necessary

Most applications don’t need Kubernetes, service meshes, or 47 AWS services. They need computers that run code.

4. Ownership Matters

In a world of subscriptions and rentals, owning your infrastructure is a competitive advantage.

The Future According to DHH

In recent interviews, DHH has painted a picture of what’s coming:

The Great Reckoning (2024-2026)

CFOs are discovering they’re funding Amazon’s profits. There’s a mass exodus from cloud for predictable workloads. Cloud providers are being forced to cut margins. Hybrid is becoming the default.

The New Normal

“Cloud-first” is becoming “cloud-when-appropriate.” Infrastructure engineering is becoming valuable again. Open source alternatives are emerging for every cloud service. The internet is slowly returning to its distributed roots.

Conclusion

37signals’ cloud exit ended up challenging the received wisdom of an entire industry, not just saving one company a pile of money.

For years, “everyone should be in the cloud” was treated as gospel. Anyone who questioned it was dismissed as a dinosaur who didn’t understand modern technology. DHH basically just said what a lot of people were already thinking but wouldn’t say out loud.

The cloud is a tool. For some use cases (unpredictable loads, rapid experimentation, true elasticity needs) it’s the right tool. But for established businesses with predictable workloads, it’s often an absurdly expensive tool.

37signals proved the exit is possible, the savings are real, and they open-sourced the tools to help others follow.

The cloud exodus is going to continue. The only unknown is how fast.


Ready to evaluate your own cloud costs? Start with our assessment services to see your infrastructure savings potential.

Want to follow the movement? Check out the 37signals Dev Blog for technical details, Kamal for the deployment tool that makes it possible, and the REWORK Podcast for ongoing discussions.

If your cloud bill is making you wince, there’s no reason to wait.