/ tool-comparisons / Hetzner vs Kamal for Solo Developers
tool-comparisons 5 min read

Hetzner vs Kamal for Solo Developers

Comparing Hetzner and Kamal for solo developers. Features, pricing, pros and cons, and which one to pick for your next project.

Quick Comparison

Feature Hetzner Kamal
Type Cloud/VPS provider Deployment tool (CLI)
Pricing From EUR 3.79/mo (VPS) Free (open source)
Learning Curve Moderate (server admin) Moderate (Docker + config)
Best For Affordable servers with full control Zero-downtime deploys to any server
Solo Dev Rating 8/10 8/10

Hetzner Overview

Hetzner is the European cloud provider that delivers the best price-to-performance ratio in the industry. A CX22 VPS with 2 vCPUs, 4GB RAM, and 40GB SSD costs EUR 3.79/month. Dedicated servers with 64GB RAM start around EUR 39/month. These aren't toy specs. They're production-grade machines at hobby-project prices.

The platform is deliberately minimal. You get servers, load balancers, floating IPs, volumes, and DNS. No managed databases, no app platform, no deployment pipelines. Hetzner focuses on doing one thing well: giving you reliable, affordable compute. Everything else is your responsibility.

For solo developers, Hetzner represents the most runway per dollar. Running a full production stack (web server, database, cache, background workers) on a single Hetzner VPS is completely viable, and it costs less than a single entry-level instance on most competitors.

Kamal Overview

Kamal is a deployment tool created by the team behind Ruby on Rails. It deploys Docker containers to any server with zero downtime. No Kubernetes, no PaaS, no vendor lock-in. Just Docker, SSH, and a YAML configuration file. DHH built it to deploy Basecamp and HEY, so it handles real production workloads.

You define your deploy configuration in a deploy.yml file: the server IP, Docker image, environment variables, health checks, and any accessories (like databases or Redis). Run kamal deploy and it builds your Docker image, pushes it to a registry, SSHs into your server, pulls the image, and performs a zero-downtime rolling deployment using Traefik as the reverse proxy.

Kamal handles SSL via Let's Encrypt, manages environment variables securely, and supports deploying to multiple servers. It's Capistrano for the Docker age. Simple, opinionated, and effective.

Key Differences

They're complementary, not competing. Hetzner provides the server. Kamal deploys your code to it. Comparing them directly is like comparing a car to a road. You need both, and they work exceptionally well together.

Server management vs. deployment management. Hetzner manages the hardware (uptime, network, physical security). Kamal manages the application deployment (building, shipping, rolling updates). Everything in between, like OS updates, firewall rules, and security patches, is still on you.

Configuration approach. Hetzner is configured through a web dashboard or API. Kamal is configured through a single YAML file checked into your repository. This makes Kamal deployments reproducible and version-controlled, which matters when you're the only person who knows how the server works.

Zero-downtime deployments. Hetzner alone gives you no deployment strategy. You SSH in and restart your app, which means downtime. Kamal gives you zero-downtime deploys by default. It starts the new container, waits for a health check, switches traffic via Traefik, then stops the old container. Your users never see a blip.

Learning investment. Hetzner requires Linux administration skills. Kamal requires Docker knowledge and familiarity with its configuration format. Together, you need both skill sets. The upside is that these skills transfer everywhere, unlike learning a proprietary PaaS platform.

When to Choose Hetzner (Without Kamal)

  • You already have a deployment tool you prefer (Ansible, GitHub Actions, Coolify)
  • You're running infrastructure that isn't container-based
  • You want to use a PaaS layer like Coolify or Dokku instead
  • You're experimenting and just need SSH access to a cheap server

When to Choose Kamal

  • You want zero-downtime deployments without Kubernetes complexity
  • You like having deployment configuration in version control
  • You're deploying Docker containers and want a simple, reliable tool
  • You prefer CLI-driven workflows over web dashboards
  • You deploy to multiple servers and want one command to update them all

The Verdict

Hetzner and Kamal are a natural pairing. Hetzner gives you the cheapest production-ready servers available, and Kamal gives you professional-grade deployments on top of them. Together, you get zero-downtime deploys to affordable infrastructure for the cost of a Hetzner VPS (EUR 3.79/mo) and nothing else, since Kamal is free.

If you're building a Rails, Django, or any Dockerized application and you want to own your infrastructure without the complexity of Kubernetes or the cost of a PaaS, Hetzner + Kamal is one of the best stacks available to solo developers. You get the reliability of a proven cloud provider, the simplicity of a single deploy command, and the total cost stays under $5/month.

The only reason not to use this combination is if you specifically don't want to manage servers at all. In that case, a managed PaaS like Railway or Render makes more sense. But if you're comfortable with basic server admin, Hetzner + Kamal gives you more control at a fraction of the cost.