infra // stack
Your cloud, your invoice. Reproducible deploys without platform rent.
We containerize Rails and Astro into identical images from CI to production, deployed with Kamal to your servers. The same artifact runs everywhere, with zero-downtime deploys and one-command rollbacks.
Use when you own VPS or bare metal contracts; keep Vercel only where preview workflows earn it.
why we use it
(01) Same artifact everywhere
Docker images built once in CI run identically on laptops, staging, and production. Environment drift stops being a category of bug.
(02) No per-seat platform tax
Kamal deploys to Hetzner, DigitalOcean, or bare metal you already pay for. Preview and edge stay, the metered markup goes.
(03) Rollbacks in one command
Immutable releases with health checks mean a bad deploy reverses in seconds instead of becoming an incident review.
scope
(01) Reproducible Docker images from CI to production
(02) Kamal zero-downtime deploys to your own servers
(03) One-command rollbacks with health-checked releases
(04) Secrets and accessory services versioned alongside code
tradeoffs
Our default versus the common alternative, stated honestly.
| dimension | 2sh | traditional |
|---|---|---|
| Cost | Flat VPS invoices you already hold, no per-request markup | Metered platform bills scaling with success |
| Reproducibility | Identical containers across CI, staging, and production | Works on my machine, fails on the platform |
| Control | Data residency and contracts your procurement chose | Vendor regions and limits chosen for you |
| When not Kamal | Heavy preview-farm workflows may keep Vercel for frontend | Self-hosting a preview matrix nobody reviews |
Not sure Docker + Kamal fits your estate?
In the audit we map your estate, model the cost of staying versus moving, and document the recommendation in writing.