You built the app. It runs on your laptop. Now it has to live somewhere on the internet, and your options feel like a false binary: hand it to a platform that charges per app and owns your deploy story, or descend into Kubernetes and learn a second full-time job. Kamal is the third door — and for a founder who wants to own their stack without an ops team, it's the one worth trying first.
What it is#
Kamal deploys a containerized web app to servers you control — any VPS, bare metal, a box under your desk — over plain SSH, with zero-downtime rolling deploys. It handles the parts that are annoying to get right by hand: restarting without dropping requests, provisioning TLS, and running accessory services like your database. No orchestration cluster, no platform.
It comes from 37signals (the Basecamp and HEY team) and was born out of their public "leaving the cloud" migration — the one that saved them a reported ~$2M in 2024 and is projected to top $10M over five years. Kamal is the tool they built to make that exit repeatable. It's MIT-licensed and free; current release is v2.12.0 (June 2026).
Who it's for#
Solo founders and small teams who want to own their infrastructure — for cost, for control, or to avoid lock-in — but don't want to run Kubernetes to do it. If your monthly platform bill is climbing faster than your revenue, or you just want a deploy you'll still understand in two years, this is your tool. It's also the default deploy tool in Rails 8, so if you're on the boring-stack path it's already in your project.
How to start#
With Ruby installed:
gem install kamal
kamal init
That generates config/deploy.yml and a secrets file. Edit the YAML — image name, your server's IP, your container registry, and a domain under proxy: for automatic SSL:
service: myapp
image: yourname/myapp
servers:
web:
- 203.0.113.10
proxy:
host: app.yourdomain.com
ssl: true
Then, once:
kamal setup
This provisions the server, pushes your image, and boots the app behind kamal-proxy, which fetches a Let's Encrypt certificate for you. Every deploy after that is a single command with no downtime:
kamal deploy
Roll back just as fast with kamal rollback, and tail production with kamal app logs.
What it costs#
The tool is free. Your real costs are a server (a small VPS starts around $5–$10/month) and a container registry (Docker Hub or GitHub Container Registry, both have free tiers). No per-app fee, no per-seat pricing, no platform tax.
The honest catch#
Kamal makes deploys trivial. It does not make operations invisible. Because you own the server, you also own OS patching, security hardening, backups, and uptime monitoring — a managed platform does those quietly for you, and that's genuinely worth money to some teams. Your app also has to be containerized with Docker.
Kamal makes deploys trivial. It does not make operations invisible.
So the trade is clear-eyed: if you want to never think about a server, pay a PaaS and be happy. If you want control, low cost, and zero lock-in — and you're willing to run a Linux box — Kamal is the most direct path from a Dockerfile to a live site you fully own.
For the walkthrough that puts Kamal to work on a real app, see our durable Rails 8 MVP how-to, and for why founders are reaching for own-your-stack tools right now, The Durability Turn.



