Railway vs Kamal for Solo Developers
Comparing Railway and Kamal for solo developers. Features, pricing, pros and cons, and which one to pick for your next project.
Quick Comparison
| Feature | Railway | Kamal |
|---|---|---|
| Type | Managed PaaS | Deployment tool (SSH-based) |
| Latest version | Web app, continuously deployed | v2.11.0 (Mar 18, 2026) |
| License | Proprietary | MIT (open source) |
| Pricing | Hobby $5/mo, Pro $20/mo, plus metered usage | Free, you pay only for your own server |
| Compute rate | $20 per vCPU/mo, $10 per GB RAM/mo | Whatever your VPS charges |
| Learning Curve | Easy | Moderate-Hard |
| GitHub stars | Not open source | 14,249 |
| Best For | Quick deploys without DevOps | Docker deploys to any server |
| Solo Dev Rating | 9/10 | 7/10 |
Railway Overview
Railway is a managed PaaS built for developers who want to ship without managing infrastructure. Push code, Railway handles the rest. Nixpacks auto-detect your language, builds run automatically, and databases deploy with a single click. The visual dashboard shows all your services and their connections in one place.
What makes Railway stand out for solo developers is the speed. I've gone from "git push" to a live production URL in under five minutes. Environment variables sync between services, logs stream in real time, and you never SSH into anything. It just works.
Pricing starts at the Hobby plan, which is $5 per month and includes $5 of resource usage, so light projects effectively run on the base fee. Beyond the included credit, compute is metered at $20 per vCPU per month and $10 per GB of RAM per month, with volumes at $0.15 per GB per month and egress at $0.05 per GB (rates from Railway's pricing docs, checked 2026-05-29). For a typical solo dev project with one always-on app and one small database, expect to pay roughly $7 to $15 per month once usage stacks on top of the base fee.
Kamal Overview
Kamal is a deployment tool created by the team behind Ruby on Rails. It deploys Docker containers to any server you can SSH into. No platform lock-in, no proprietary infrastructure. You bring your own server, Kamal handles the deployment pipeline.
The workflow is straightforward. You define your app in a deploy.yml config, run kamal setup to bootstrap your server, and then kamal deploy to push updates. Under the hood, Kamal builds your Docker image, pushes it to a registry, SSHes into your server, and swaps the running container with zero downtime using Traefik as a reverse proxy.
Kamal 2 simplified a lot of the rough edges from version 1. The config is cleaner, accessories (databases, Redis) are better supported, and the Kamal proxy replaced Traefik with something lighter. It's not as polished as a full PaaS, but it gives you a deployment workflow that's surprisingly smooth for what amounts to "SSH and run Docker."
The project is mature and actively maintained. As of 2026-05-29 it sits at 14,249 GitHub stars with 715 forks under the MIT license, the gem has been pulled more than 18.9 million times on RubyGems, and the latest release is v2.11.0 from March 18, 2026. So while Kamal looks like a small tool, it is backed by the Rails team and the install base is large enough that most rough edges have already been hit and reported by someone else.
Key Differences
Abstraction level. Railway abstracts away servers entirely. You never think about machines, Docker, or SSH. Kamal is a thin layer over Docker and SSH. You need to provision your own server, manage its security, and handle updates. Railway is "deploy and forget," Kamal is "deploy with control."
Cost model. Railway charges for platform usage on top of infrastructure. Kamal is free software, so you only pay for the server. A $5/month Hetzner VPS running Kamal can host the same app that costs $15/month on Railway. Over a year, that adds up.
Setup complexity. Railway takes minutes. Kamal requires a working Docker setup, a container registry (Docker Hub or GitHub Container Registry), a VPS, and a configured deploy.yml. First-time setup is probably a 1-2 hour investment. Subsequent deploys are a single command, though.
Database management. Railway's databases are managed. Backups, connection pooling, and scaling are handled for you. With Kamal, you deploy databases as Docker accessories. You're responsible for backups, updates, and monitoring. This is fine for a side project but can become a headache at scale.
Scaling. Railway scales automatically based on demand. Kamal deploys to specific servers you define. If you need more capacity, you add servers to your config and redeploy. It's manual but predictable.
Zero downtime deploys. Both support this. Railway does it automatically. Kamal achieves it through the Kamal proxy, which routes traffic to the new container before stopping the old one. In practice, both work well.
By the Numbers (2026)
Here is the verified data behind the two tools, all checked on 2026-05-29.
Railway
- Hobby plan: $5 per month, includes $5 of resource usage per month.
- Pro plan: $20 per month, includes $20 of resource usage per month.
- Compute: $20 per vCPU per month, billed per second as $0.000463 per vCPU per minute.
- Memory: $10 per GB per month, billed as $0.000231 per GB per minute.
- Volume storage: $0.15 per GB per month.
- Network egress: $0.05 per GB.
Kamal
- Latest release: v2.11.0, published March 18, 2026.
- License: MIT, fully open source.
- GitHub: 14,249 stars, 715 forks, 152 open issues. Repository created January 7, 2023.
- Primary language: Ruby. Distributed as a gem.
- RubyGems downloads: 18,908,557 total, with 2,112,490 on the current 2.11.0 release.
- Direct software cost: $0. You pay only for the server you run it against.
The headline is that Railway has a published, predictable per-unit price sheet, while Kamal has no price at all. Kamal's cost is entirely whatever your VPS provider charges, which is the whole point of the tool.
Real Cost at Solo-Dev Scale
Let's compute an actual monthly bill for a realistic solo project so the cost difference stops being hand-wavy. The workload assumption is one always-on web service plus one small database, sized at 1 shared vCPU and 1 GB of RAM total, a 10 GB volume for the database, and 20 GB of egress per month. That is a reasonable shape for an MVP or a small side project with modest traffic.
Railway, on the Hobby plan. Using Railway's published rates, a service that holds 1 vCPU and 1 GB of RAM for a full month is not realistic for a true 24/7 reservation, since Railway bills for actual usage per second rather than a reserved slot. But to set an honest upper bound, assume the app effectively consumes the equivalent of 1 vCPU and 1 GB for the whole month:
- Compute: 1 vCPU at $20 per month.
- Memory: 1 GB at $10 per month.
- Volume: 10 GB at $0.15 per month, which is $1.50.
- Egress: 20 GB at $0.05 per GB, which is $1.00.
That is about $32.50 of usage. The $5 Hobby base fee includes $5 of that usage, so the bill lands near $32.50 in the worst case where the app never idles. In practice most small apps idle a lot, scale to fractional usage, and many solo devs report real Hobby bills in the $7 to $15 range, which matches the Overview estimate above. The key Railway fact is that the meter only runs on what you actually use.
Kamal, on a small VPS. Kamal itself is free, so the entire cost is the server. A low-end cloud VPS in the 2 vCPU and 4 GB RAM class (for example Hetzner's CX-class shared instances) runs in the low single-digit to high single-digit euros per month range depending on provider and the April 2026 price changes (confirm the current figure on your provider's pricing page before you commit). Call it roughly $5 to $10 per month for the box, plus your time. There is no per-GB egress meter on a flat VPS, no compute meter, and no platform markup. The same instance can host the app, the database, and Redis as Kamal accessories.
The takeaway. At steady state, a flat VPS running Kamal is cheaper, and the gap widens the more your app runs around the clock or pushes egress, because Railway meters both and a flat VPS does not. Railway wins when your app idles, when traffic is spiky, or when the hours you would spend administering a server are worth more than the dollars saved. The crossover is less about the sticker price and more about how much of the month your app is actually doing work, and how you value your own setup time. Numbers above are computed from the rates in the Sources list, not from a private benchmark.
When to Choose Railway
- You want to deploy without managing any servers
- Speed of initial setup matters most
- You prefer a visual dashboard for managing services
- Database management should be hands-off
- You're willing to pay more for convenience
When to Choose Kamal
- You want full control over your infrastructure
- You already have servers or VPS credits to use
- Long-term cost savings matter more than setup convenience
- You're comfortable with Docker and basic server administration
- You want zero vendor lock-in for your deployment pipeline
The Verdict
Railway and Kamal solve the same problem from opposite directions. Railway says "don't think about servers." Kamal says "your servers, your way."
For most solo developers starting a new project, Railway is the faster path to production. The time you save on infrastructure work is time you spend building features. And when you're trying to validate an idea or ship an MVP, speed matters more than cost optimization.
Kamal makes more sense when you've already got servers running, you're comfortable with Docker, and you want to keep costs predictable. It's also the better choice if you want to avoid being tied to any specific platform. Your deploy.yml works with any VPS provider, so you can switch from Hetzner to DigitalOcean without changing a thing.
My take: start with Railway to validate and ship fast. If your project grows and hosting costs start to matter, migrate to Kamal with a cheap VPS. The Docker containerization that Kamal requires actually makes migration easier, not harder.
Sources
All figures above were verified by fetching these sources on 2026-05-29.
- Railway pricing plans and per-unit rates: https://docs.railway.com/reference/pricing/plans
- Railway pricing page: https://railway.com/pricing
- Kamal GitHub repository, stars, forks, issues, license, language: https://github.com/basecamp/kamal
- Kamal latest release v2.11.0: https://github.com/basecamp/kamal/releases/tag/v2.11.0
- Kamal RubyGems download counts and current version: https://rubygems.org/api/v1/gems/kamal.json
- Hetzner Cloud server pricing (for the VPS cost range, confirm current figures before committing): https://www.hetzner.com/cloud/
Like this? You'll like what I'm building too.
Two ways to support and get more of this work.
HEARTH
A privacy-first Life OS for your desktop. Journal, tasks, and notes that stay on your machine. Coming soon, direct download from this site.
Read moreMY TOOLKITS
Receipts-first toolkits for shipping after hours, building Claude agents, publishing on Amazon, and more. The exact methods I used, not theory.
Browse on WhopRelated Articles
Angular vs HTMX for Solo Developers
Comparing Angular and HTMX for solo developers. Features, pricing, pros and cons, and which one to pick for your next project.
Angular vs Qwik for Solo Developers
Comparing Angular and Qwik for solo developers. Features, pricing, pros and cons, and which one to pick for your next project.
Angular vs SolidJS for Solo Developers
Comparing Angular and SolidJS for solo developers. Features, pricing, pros and cons, and which one to pick for your next project.