$10 million. That is the projected five-year saving from 37signals leaving AWS.
In 2022, David Heinemeier Hansson — CTO of 37signals, creator of Ruby on Rails — declared that his company was leaving the cloud. Not quietly. He wrote blog posts, gave talks, and shared every detail of the process. By mid-2023, they had moved the majority of their infrastructure off AWS and onto owned hardware.
Cloud advocates called it reckless. Cloud sceptics called it vindication. Most people argued about it on Twitter without reading the details.
Here is what actually happened, what applies beyond 37signals, and — honestly — what does not translate to your situation.
What 37signals Actually Did
37signals runs Basecamp (project management) and HEY (email). Both are mature products with stable, predictable traffic patterns. They had been on AWS for years, and their cloud bill had grown to roughly $3.2 million per year.
The key decision: they did not move everything. Their approach was surgical:
Moved off cloud:
- Primary compute (application servers, background workers)
- Databases (MySQL, Redis)
- Search (Elasticsearch)
- Storage (file uploads, assets)
Kept on cloud:
- Edge computing and CDN
- Some auxiliary services
- Disaster recovery and burst capacity
They purchased their own hardware — Dell servers with high-end specs — and colocated it in two datacenters. The upfront hardware cost was approximately $600,000, which they expected to recoup in the first six months of savings.
Their ongoing monthly infrastructure cost dropped from roughly $267,000/month on AWS to about $87,000/month on owned hardware (including colocation, bandwidth, hardware amortisation, and additional staffing). That is a 67% reduction.
Why It Worked for 37signals
Several factors made this move particularly effective for them:
1. Predictable, Steady-State Workloads
Basecamp and HEY do not have Black Friday spikes. Their traffic is consistent, growing gradually. They were paying for cloud elasticity they never used — the most expensive kind of cloud waste.
2. Significant Scale
At $3.2M/year, their cloud spend was large enough that even a 50% reduction would justify a dedicated infrastructure team. The absolute savings fund the operational investment many times over.
3. Deep Operational Expertise
37signals has been running internet services for over 20 years. They had (and hired) engineers who could manage bare-metal infrastructure. This is not a startup with five engineers and no operations experience.
4. Simple Architecture
Despite the scale, their architecture is relatively simple. Monolithic Rails applications, traditional databases, straightforward request-response patterns. They were not untangling a microservices mesh with 200 Lambda functions.
5. Willingness to Invest Upfront
Buying $600k in hardware requires capital and confidence. 37signals is profitable and cash-rich. A venture-funded company burning cash might not have the same luxury.
What Translates to Mid-Market Companies
You are probably not 37signals. You might be spending £50k–£200k/month on cloud, not £250k. You might have 30 engineers, not 80. Your architecture might be more complex, your traffic less predictable.
But several of their lessons apply directly:
Lesson 1: The Steady-State Test
The single most useful question from the 37signals case: what percentage of your cloud compute runs at steady state?
If the answer is “most of it” — your main application servers, databases, and background workers run 24/7 at 30–60% utilisation — you are paying for elasticity on workloads that do not need it.
37signals found that their steady-state workloads accounted for the vast majority of their spend. Most companies I audit show the same pattern. The “bursty” workloads that justify cloud pricing are typically a small fraction of total spend.
Lesson 2: You Do Not Need to Move Everything
37signals kept their CDN and some services on cloud. This is the right approach for almost everyone. The goal is not to eliminate cloud — it is to stop using cloud for workloads where it is not the right tool.
A common pattern I recommend:
- Move steady-state compute and databases to dedicated hardware (biggest savings)
- Keep CDN, edge functions, and burst capacity on cloud (genuine cloud value)
- Keep development and CI/CD on dedicated hardware (easy win, low risk)
Lesson 3: Hardware Is Surprisingly Cheap
37signals spent $600k on hardware to replace $3.2M/year in cloud costs. The hardware paid for itself in under three months.
At a smaller scale, the economics are similar. A £3,000 dedicated server from Hetzner or OVH provides the same compute as £500–£800/month in AWS instances. The server pays for itself in 4–6 months, then runs for 3–5 years.
Even if you prefer leasing (Hetzner’s dedicated servers are leased, not purchased), the monthly cost is 70–80% less than equivalent cloud instances.
Lesson 4: Operational Overhead Is Manageable
The biggest fear about leaving cloud is “who manages the servers?” 37signals hired two additional operations engineers. For their scale, that was appropriate.
For a mid-market company moving a portion of workloads, you typically do not need additional headcount. An existing senior engineer can manage dedicated infrastructure as a part-time responsibility, especially with modern tooling:
- Provisioning: Terraform works with Hetzner, OVH, and most dedicated server providers
- Configuration: Ansible handles OS setup, security hardening, and application deployment
- Monitoring: Prometheus + Grafana provides better observability than CloudWatch at zero marginal cost
- Backups: pgBackRest (databases), restic (files) — automated, tested, reliable
The operational overhead is real but bounded. It is not a full-time job for a moderate infrastructure.
What Does Not Translate
Let me be honest about the limitations:
Scale Matters
37signals’ $3.2M annual spend meant that even a modest percentage reduction justified significant investment. If you are spending £5k/month on cloud, the absolute savings from repatriation might not justify the engineering effort. The economics usually start making sense at £20k–£30k/month and above.
Architecture Complexity
37signals runs a monolithic Rails application. If your infrastructure is 50 microservices on ECS with event-driven patterns, managed queues, and serverless functions, the migration complexity is significantly higher. Not impossible — but the ROI calculation must account for more engineering time.
Organisational Readiness
37signals has a culture that values simplicity and ownership. They were psychologically ready to manage their own hardware. If your engineering team has only ever used managed services, there is a learning curve. Factor in training time and the inevitable early mistakes.
Growth Trajectory
37signals has mature, stable products. If you are a high-growth startup that might 10x in the next year, the flexibility of cloud auto-scaling has genuine value. Plan for your future scale, not just your current costs.
How to Figure Out If This Applies to You
Here is a practical framework:
Step 1: Know your numbers. What do you actually spend on cloud, broken down by service? If you cannot answer this, that is the first problem to solve.
Step 2: Classify your workloads. Steady-state or bursty? Cloud-native or portable? High-availability requirement or acceptable-downtime?
Step 3: Model the alternative. For your steady-state, portable workloads, price equivalent dedicated hardware. Include operational costs (your time, tooling, monitoring).
Step 4: Calculate the break-even. How many months until the savings cover the migration effort? If it is under 6 months, it is a strong candidate. Under 12 months, it is worth serious consideration. Over 18 months, probably not yet.
Step 5: Start small. Move a non-critical workload first. Your staging environment. Your CI/CD pipeline. Your monitoring stack. Build confidence before touching production.
The Real Lesson
The most important thing 37signals proved is not that leaving cloud is always right. It is that the default assumption — that cloud is always the best option — is expensive and often wrong.
They ran the numbers, found they were overpaying by millions, and made a rational business decision. Every company spending significant money on cloud should do the same analysis. Many will conclude that cloud is the right choice. But they should reach that conclusion through arithmetic, not inertia.
The worst cloud strategy is the one you have never questioned.
Want to run the 37signals analysis for your own infrastructure? Book a Platform Fit Verdict and we will model what your workloads would cost on dedicated hardware versus cloud — no commitment, just clarity.
