Railway is one of the nicest developer experiences in this category, and the reason people leave has nothing to do with the product being bad. It is the billing model meeting a workload it was not designed for.
Railway charges for what runs: $20 per vCPU per month and $10 per GB of RAM per month, metered per second ($0.00000772 per vCPU-second, $0.00000386 per GB-second), plus $0.15/GB for volumes and $0.05/GB for egress. For a service that runs in bursts, that is close to ideal - you pay for the bursts. For a service that must stay warm because a human might visit it at any moment, you are renting a machine by the second and never turning it off. A single always-on container with 1 vCPU and 1 GB lands around $30/month in usage alone, before volumes and egress.
The subscription tiers do not change the shape, they prepay it: Hobby is $5/month and includes $5 of usage, Pro is $20/month per seat and includes $20 of usage. There is also a documented Free plan with $1 of monthly credit that does not roll over - which is real, but at $20/vCPU/month it buys about an hour and a half of a full core, so treat it as a sandbox, not a hosting tier. The one-time $5 trial credit expires after 30 days.
So the honest framing for this comparison is: what does each alternative do to your bill when the app never sleeps? Disclosure: Miget is our product and we list it first. Every number below comes from the providers' own pricing pages and docs as of July 2026.
Quick comparison
| Platform | Pricing model | Always-on 1 GB app | Databases | Free tier |
|---|---|---|---|---|
| Miget | Flat plan, unlimited apps inside it | $7/mo plan covers it and more | Included at $0 | Yes (256 MiB, sleeps at 30 min) |
| Railway | Usage: $20/vCPU + $10/GB per month | ~$30/mo in usage | Usage-billed like anything else | $1/mo credit (documented, not marketed) |
| Render | Per service | $7/mo Starter | Postgres $6+, Redis $10+ | Yes (sleeps at 15 min) |
| Fly.io | Per machine, usage | From ~$2.02/mo shared-cpu-1x | Self-operated Postgres | No |
| Heroku | Per dyno + addons | $7/mo Basic dyno | Addons from $5/mo | None since Nov 2022 |
| DigitalOcean | Per container | $5/mo | Separate product from $15/mo | Static sites only |
| Northflank | Usage-based, BYOC option | Usage-billed | Usage-billed | Limited free resources |
| Coolify | Self-hosted, free | Your VPS (~$6/mo) | Anything Docker runs | Free self-hosted |
1. Miget - the meter stops existing
What changes: you stop buying runtime and start buying capacity. A plan (from $5/month for 512 MiB / 1 vCPU) holds as many apps, workers, cron jobs, preview environments and databases as fit inside it. PostgreSQL, MySQL, Valkey, RabbitMQ and Kafka are included at $0 rather than metered like any other container, which is usually where the Railway-to-Miget arithmetic actually turns: a Railway project running an app, a worker and a Postgres is three metered services; on Miget it is one plan.
The trade is the honest one for any flat-rate model: you pay for the capacity whether or not you use it, and scaling past the plan is a deliberate resize rather than an automatic (and automatically billed) burst. If your workload is genuinely spiky - a weekly batch job that needs a lot of RAM for an hour - Railway's meter is the better instrument, and we would rather say so than pretend otherwise.
- Strengths: bill cannot move, databases included, unlimited apps and preview environments, MicroVM isolation per workload, deploys from Git, Dockerfile or docker-compose
- Weaknesses: capacity ceiling per plan, no automatic burst scaling (hybrid burst billing is in the works), single region per app
- Best for: always-on apps and full stacks whose Railway bill is mostly "things that must not sleep"
Full teardown with costed scenarios: Miget vs Railway.
2. Render - the closest like-for-like
What changes: you go from a meter to per-service line items. A web service is $7/month on Starter, managed Postgres from $6, Redis from $10. Nothing surprises you mid-month, but the bill grows one line at a time as the stack grows - which is the failure mode flat plans are designed against and metered plans are not.
The free tier is real for demos and sleeps after 15 minutes of inactivity. Note the database caveat we cover in the free Postgres comparison: Render's free database expires 30 days after creation, while the free compute tier stands.
- Strengths: predictable per-service pricing, managed databases in-house, very familiar workflow
- Weaknesses: line items compound, free tier naps
- Best for: teams who want Railway's simplicity with a bill they can forecast per service
3. Fly.io - if you actually need the edge
What changes: you trade a managed platform for machines you place. Fly runs Firecracker MicroVMs in 30+ regions from around $2.02/month for a shared-cpu-1x, which is genuinely cheap per machine, and gives you multi-region routing that nobody else on this list matches.
What you take on: Fly Postgres is explicitly not a managed database - you operate it. Bandwidth is billed. There is no free tier anymore. It is closer to IaaS with excellent ergonomics than to a PaaS, and teams that move there for the price sometimes discover they moved for the ops.
- Strengths: genuine multi-region, per-machine granularity, strong CLI
- Weaknesses: you operate the database, no free tier, usage billing on bandwidth
- Best for: latency-sensitive apps that need to be in many places at once
4. Heroku - the original, if the ecosystem is the point
What changes: back to dynos and addons. A Basic dyno is $7/month, addons are separate line items from $5/month, and there has been no free tier since November 2022. The reason to choose Heroku in 2026 is the addon marketplace and institutional familiarity, not the price.
- Strengths: the deployment workflow everyone knows, deep addon ecosystem
- Weaknesses: addons compound fast, no free tier, the trust hit from 2022 has not fully healed
- Best for: teams whose stack depends on specific Heroku addons
We compared the full field in Best Heroku Alternatives.
5. DigitalOcean App Platform - boring, in the good way
What changes: containers priced from $5/month each, with managed databases as a separate product from around $15/month. No meter, no surprises, and DigitalOcean's operational reputation behind it. The catch is the same as Render's: the bill is a list, and lists get longer.
- Strengths: simple per-container pricing, mature infrastructure, predictable
- Weaknesses: databases are a separate and comparatively expensive product
- Best for: teams already in the DigitalOcean ecosystem
6. Northflank - usage billing with an escape hatch
What changes: not the model - Northflank is usage-billed like Railway - but the ceiling. Its differentiator is bring-your-own-cloud: run the control plane as a service while the workloads execute in your own AWS, GCP, Azure or bare-metal account. For teams with cloud credits or compliance requirements, that is the feature that matters, and it is the reason to look past the fact that the billing shape is the one you were trying to leave.
- Strengths: BYOC, strong Kubernetes-native primitives, handles complex stacks
- Weaknesses: usage-based like Railway, more platform to learn
- Best for: teams that must run in their own cloud account
7. Coolify - delete the bill, buy the ops
What changes: everything becomes yours. Coolify is open source and free self-hosted (their managed control plane is $5/month plus $3 per additional server) while your apps run on servers you bring. A $6 Hetzner box plus Coolify gives you an app, a database and previews for under $12/month all-in.
The cost is not money, it is pager duty: OS patching, backups, TLS renewal, disk space, and the 3 a.m. outage are now your job. For some people that trade is obviously correct. For others it is a second job they did not apply for.
- Strengths: cheapest possible production stack, complete control, no vendor limits
- Weaknesses: you are the platform team
- Best for: technical teams that want PaaS ergonomics at VPS prices
How to choose
- Is your workload always-on? Then per-second billing is charging you for time nobody is using. A flat plan (Miget) or per-service pricing (Render, DigitalOcean) will be cheaper and more predictable.
- Is it genuinely bursty? Stay on a meter. Railway's model is good at exactly this, and switching to flat capacity to serve a weekly spike is the wrong trade.
- Is your database the expensive part? Count line items before you compare platform fees - a stack where Postgres and Redis are separate metered services is the case where included databases change the total, not the headline.
- Do you need to be in your own cloud account? Northflank. Do you need many regions? Fly. Do you want no bill at all and accept the ops? Coolify.
Frequently asked questions
Does Railway have a free tier in 2026?
Sort of, and it is easy to get wrong. There is a one-time $5 trial credit that expires after 30 days, and a documented Free plan with $1 of monthly credit that does not roll over. At Railway's own rates ($20/vCPU/month) that $1 is roughly an hour and a half of a full core, so it is a sandbox rather than a hosting tier - and it is not advertised on the pricing page, only in the docs.
Why is my Railway bill higher than I expected?
Usually because something is always on. Metered platforms bill wall-clock time for anything warm, so an app, a worker and a database that all stay running are three meters spinning continuously. Railway has an opt-in Serverless mode that sleeps a service after 10 minutes with no outbound packets, but the docs are explicit that the first request to a sleeping service can be slow or even return a 502 - which is why most people leave it off for anything user-facing.
What is the cheapest way to run an always-on app with a database?
Self-hosting on a VPS with Coolify (~$12/month all-in, and you own the ops), or a flat plan that includes managed databases - Miget's $7/month 1 GiB plan holds an app plus a managed Postgres with no separate database bill. Per-service platforms land in between once you add the database line item.
Can I move off Railway without rewriting anything?
If you deploy containers or use a Dockerfile, yes - every platform here takes the same image. The work is in configuration, not code: environment variables, volumes, and whatever your database migration path looks like. Platforms that also accept a docker-compose.yml (Miget, Coolify) let you keep your local development file as the deployment description.