Documented a production migration from DigitalOcean to Hetzner that cut monthly costs from $1,432 to $233 — an 84% reduction — while achieving zero downtime. The detailed engineering case study demonstrates that Hetzner's dedicated hardware at thin margins vastly undercuts DigitalOcean's droplet pricing for equivalent or superior specs.
Argues that while DHH's 37signals cloud exit required a dedicated ops team and decades of infrastructure experience, the DigitalOcean-to-Hetzner migration represents the 'accessible version of cloud exit' achievable by small teams without a dedicated platform engineering function. This democratization of cloud exit is what makes the story resonate beyond a simple cost comparison.
The migration was not merely a pricing exercise but a carefully executed zero-downtime infrastructure transition. This engineering rigor — maintaining production availability throughout — transforms the post from a blog about saving money into a replicable case study that other teams can follow.
A developer published a detailed migration log of moving their production infrastructure from DigitalOcean to Hetzner, documenting a cost reduction from $1,432/month to $233/month — an 84% savings. The post hit 714 points on Hacker News, making it one of the highest-scoring infrastructure posts of the month.
The numbers are striking but not surprising to anyone who has priced out Hetzner's dedicated server lineup against US cloud providers. At $233/month on Hetzner, you can get dedicated hardware that would cost $1,400+ on DigitalOcean's droplet pricing — and that gap only widens at scale. DigitalOcean's Premium Droplets with dedicated vCPUs run $40-80/month for 4-8GB RAM configurations. Hetzner's auction servers regularly offer 64GB RAM, 8-core Xeon processors, and 2×1TB NVMe drives for under €40/month.
The migration was executed with zero downtime, which is the detail that elevates this from a cost comparison blog post to a genuine engineering case study.
This post resonated because it articulates what a growing number of small and mid-size engineering teams have been quietly doing for the past two years: abandoning the US cloud oligopoly for European bare-metal providers.
The cloud pricing reckoning has been building since DHH's infamous "Cloud Exit" series at 37signals, where Basecamp reported saving $7M over five years by moving off AWS. But 37signals had a dedicated ops team and decades of infrastructure experience. What makes the DigitalOcean-to-Hetzner story compelling is that it represents the accessible version of cloud exit — achievable by small teams without a dedicated platform engineering function.
Hetzner, based in Germany, operates its own data centers in Falkenstein, Nuremberg, Helsinki, and Ashburn (Virginia). Their pricing model is fundamentally different from US cloud providers: they sell hardware at thin margins rather than selling convenience at cloud margins. A Hetzner AX42 dedicated server — AMD Ryzen 7 7700, 64GB DDR5, 2×1TB NVMe — costs €49/month. The closest DigitalOcean equivalent would be a Premium Droplet at roughly $300-400/month, and you'd still be on shared infrastructure.
The Hacker News discussion predictably split into two camps. The first camp — heavy with indie hackers, bootstrapped founders, and European developers — celebrated the move and shared similar savings stories. Several commenters reported 70-90% cost reductions across various migration paths (AWS → Hetzner, GCP → OVH, DigitalOcean → Hetzner). The second camp raised legitimate concerns: Hetzner's support is minimal compared to managed cloud providers, their DDoS protection is basic, and if you need to be SOC 2 compliant, Hetzner's certifications are thinner.
The real divide isn't technical — it's about what you're actually paying for when you pay cloud premiums. If you're paying for managed databases, load balancers, auto-scaling, and a support SLA with teeth, DigitalOcean and AWS earn their margins. If you're paying for VMs that you SSH into and configure yourself anyway, you're paying a 3-5x markup for a control panel.
The zero-downtime claim is the engineering meat of this story. The standard playbook for this kind of migration follows a predictable pattern:
Phase 1: Parallel infrastructure. Stand up the target environment on Hetzner while production continues running on DigitalOcean. This means you're temporarily paying for both — roughly $1,665/month combined — but for a migration measured in days, that's noise.
Phase 2: Data synchronization. Database replication is the hard part. For PostgreSQL, this typically means setting up logical replication from the DigitalOcean-hosted database to the Hetzner target. For MySQL, standard binlog replication works. The key constraint: your application must be able to tolerate the replication lag during cutover, or you need a brief maintenance window for final sync.
Phase 3: DNS cutover. With both environments running and data synchronized, you flip DNS records. TTL values should be lowered well in advance (to 60-300 seconds) so the cutover propagates quickly. During the propagation window, both environments serve traffic, which is why the data sync in Phase 2 matters.
Phase 4: Drain and decommission. Once DNS has fully propagated and you've verified the new environment is healthy, tear down the old infrastructure.
The pattern is well-understood, but execution requires discipline: every stateful service needs a replication strategy, every external integration needs its IP allowlists updated, and every monitoring alert needs to be reconfigured. Teams that skip the parallel-running phase and attempt a "big bang" cutover are the ones who end up with downtime stories instead of zero-downtime stories.
If you're spending $500+/month on DigitalOcean, AWS, or GCP and your workload is relatively straightforward — web servers, databases, background workers, maybe some Redis — you should price out Hetzner or OVH. The math is almost certainly in your favor.
But go in with clear eyes about what you're giving up:
Managed databases disappear. DigitalOcean's Managed PostgreSQL handles backups, failover, and upgrades. On Hetzner, that's your job. If you're not comfortable with pg_basebackup, WAL archiving, and manual failover procedures, factor in the cost of learning or hiring for that expertise.
Networking gets manual. No managed load balancers, no VPC peering between regions with a toggle. You're configuring WireGuard or Tailscale for private networking, setting up HAProxy or Nginx for load balancing, and managing your own firewall rules with iptables or nftables.
Compliance and geographic constraints matter. Hetzner's US presence is limited to one Ashburn data center. If you need multi-region redundancy in the US, or if your compliance framework requires specific certifications that Hetzner doesn't carry, this isn't your path.
The sweet spot for Hetzner migration is a team of 2-15 engineers running a B2B SaaS or consumer product with predictable traffic patterns, where the $10-15K/year in savings materially impacts runway or profitability. For a venture-funded startup burning $200K/month, saving $14K/year on infrastructure isn't worth the ops overhead. For a bootstrapped team where that $14K is a person-month of engineering time, it's transformative.
The broader trend here is the unbundling of cloud computing. For fifteen years, AWS, GCP, and Azure sold the bundle: compute + storage + networking + managed services + compliance + support, all at a premium. Now teams are realizing they can buy compute from Hetzner, managed databases from Neon or Supabase, CDN from Cloudflare, monitoring from Grafana Cloud, and stitch together a stack that costs 60-80% less than the all-in-one cloud offering. The 84% savings in this migration is an extreme case, but 50-70% reductions are routine. The question isn't whether this trend continues — it's whether the US cloud providers respond with pricing pressure or double down on the enterprise lock-in strategy that got them here.
I’m formulating plans to switch from AWS to Hetzner. Amazon gets you by charging high prices (sometimes 20x more than competitors) and forcing you to make long-term commitments in order to get the prices to somewhere more reasonable. Then they make it exorbitantly expensive to migrate your data anyw
Every time I see this kind of article, no one really bothers about sb/server redundancy, load balancers, etc. are we ok with just 1 big server that may fail and bring several services down?You saved a lot of money but you'll spend a lot of time in maintenance and future headaches.
This is something we've[0] done a number of times for customers coming from various cloud providers. In our case we move customers onto a multi-server (sometimes multi-AZ) deployment in Hetzner, using Kubernetes to distribute workloads across servers and provide HA. Kubernetes is likely a lot f
I use and love Hetzner as well. But you have to go into it eyes open. Concrete example - a month ago I was notified that network infra my systems ran over was going down for maintenance. Public link: https://status.hetzner.com/incident/ff8335b8-6fda-4370-8431-...So, for me that w
Top 10 dev stories every morning at 8am UTC. AI-curated. Retro terminal HTML email.
I moved two servers, one from Linode and the other from DO to Hetzner a few months ago, with similar savings. The best part was that the two servers had tens of different sites running, implemented in different languages, with obsolete libraries, MySQL and Redis instances. A total mess. Well: Claude