Railway vs Render vs Fly.io vs ohmyho.st for solo developers: 2026 pricing

By Sebastian Mertens · September 20, 2026

Railway starts at $5 a month minimum usage, Render is $0 plus compute from $7 a month for a web service, and Fly.io bills a small machine from $1.94 a month by the second. ohmyho.st is $10 a month for 1,000 credits shared by every project; a small app uses about 552.44 credits.

railway pro$20 /moresend pro$20 /mo2 accounts · 1 project · usage above $20 is billed per second$40 /moohmyho.st · every projecthostinguses creditspostgresuses creditsemailuses creditslink a domainuses creditseach extra projectno base fee1 balance · 1,000 credits a month$10 /mo
List prices checked on September 19, 2026 · Railway pricing · Resend pricing. ohmyho.st: $10 a month buys 1,000 credits shared by every project; hosting, Postgres, mail and a linked domain are metered from that balance.

How each one bills

Three models. Railway meters seconds against a monthly minimum. Render sells fixed-price instances on top of a plan. Fly.io meters machines by the second with no plan at all. ohmyho.st meters usage from one prepaid credit balance. Which one is cheapest depends on how much of the month your app is actually awake.

Railway

Railway is a plan floor plus usage. The Free tier is a 30-day trial with $5 of credits, then $1 per month; one project member. Hobby is $5 a month minimum usage and carries the same amount of usage credit for a single developer workspace. Pro is $20 a month minimum usage with $20 of usage credit and team seats. Usage above the credit is added to the bill; the minimum is not charged on top of every dollar again.

Compute is metered per second on what the service actually uses. Over a full 30-day month, one vCPU lists at $20.01, one GB of memory at $10.01 and one GB of volume at $0.16. Service egress is $0.05 per GB; object storage is $0.015 per GB-month. Railway can put an inactive service to sleep when you enable Serverless for that service, and wakes it on the next request (docs.railway.com/deployments/serverless, read 2026-09-20). A sleeping web service costs less; a Postgres service stays up.

Render

Render is a plan plus fixed-price instances. Hobby is $0 a month plus compute and covers one seat, up to 25 services, 5 GB bandwidth, 2 custom domains, 500 build minutes a month; free compute rows carry usage limits. Pro is $25 a month plus compute and adds seats, bandwidth, domains and build minutes. A web service with 0.5 CPU and 512 MB is $7 a month; one with 1 CPU and 2 GB is $25 a month. Postgres starts at $6 a month for 0.1 CPU and 256 MB, or $19 a month for 0.5 CPU and 1 GB; expandable storage is $0.30 per GB. Beyond the plan, bandwidth is $0.15 per GB, an extra custom domain is $0.25 per month and build minutes are $5 per 1,000 minutes. Persistent disk is $0.25 per GB per month.

Render's free web service instance spins down after a period without traffic and spins up again on the next request, with a delay; its free Postgres expires after a set period unless upgraded (render.com/docs/free, read 2026-09-20). The instance rows above are the ones that stay awake.

Fly.io

Fly.io has no plan floor on the page we checked. You pay for machines by the second. A shared-cpu-1x machine with 256 MB in Ashburn lists at $1.94 a month if it runs the whole month; a performance-1x with 2 GB lists at $31 a month. Additional RAM is $5 per GB per month. A stopped machine keeps paying $0.15 per GB of root filesystem per month. Volumes are $0.15 per GB per month and snapshots are $0.08 per GB per month after a free allowance. Egress in North America and Europe is $0.02 per GB.

Fly.io's proxy can stop machines when the app has spare capacity and start them again when a request arrives; a stopped machine is not charged for CPU and RAM (fly.io/docs/launch/autostop-autostart, read 2026-09-20). Postgres on Fly.io is not in our checked price list, so this page prices only the machine.

List prices checked on 2026-09-19 — Railway pricing.

List prices checked on 2026-09-19 — Render pricing.

List prices checked on 2026-09-19 — Fly.io pricing.

The same small app on each

The assumptions, stated once. One Next.js app with a Postgres database. About 1 GB of stored data. 100,000 requests a month. 20 build minutes. 2,000 transactional mail recipients. The database is active for about 8 hours in the month and idle the rest. That is exactly the ohmyho.st workload itemized in the next section. For the three competitors we give the list-price formula and the fixed rows; we do not invent a usage total, because their meters measure what your container actually consumes.

