HeroCtl vs
Kamal
Brilliant for one VPS running Rails. The wall arrives at the second serious customer.
Kamal is 37signals' answer to legitimate frustration with Kubernetes complexity. Deploy via SSH + Docker, no control plane, no cluster, no agent. It works perfectly for 75% of cases: one VPS, monolithic app, 30s of downtime acceptable during deploy. The "you don't need orchestration" premise breaks exactly when: a customer demands an SLA, a second server enters the picture, or rolling deploys need to be genuinely safe. HeroCtl is "Kamal with a real cluster" — same conceptual simplicity, but a control plane replicated across 3+ servers and automatic failover.
Where Kamal shines
- Minimalist philosophy — no control plane, no cluster
- Deploy via SSH + Docker, easy to understand
- DHH and 37signals lend credibility to the position
- Excellent for one VPS running Rails or Node
- No additional operational dependency
Where it falls short
- No real orchestration — multi-server is parallel deploy to independent hosts
- No high availability — VPS goes down = total downtime
- No health check before promoting a new container
- No safe rolling deploy with auto-revert
- No service-to-service encryption
- No dynamic router (kamal-proxy is a thin wrapper)
Side by side, no fluff
| Criterion | Kamal | HeroCtl |
|---|---|---|
| Philosophy | No orchestration | Cluster with control plane |
| Control plane | Does not exist | Replicated |
| Real high availability | No | Yes |
| Automatic election | No | Yes, in ~7s |
| Web panel | No | Built in |
| Integrated router | kamal-proxy | Built in |
| Health check before promote | Limited | Yes |
| Auto-revert on failure | No | Yes |
| Service-to-service encryption | No | Native |
| Built-in metrics | No | Yes |
| Ideal range | 1 server | 1–500 servers |
One server + no SLA pressure, small Rails/Node team without time to learn another tool, internal app where 5 minutes of monthly downtime does not hurt.
A customer demanded an SLA, your first server went down and you learned the hard way, service-to-service encryption matters, range 3+ servers.
Start with Community
Real HA cluster, free forever, no feature gates. Migrating from Kamal typically takes a small team 4–6 weeks.