83% of CIOs told Barclays in its Q4 2024 survey they plan to repatriate at least one workload from public cloud. That number, rounded to "80%" and recycled through a hundred 2026 trend pieces, is real — and also easy to misread. Only about 8% of those same respondents are moving everything off the cloud. The other 75 points are teams pulling back a database here, a batch job there, while keeping the rest on AWS. The headline stat describes a partial, selective retreat, not an exodus.
That correction matters, because the two case studies everyone actually cites — GEICO and 37signals — are not "partial." GEICO is running toward 50% of its workloads on owned hardware by 2029. 37signals finished most of its exit years ago. Both are frequently used to imply that any team can run this playbook. Here's the number that answers whether that's true at a much smaller scale: a realistic AWS bill for a 10-service team — eight always-on app instances, two workers, a Multi-AZ Postgres, load balancer, NAT gateway, and egress — runs about $960/month. The equivalent footprint on rented Hetzner hardware, plus a realistic estimate of the ops time it takes to run it, lands around $250–550/month, depending on team size. The crossover GEICO and 37signals found at enterprise scale shows up at 10-service scale too — but not for every workload shape, and not without the tooling gap those two companies could staff their way past and a smaller team can't.
Bex.co is the open-source, AI-native Render alternative — push a git repo, get a running HTTPS service on machines you own.
What GEICO and 37signals Actually Did
GEICO started moving its 600+ applications to the cloud in 2013. By 2022, the bill had grown to roughly 2.5x the original projections, and the company began repatriating. Its answer wasn't "buy some servers" — it was joining the Open Compute Project (OCP) to source bare metal at hyperscaler-adjacent unit economics, running it on an OpenStack private cloud, and treating infrastructure procurement as its own engineering discipline. The published results: a 50% cost reduction per compute core and a 60% reduction per gigabyte of storage. GEICO now runs production workloads across more than 1,000 servers in two colocation facilities, with a roadmap to 3,000, and a public target of repatriating at least 50% of its workloads by 2029.
37signals ran the more widely cited playbook. Its combined AWS bill peaked around $3.2 million a year. The company spent about $700,000 on Dell servers and $1.5 million on storage — roughly $2.2 million in capital outlay — and recouped that spend within a year as its cloud contract commitments expired. By March 2026, the remaining cloud bill was down to about $1.3 million a year, all of it Amazon S3 under a contract that expires in mid-2027, at which point 37signals plans to move its last ~10 petabytes onto owned Pure Storage arrays. The company's own projection for total five-year savings across the whole exit: north of $10 million.
Both numbers are real, audited by outside coverage, and not close calls. Neither company is claiming "the cloud was a mistake" — both still use cloud services for what cloud is actually good at. The claim worth extracting is narrower: for workloads that ran at steady, predictable, 24/7 utilization, owning the hardware underneath them was cheaper by a wide margin, once each company built (or bought) the operational muscle to run it.
The Variable That Actually Drives the Savings
GEICO and 37signals are different in almost every way that matters to a cost comparison — insurance versus software, 20,000 employees versus a few hundred, a decade of legacy infrastructure versus a project-management SaaS built cloud-native. The thing they share is the shape of the workload they repatriated: steady-state compute that runs the same, or close to it, every hour of every day.
That's the mechanism, and Barclays' survey data points at the same thing from the buyer side: cost is the single largest repatriation driver, cited by 54% of respondents, ahead of performance (31%) and data sovereignty (27%). 61% of the companies that repatriated report cost reductions over 25%. None of that is about company size. Public cloud's pricing model is built to reward elasticity — spin up capacity for a traffic spike, spin it down after — and to charge a standing premium for that option whether or not any given workload ever actually uses it. A workload that never spikes pays the elasticity premium every month and never collects on it. That's true whether the workload is GEICO's claims-processing backend or a five-person team's API server, which is the part of the argument that should, in principle, scale down.
Scaling the Math Down: The Worked Crossover
Here is the same exercise GEICO and 37signals ran, sized for a team nowhere near their scale. The baseline: a typical early-revenue product with a web API, a couple of background workers, and a production Postgres database — not a strawman, the default shape of an app six months past its free-tier phase.
AWS, priced line by line (us-east-1, on-demand):
| Line item | Quantity | Unit cost | Monthly |
|---|---|---|---|
| App instances (m6i.large, 2 vCPU/8GB) | 8 | $70.08/mo | $560.64 |
| Worker instances (m6i.large) | 2 | $70.08/mo | $140.16 |
| RDS Postgres (db.t3.medium, Multi-AZ) | 1 | ~$160/mo | $160.60 |
| Application Load Balancer | 1 | ~$20/mo | $20.00 |
| NAT gateway (base + processing) | 1 | ~$35/mo | $35.00 |
| Egress (~500GB/mo) | — | $0.09/GB | $45.00 |
| Total | ~$961/mo |
The equivalent on rented Hetzner hardware: three AX52-class dedicated boxes (8 cores/16 threads, 64GB RAM each, post-June-2026 pricing) — two bin-packing the app and worker containers, one dedicated to Postgres with room for backups — at roughly €64/month each, or about $210/month at current exchange rates. Hetzner's dedicated-server bandwidth allowance covers the traffic; there's no separate egress meter, no NAT gateway line item, no per-IP charge.
That $210 isn't the real comparison, though — someone has to run it. Add the ops-time cost, because pretending it's zero is how these comparisons lose credibility:
| Team size / tooling | Ops time estimate | Ops cost ($75/hr blended) | Owned total |
|---|---|---|---|
| 15-person team, automated deploy platform (git push → running service) | ~2 hrs/month | $150 | ~$360/mo |
| 5-person team, same platform, less slack for interruptions | ~4 hrs/month | $300 | ~$510/mo |
| Either team, hand-rolled scripts instead of a platform | 10–15+ hrs/month | $750–1,125+ | $960–1,335+/mo |
With an automated deploy layer in place, the crossover holds at both team sizes: $360–510/month owned versus $961/month on AWS, roughly matching the 40–60% reduction range GEICO and 37signals both reported. Without that layer — running Cluster API or Kubernetes by hand, or SSHing in to patch things — the ops-time line item alone can erase the entire hardware advantage. The hardware was never the hard part.
Where this doesn't hold: the same exercise for a bursty workload — a fleet of PR preview environments or staging apps that sit idle 70–80% of the time — flips the answer. AWS bills those close to zero when they're not running; three dedicated Hetzner boxes bill $210 a month whether anything is deployed on them or not. The repatriation math is a function of utilization shape, not company size, and it runs both directions.
Where the Enterprise Math Doesn't Transfer
The honest gap isn't the one usually assumed. It's not that a small team's AWS bill is somehow structurally different from GEICO's — the line items above scale down cleanly. The gap is operational.
GEICO built (or bought into) OCP-scale hardware procurement and a multi-hundred-person infrastructure organization to run 1,000+ servers across two colocation facilities. 37signals had David Heinemeier Hansson's team already running Kamal in production on HEY before the exit even started — the deploy tooling predated the cost argument. A 5- to 15-person team has neither. It doesn't have GEICO's purchasing leverage on hardware, and it doesn't have a dedicated platform team to build a deploy pipeline, patch a fleet, or answer a 2am paging alert on owned machines.
That's the actual bar a "should we repatriate" decision has to clear at small-team scale — not "is the hardware cheaper" (section above says yes, decisively), but "can we run it without hiring the infrastructure team GEICO and 37signals already had." A self-hosted PaaS built on Cluster API is a bet that the answer can be "yes" without either: it turns git push into a running HTTPS service on owned Hetzner machines, and it owns the fleet-management layer — provisioning, TLS, rolling deploys, node health — that would otherwise be the 10–15 hours a month that erases the savings in the table above. It doesn't manage a tenant's database, it isn't a multi-cloud abstraction layer, and it isn't a closed SaaS asking a team to trust someone else's infrastructure decisions the way the original cloud bill did — it's the tooling gap closed, not hidden.
The Number That Matters
Hetzner raised its own prices four times in 2026, and every post on this list that runs a Hetzner-vs-hyperscaler comparison has had to recompute against a higher baseline each time. It's still not close: an independent February 2026 benchmark put Hetzner at roughly 14x the value-per-compute-unit of AWS on general-purpose instances, even after the hikes. The $961-versus-$360 gap above isn't a temporary artifact of one pricing snapshot — it's what happens when a workload runs at steady utilization on hardware priced without an elasticity premium built in, at any scale from three colocation facilities down to three rented boxes.
Star the repo on GitHub or deploy your first app on Bex.co today.
Sources
- GEICO slashes compute costs 50% with cloud repatriation — The Stack.
- Warren Buffett's GEICO repatriates work from the cloud — The Stack.
- GEICO's OCP Adoption: A Blueprint for Enterprise Infrastructure Transformation — Open Compute Project.
- 37signals claims it saved almost $2m last year from cloud repatriation — Data Center Dynamics.
- Developer pockets $2M in savings from going cloud-free — The Register.
- 83% Public Cloud Repatriation Stat is Misleading — WebProNews.
- m6i.large pricing — Economize Cloud.
- db.t3.medium pricing — Economize Cloud.
- Hetzner Server Comparison 2026: Best Value Cloud & Dedicated Servers — Achromatic.
- Hetzner Price Adjustment 15 June 2026 — Hetzner Docs.