On Railway

Start from the Hobby minimum of $5 a month, which covers the first $5 of usage. Then add vCPU-seconds, memory GB-seconds and volume GB-seconds for two services (the app and Postgres) at the per-second rates, plus egress at $0.05 per GB. Two always-on services with a full vCPU each would list above the Hobby credit; two small idle containers may stay inside it. Serverless can sleep the web app, not the database. Railway has no mail product, so add a mail provider: the figure above shows Railway Pro with Resend Pro at $40 a month before usage above the credits.

On Render

Render is the easiest to price because the rows are fixed. Hobby at $0, one 0.5 CPU / 512 MB web service at $7 and one 0.1 CPU / 256 MB Postgres at $6 sum to $13 a month at list price. Our 1 GB of data sits at the edge of that instance's SSD; growth costs $0.30 per GB. Bandwidth above the Hobby allowance is $0.15 per GB. Mail is again a separate provider.

On Fly.io

Machine seconds times the machine rate. One shared-cpu-1x that never stops lists at $1.94 a month; with autostop it drops toward $0.15 per GB of root filesystem for the stopped hours. Add $0.15 per GB of volume if the app keeps files, and $0.02 per GB out. Postgres means a second machine plus a volume, or a managed option; neither is in our checked list, so there is no total here. Mail is a separate provider.

On ohmyho.st

The same app is about 552.44 credits, with mail and database active time counted in the metered lines, against the 1,000 credits a Paid month grants for $10. The line items are in the next section.

List prices checked on 2026-09-19 — Railway pricing.

List prices checked on 2026-09-19 — Render pricing.

List prices checked on 2026-09-19 — Fly.io pricing.

List prices checked on 2026-09-19 — Resend pricing.

Where each one wins

An honest list. Each of these is a real reason to pick the other platform.

Railway wins when you need a container

Any Dockerfile runs on Railway: a Go binary, a Python worker, Redis, a queue consumer, a cron container. Several services in one project talk over a private network. ohmyho.st runs Next.js, Vite/React and TanStack Start from a GitHub repository and nothing else; there is no container runtime. If your app is not one of those three, Railway is the answer and this comparison is over.

Render wins when you want a bill you can forecast

Render's compute rows are fixed monthly prices. A web service and a Postgres instance cost the same in a quiet month and a busy one, which some people prefer to any meter. Background workers and cron jobs are first-class service types. A free static site or a spin-down web service is fine for a demo.

Fly.io wins on placement and raw machines

Fly.io lets you put machines in specific regions, or several regions at once, close to your users. You get a real VM: your own Postgres, custom binaries, long-lived processes, WebSockets that hold state. Per-second billing with no monthly floor rewards a machine that stops when idle.

ohmyho.st wins when you have several small apps and a coding agent

No per-project base fee: five side projects draw from the same balance, and a dead one only pays for its stored data and one deployed script. Hosting, Postgres, transactional mail and a linked domain are metered from that one balance, so you are not stacking a hosting plan, a database plan and a mail plan. Your agent deploys through MCP; there is no dashboard to babysit. And you can leave: an on-demand export gives you a password-encrypted ZIP with a portable SQL dump.

The trade-offs run the other way too. ohmyho.st is young. Automatic recharge is not enabled yet. Mail and a custom domain need Paid. Exports are SQL only, one accepted request per project in any rolling 24-hour window, and the signed download link lasts 24 hours.

Where ohmyho.st fits

The model in a few lines. Free is 200 credits per UTC month. Paid is $10 a month for 1,000 credits per period. Monthly credits expire at period end; purchased top-ups never expire, at 100 credits per dollar with a better rate on larger packs. One credit has a nominal value of $0.01. Every project in the organization draws from the same balance. A project may carry a monthly budget that either continues with warnings or stops new work. A zero balance starts a grace period of 7 days; funded services keep running, and only unfunded services suspend afterwards. Details on pricing and budgets.

Here is the small app from the section above, line by line.

Item Credits
20 build minutes 24.10
100,000 requests 9.86
1M CPU-ms 6.57
4 database CU-hours (8 active hours on the Paid standard 0.5 CU profile) 291.77
1 database GB-month 115.00
2,000 mail recipients 105.14
Total: A small app for one month about 552.44

