ohmyho.st as a Railway alternative for side projects
Railway keeps your container running and bills you for the time it runs, on top of a monthly minimum. That is exactly right for a queue worker or a websocket server, and exactly wrong for a side project that gets forty visitors in a good week.
Railway's Hobby and Pro plans bill a $5 or $20 monthly minimum plus per-second vCPU and memory. ohmyho.st bills what a request actually uses — requests, CPU-ms, database hours and storage — from one balance: 200 credits free each month, or $10 for 1,000. The trade is real: Railway runs any container, ohmyho.st runs Next.js, Vite and TanStack on Workers. Quiet apps are cheaper here; anything that must stay running belongs on Railway.
What Railway charges
Railway has three plans and one per-second meter underneath all of them. The plan price is a minimum, not a fee on top: usage up to the minimum is covered by it, and only usage above it is added to the bill.
- Free: $0 per month. Railway lists it as a 30-day trial with $5 credits, then $1 per month; up to 0.5 GB of RAM per service and 0.5 GB of volume storage. The dollar after the trial is a monthly usage credit, not a charge (railway.com/pricing, read 2026-09-20).
- Hobby: $5 per month minimum usage, covering $5 of monthly usage credits, a single developer workspace.
- Pro: $20 per month minimum usage, covering $20 of monthly usage credits and seats for a whole team.
Below the plans, every running service is metered by the second:
- vCPU: $0.00000772 per vCPU per second. One vCPU kept busy for a 30-day month is about $20.01.
- Memory: $0.00000386 per GB of memory per second. One GB held for a 30-day month is about $10.01.
- Volumes: about $0.16 per GB for a 30-day month, billed by the second while provisioned. Object storage is $0.015 per GB-month of object storage.
- Egress: $0.05 per GB of service egress; bucket egress is free.
Memory is the line to watch. A container holds its memory whether or not a request arrives, so a service that stays up pays for its RAM every second, traffic or not. Railway's answer is a per-service serverless option that can reduce a service's usage cost: a service that sends no outbound packets for a few minutes is put to sleep, and the first request after it wakes is slower and may fail (docs.railway.com/deployments/serverless, read 2026-09-20). Outbound traffic such as an open database connection or telemetry keeps a service awake. A stopped service costs nothing (railway.com/pricing, read 2026-09-20).
List prices checked on 2026-09-28 — Railway pricing.
What ohmyho.st charges
There is no memory meter. An app is billed for requests and CPU milliseconds. A database is billed for the RAM-hours it is awake, with its disk and seven-day backups included. Every project in your organization draws from the same balance, and no project carries a base fee.
Plans first:
- Free: 200 credits per UTC month. They expire at month end.
- Paid: $10 a month for 1,000 credits per period. Unused monthly credits expire at period end without rollover.
- Top-ups: 100 credits per dollar for the first hundred dollars of a purchase, 125 per dollar above that. Top-ups are only available on Paid and expire on downgrade to Free.
Then the meters a side project touches:
- Requests: 98.571429 credits per 1,000,000 requests.
- CPU: 6.571429 credits per 1,000,000 CPU-ms. Time spent waiting on the database or on a fetch is not CPU time.
- Database RAM and active time: 10 credits per 256 MiB for one awake hour. Free supports 256 MiB RAM; larger sizes require Paid. The 512 MiB size costs 20.00 credits per active hour. All sizes sleep after five idle minutes.
- Allocated database disk and seven-day backups are included. Database CPU, network and connections have no separate charges. Customer-uploaded files retain their R2 rates.
- Files: 4.928571 credits per 1 GB for 30 days (daily peak).
- Builds: 1.204938 credits per 60 build seconds, measured from the start of your build to its end.
- Mail: 0.18 credits per 1 sent recipient, one recipient per message. Sending needs Paid and a verified mail domain; the domain itself has no monthly fee.
- Per project: each deployed script uses about 6.57 credits a month, and a linked customer-owned hostname uses about 32.86 credits a month. The hostname needs Paid or, on Free, a project that shows the “Powered by ohmyho.st” flag; the flag waives domain credits on either plan.
Bandwidth from Workers is not charged. SQL exports are free. Scheduled functions have no meter of their own: each run is one request plus its CPU milliseconds. EU hosting is a choice made once when a project is created, US is the default, and the rates are the same in both.
Put together, a quiet project looks like this:
| Item | Credits |
|---|---|
| 2 build minutes | 2.41 |
| 5,000 requests | 0.49 |
| 50,000 CPU-ms | 0.33 |
| 1 active database hour at 256 MiB RAM, including disk and seven-day backups | 10.00 |
| 1 deployed script | 6.57 |
| Total: A quiet side project for one month | about 19.80 |
About $0.20 of credit value at the standard rate.
That project pays for the hour its database was awake, the data it keeps and one deployed script. Between requests it pays nothing. A project may carry a monthly budget that either continues from the shared balance or stops the project at its limit. A zero balance starts a 7-day grace period during which funded services keep running; afterwards only unfunded services suspend. Automatic recharge stays off unless the Owner turns it on.
Where Railway wins
Railway is a general-purpose runtime. If your project is a container, Railway is the simpler choice and ohmyho.st is not a choice at all.
When Railway is the better choice
- Any language. Python, Go, Rust, Ruby, PHP, Elixir or a JVM service builds from a Dockerfile or a buildpack and runs the way it runs on your laptop.
- Long-running processes. A WebSocket server, a queue worker, a Discord bot or a loop that holds state in memory needs a process that stays up. Railway bills that process by the second; ohmyho.st has no process to keep up.
- Volumes. A service that writes to local disk gets a persistent volume at about $0.16 per GB for a 30-day month. ohmyho.st has no disk to mount.
- Self-managed infrastructure. Redis, ClickHouse, a Postgres with your own extensions, or anything you would rather run as an image than rent as a service.
- One small always-on service. If it needs a slice of a vCPU and a few hundred MB, its per-second bill can sit inside the Hobby minimum, and Resend's free tier covers 3,000 emails a month, at most 100 a day for $0. That is a hard price to beat for one project.
Railway also deploys from a Docker image, a CLI upload or a template, not only from GitHub. ohmyho.st deploys only from a GitHub repository you authorize.
List prices checked on 2026-09-28 — Railway pricing.
List prices checked on 2026-09-28 — Resend pricing.
Where credits win
The case for credits is the developer with nine projects and two alive ones.
Many quiet projects
There is no per-project base fee; every project draws from the one balance. Five quiet projects cost about this:
| Item | Credits |
|---|---|
| 10 build minutes across five projects | 12.05 |
| 25,000 requests | 2.46 |
| 250,000 CPU-ms | 1.64 |
| 5 active database hours at 256 MiB RAM, including disk and seven-day backups | 50.00 |
| 5 deployed scripts | 32.86 |
| Total: Five quiet side projects for one month | about 99.01 |
About $0.99 of credit value at the standard rate.
That sits well inside the 1,000 credits that $10 a month buys, with room for one of them to have a busy month. On Railway the same five are five services, each with its own per-second memory clock unless you switch every one to serverless and accept the cold start. If every one of them sleeps, Railway's Hobby minimum may still be the smaller bill; the difference shows up when they get traffic, because a woken container rents its whole memory again while ohmyho.st bills the requests it served.
No per-service floor
A request that never arrives uses no request credits. A retained script still uses about 6.57 credits a month and customer files keep their rates. The database sleeps after five idle minutes, with no active-RAM charge; its disk and seven-day backups remain included.
Postgres and mail on the same balance
Railway Pro plus Resend Pro is $40 a month before any usage above the plan credits, across two accounts. Here Postgres RAM, customer files and transactional mail come off the same credits as hosting: mail at 0.18 credits per 1 sent recipient on Paid, with no monthly fee for the mail domain. Resend Pro is $20 per month and covers 50,000 emails a month; pay-as-you-go overage is opt-in. At that volume a dedicated mail plan is cheaper per message. The saving here is not the per-message price, it is the second account and the second plan: you send from the balance and the agent that already deployed the app.
Bandwidth
Workers bandwidth is not charged. Railway meters service egress at $0.05 per GB. A side project that serves images or downloads notices this line.
List prices checked on 2026-09-28 — Railway pricing.
List prices checked on 2026-09-28 — Resend pricing.
What ohmyho.st does not run
Know the fence before you move anything.
- Containers. There is no Dockerfile path and no customer container runtime. An app that needs a native addon or a Node API that Workers does not provide is rejected at plan time with a reason that names the file.
- Non-JavaScript runtimes. No Python, Go, Rust, Ruby, PHP or JVM. TypeScript and JavaScript only.
- Frameworks. Next.js, Vite with React, and TanStack Start, each on Workers. Next.js builds through the platform-owned OpenNext overlay. Read https://docs.ohmyho.st/frameworks/nextjs, https://docs.ohmyho.st/frameworks/vite and https://docs.ohmyho.st/frameworks/tanstack before assuming a feature works, and https://docs.ohmyho.st/limits for the ceilings.
- Persistent disks. No volumes. Files go to project file storage at 4.928571 credits per 1 GB for 30 days (daily peak); relational data goes to the managed Postgres.
- Long-running processes. A request gets a fixed CPU budget measured in milliseconds, then it ends. No WebSocket server that lives for hours, no worker loop, no in-memory state between requests. Periodic work runs as scheduled functions (functions.crons) that the agent verifies with function_runs_list; read https://docs.ohmyho.st/functions.
- Other deployment sources. GitHub only, through the GitHub App you authorize for the repository. No image push, no CLI upload, no other git host.
- Socket database drivers. A pg client cannot open a socket from a Worker. Database code uses the platform's customer-runtime client, and a plan that imports a socket driver is rejected with the file and the call named.
Your auth provider stays yours. Better Auth and a customer-owned WorkOS AuthKit are the verified application-auth integrations; the platform login is separate from your app's users. Read https://docs.ohmyho.st/application-auth.
Side by side
Bought separately
Railway Pro and Resend Pro for one developer, before usage above the credits
ohmyho.st
one balance, every project
$10 a month buys 1,000 credits. A small app for one month costs about 567.10 credits; a quiet project keeps only its deployed script and any customer files.
The left card is two accounts at their plan minimum, before per-second usage. The right card is one balance shared by every project; the workload it prices, a small app for one month, is about 567.10 credits, and the cost breakdown itemizes it line by line.
How to move
ohmyho.st is hosting for vibe-coded apps: you deploy from Claude Code, Codex or Cursor, and the agent does the work through MCP.
- Ask your agent to read https://ohmyho.st/llms.txt and the get-started Skill. It installs the CLI and MCP server, sends you a sign-in link and selects your workspace.
- Keep the app in GitHub and authorize the repository. The agent follows the deploy Skill: project_create, source_link, deployment_plan, then deployment_create once you have seen the plan and its cost.
- Move secrets through the stdin-only CLI command from secret_set_command, never through chat.
- Move existing rows through a time-bound credential from database_access_create after the deployment has applied your versioned migrations.
- Verify Dev through the reusable share link from project_dev_share_link_get, then promotion_plan and promotion_execute for Prod. Set a monthly ceiling with project_budget_set if you want one.
FAQ
Is ohmyho.st cheaper than Railway?
For quiet projects, usually. A quiet project is about 19.80 credits a month and five of them about 99.01 credits, inside the 1,000 credits that $10 buys. For one always-on service that fits inside Railway's Hobby minimum, Railway is cheaper. For a container of any kind, Railway is the only one of the two that runs it.
Can I run a Docker container or a Python app on ohmyho.st?
No. ohmyho.st runs Astro, Next.js, Vite with React and TanStack Start on Workers, deployed from a GitHub repository you authorize. There is no container runtime, no Dockerfile path and no Python, Go, Rust, Ruby or PHP. An app that needs a native addon is rejected at plan time with the reason named. Keep those on Railway.
What happens when my credits run out?
The first zero balance starts a 7-day grace period. Funded services keep running during it, and any refill ends it. After an unresolved grace period only unfunded services suspend; your data, diagnosis, exports and the option to buy credits stay available. A project with a stop budget stops at its own limit instead of draining the shared balance.
Does an idle database cost anything?
Database RAM stops charging after five idle minutes. Disk and seven-day backups remain included while it sleeps. When it wakes, an hour at 512 MiB RAM costs 20.00 credits; the 256 MiB size costs 10.00 credits. Choose a size from the database table and account for background queries that keep it awake.
Can I take my database and leave?
Yes. The owner asks the agent for an export through project_export_create and gets a password-encrypted ZIP with a portable SQL dump, at most one accepted request per project in any rolling 24 hours, downloadable through a signed link that is valid for 24 hours. Exports are free and work at zero credits. Restore the dump on Railway or any other Postgres.
Is there a dashboard like Railway's?
Not for deploys. Your coding agent deploys through 114 MCP tools, and the expensive or destructive ones are two steps, such as deployment_plan then deployment_create. The portal at app.ohmyho.st shows projects, credits, budgets and API tokens. Usage questions go to the agent, which reads organization_usage_get and project_budget_get and answers with the meters.
Sources
- List prices checked on 2026-09-28 — Railway pricing.
- List prices checked on 2026-09-28 — Resend pricing.
Compare Vercel · Cost breakdown · Deploy from Codex · Railway vs Render vs Fly vs ohmyho.st for solo developers
ohmyho.st is an independent service, not affiliated with or endorsed by Vercel, Supabase or Resend. All trademarks belong to their respective owners.