About $5.52 of credit value at the standard rate.

That total sits under the Paid grant. The biggest line is database active time: 72.942857 credits per 1 CU-hour on the Paid standard profile of 0.5 CU, so one active hour is about 36.47 credits. Idle database compute suspends and stops that meter; retained storage keeps billing at 115 credits per 1 GB-month. The Free profile is 0.25 CU; the Paid performance profile is 1 CU at 91.178571 credits per 1 CU-hour.

A side project you rarely touch looks different.

Item Credits
2 build minutes 2.41
5,000 requests 0.49
50,000 CPU-ms 0.33
1 active database hour on the Paid standard 0.5 CU profile 36.47
0.2 database GB-month 23.00
1 deployed script 6.57
Total: A quiet side project for one month about 69.27

About $0.69 of credit value at the standard rate.

That fits inside the Free grant. What keeps drawing credits when nothing happens: stored data, each deployed script at about 6.57 credits a month, a linked custom hostname (Paid) at about 32.86 credits a month and a mail sender zone (Paid) at about 164.29 credits a month. Workers bandwidth is not charged. SQL exports are free. Mail is metered per recipient at the Essentials rate, and To, CC and BCC each count; the small-app table shows what 2,000 recipients cost.

How a deploy actually happens when you deploy from Claude Code, Codex or Cursor: the agent reads the Skill, calls project_create and source_link for the GitHub repository you authorize, then deployment_plan, which quotes the build and its credits before deployment_create runs it. Promotion to Prod is promotion_plan then promotion_execute; rollback is rollback_plan then rollback_execute. Secrets go through the stdin-only CLI command from secret_set_command, never through chat. Every project gets Dev and Prod hosts on a three-word check.omh.st address; a customer-owned domain is Paid and metered, set up through domain_paid_plan and domain_paid_apply, and a sender subdomain for mail through mail_domain_set and mail_domain_status. US hosting is the default; EU is a per-project choice made once at creation, at the same prices. The portal at app.ohmyho.st shows projects, credits, budgets and API tokens; it does not deploy. The full 62-tool catalog is on the MCP tools page.

To try it, paste this into your agent:

Read https://ohmyho.st/llms.txt and https://ohmyho.st/skills/ohmyhost-get-started/SKILL.md. Connect this agent to ohmyho.st and deploy this GitHub project using only the capabilities it needs. Follow the deployment Skill, keep my existing project decisions and verify the app.

FAQ

Which is cheapest for one small app that is mostly idle?

Fly.io with autostop or Railway with Serverless, if you accept a cold start and run Postgres yourself. Render's fixed rows land at $13 a month for a small web service and Postgres. On ohmyho.st the quiet project above is about 69.27 credits, inside the Free grant of 200 credits, because idle database compute suspends.

Does ohmyho.st run Docker containers like Railway or Fly.io?

No. ohmyho.st deploys Next.js, Vite/React and TanStack Start applications from a GitHub repository the customer authorizes, and nothing else. There is no container runtime and no other deployment source. An app that needs a native addon, a custom binary or an arbitrary Dockerfile belongs on Railway or Fly.io.

What happens on ohmyho.st when the credits run out?

The first zero balance starts a grace period of 7 days. Funded services keep running. Any refill clears it. After an unresolved grace period only unfunded services suspend; your data, diagnosis, cancellation, buying credit and export stay available. Automatic recharge is not enabled yet, so a top-up is a deliberate purchase.

Can I leave ohmyho.st with my data?

Yes. The organization Owner requests an export with project_export_create; the platform builds a password-encrypted ZIP with a portable SQL dump asynchronously and returns a signed download link valid for 24 hours. One accepted request per project in any rolling 24-hour window, free, even at zero credits. Restore it on any PostgreSQL host. Files and source are not in the archive. See backups.

Do I need Paid for a custom domain or transactional mail?

Yes. Free projects use their check.omh.st hosts. A customer-owned hostname needs Paid and draws about 32.86 credits a month; a verified mail sender zone needs Paid and draws about 164.29 credits a month, plus the per-recipient mail rate. Paid itself is $10 a month for 1,000 credits.

Sources

ohmyho.st and Railway · Cost breakdown · Deploy from Codex