EthioDeploy
DocsPricingDomainsBlogToolsChangelog

Blog/Hosting and pricing

Heroku vs Render vs Railway: pricing, free tiers and databases in 2026

BS
Brook SolomonPublished November 7, 2026
Share on XShare on LinkedIn
$7 · $7 · usage

THE SHORT ANSWER

For a small always-on app, Heroku Basic and Render's starter instance both cost $7 a month for 512 MB of memory, and Railway bills by usage from a $5 Hobby plan that includes $5 of usage. Render is the only one of the three with a free web tier that has no time limit, but it sleeps after 15 minutes and its free Postgres expires after 30 days. Heroku has no free tier and moved to maintenance-only engineering in February 2026. Railway is cheapest for small, mostly idle services and the hardest to predict for busy ones.

Which one should I pick?

  • Render if you want fixed monthly prices, a free tier to try things on, and Dockerfile or native builds. It has the most regions of the three on its standard plans.
  • Railway if your services sit idle most of the time and you'd rather pay per second of real CPU and memory than a fixed price per instance.
  • Heroku if you already run there and it works. For a new project, weigh its February 2026 announcement that it now focuses on stability and security, not new features.

How do the prices compare?

Everything here comes from each vendor's own pricing page or docs, read on November 7, 2026:

HerokuRenderRailway
Pricing modelFixed price per dynoWorkspace plan plus a fixed price per instance, prorated by the secondPlan fee that doubles as usage credit, then per-second usage
Free optionNone. Eco is $5/month for 1,000 shared hours750 free instance hours a month; sleeps after 15 minutes idle$5 one-time trial for 30 days, then a Free plan with $1/month of credit
Cheapest always-onBasic dyno, $7/month, 0.5 GB$7/month, 512 MB, 0.5 CPUNo fixed tier. About $10 per GB of RAM and $20 per vCPU a month
PostgresFrom $5/month (Essential-0, 1 GB). No free planFree for 30 days, then from $6/monthRuns as a service, billed by usage
RedisKey-Value Store Mini, $3/month for 25 MBKey Value: free 25 MB (memory only), paid from $10/monthRuns as a service, billed by usage
Workers and cronWorker dynos at dyno prices; cron through the Scheduler add-onWorkers at instance prices; cron billed per minuteWorkers are normal services; cron at most every 5 minutes
Pull request previewsReview Apps, billed like normal appsSingle-service previews on Hobby; full-stack previews from ProPR environments
RegionsUS and EU; 10 more with Private SpacesOregon, Ohio, Virginia, Frankfurt, SingaporeCalifornia, Virginia, Amsterdam, Singapore
Request timeoutFirst byte within 30 seconds, then a rolling 55-second windowNot stated in the docsUp to 15 minutes while data moves; 5 minutes idle

What does a small always-on app cost?

Take one web service with 512 MB of memory that runs all month. On Heroku that is a Basic dyno at $7. On Render it is the $7 instance with 0.5 CPU, on the free Hobby workspace plan.

On Railway the price depends on what the service uses. Holding 0.5 GB of RAM for a month is about $5 at Railway's rate of roughly $10 per GB, before CPU. A service that mostly waits for requests uses little CPU and can fit inside the $5 included in the Hobby plan. A busy one goes past it, and you pay the difference. Included usage doesn't roll over to the next month.

Add Postgres and the order changes. Heroku's Essential-0 is $5 a month for 1 GB of storage, with shared RAM and a pricing page that allows up to 4 hours of downtime a month. Render's cheapest paid database is $6 with 256 MB of RAM, and $19 for 1 GB. On Railway the database is another service on the same usage bill.

Which free tier is actually usable?

  • Render gives each workspace 750 free instance hours a month. A free web service spins down after 15 minutes without traffic and takes about a minute to wake up. It has no persistent disk and can be restarted at any time. Free Postgres expires 30 days after you create it and is deleted after a further 14 days unless you upgrade. More in Render free tier cold starts.
  • Railway starts you on a one-time $5 trial for 30 days with no card. After that, the Free plan gives $1 of credit a month, with each service capped at 1 vCPU and 0.5 GB. That is enough for something tiny, not for an app with a database running all month.
  • Heroku has no free tier, and you have to verify a card before you can create an app. The cheapest option is Eco at $5 a month: 1,000 hours shared across your account, and each Eco web dyno sleeps after 30 minutes without traffic.

What changed at each one in 2026?

  • Heroku announced on February 6, 2026 that it is moving to “sustaining engineering”: stability, security and support, without new features. It stopped selling Enterprise Account contracts to new customers, and said card-paying customers see no pricing change. Its next-generation Fir platform is generally available, but only inside Private Spaces.
  • Render dropped per-seat fees on April 23, 2026. The Pro workspace plan is a flat $25 a month (it replaced Professional at $19 per member), and Scale is $499. Existing workspaces moved over on August 1. Hobby is still $0.
  • Railway now asks for a card on file for its post-paid plans. On May 19 to 20, 2026, an automated suspension of its Google Cloud account made every Railway workload unreachable for about 8 hours, according to its incident report.

How do builds and deploys differ?

All three deploy from GitHub on push. Heroku builds with buildpacks, and supports Docker through heroku.yml on its classic Cedar generation only; Fir supports Cloud Native Buildpacks and no Docker. Render builds from a native runtime, a Dockerfile or a prebuilt image. Railway builds with its own Railpack builder.

Timeouts matter if you have slow endpoints or large uploads. Heroku ends a request that hasn't sent its first byte within 30 seconds, and neither limit can be changed. Railway allows up to 15 minutes as long as data keeps moving. Long jobs belong in a worker on any of the three.

Where does EthioDeploy fit?

EthioDeploy is a fourth option with flat plans. The Free plan runs one project with a Postgres, MySQL or Redis database and sleeps after 30 minutes idle. Pro is $10 a month for always-on containers with 1 GB of memory each, and the database is part of the plan rather than a separate bill. You can pay by card in USD or by bank transfer in Birr.

It has one region, so if your users are spread across continents, Render or Railway give you more choice. Side-by-side details are on EthioDeploy vs Heroku, vs Render and vs Railway.

Questions

For one small always-on service they cost the same: $7 a month for 512 MB on Heroku Basic and on Render's starter instance. Render's cheapest paid Postgres is $6 against Heroku's $5, but Render also has a free tier and Heroku does not.

For small, mostly idle services, usually yes: one can fit inside the $5 of usage included in Railway's Hobby plan. For a service that keeps CPU and memory busy all month, Railway's usage bill can pass Render's fixed $7 instance price.

No. The cheapest option is Eco at $5 a month for 1,000 dyno hours shared across your account, and Eco web dynos sleep after 30 minutes without traffic. You also need a verified card to create apps.

No. In February 2026 Heroku said it is moving to sustaining engineering, focused on stability, security and support rather than new features, and that card-paying customers see no pricing change.

Yes. A free Render Postgres database expires 30 days after it is created, and Render deletes it after a further 14-day grace period unless you upgrade to a paid plan.

Sources

Checked on November 7, 2026:

  • Heroku pricing
  • Heroku Eco dyno hours
  • Heroku Postgres plans
  • Heroku generations (Cedar and Fir)
  • Heroku regions
  • Heroku request timeout
  • Heroku account verification
  • Heroku Review Apps
  • Heroku: An update on Heroku
  • Render pricing
  • Render free instances
  • Render preview environments
  • Render regions
  • Render: Updated plans for workspaces
  • Railway pricing
  • Railway pricing docs
  • Railway databases
  • Railway cron jobs
  • Railway regions
  • Railway networking limits
  • Railway incident report, May 19 2026

Push a repo. Get a URL.

  • EthioDeploy vs Heroku
  • EthioDeploy vs Render
  • EthioDeploy vs Railway
  • Heroku alternatives
  • Pricing
Start free

Join the EthioDeploy Telegram

Release notes as they ship, plus deploy help from the team and other developers.

Join on Telegram
BS
WRITTEN BYBrook SolomonFounder, EthioDeploy

Brook Solomon founded EthioDeploy and builds its deploy pipeline, build servers and AI coding agent. The posts here come from errors seen in real deploys on the platform.

All posts by Brook →
On this page
  • Which one should I pick?
  • How do the prices compare?
  • What does a small always-on app cost?
  • Which free tier is actually usable?
  • What changed at each one in 2026?
  • How do builds and deploys differ?
  • Where does EthioDeploy fit?
  • Questions
  • Sources
0% read

Keep reading

  • 15 min idle

    Hosting and pricingOct 29, 2026

    Render free tier cold starts: why your app sleeps and how to avoid it

    Render spins a free web service down after 15 minutes without inbound traffic, and the next request waits about a minute while it starts again. That is the cold start. You avoid it by moving to a paid instance (Starter is $7 a month), by keeping the service busy within Render's 750 free hours, or by hosting on a plan that doesn't sleep.

  • DEBUG = False

    Fix deploy errorsNov 7, 2026

    Django static files 404 in production

    Django only serves static files itself while DEBUG is True. Its docs call that method grossly inefficient and probably insecure, so with DEBUG = False in production every /static/ URL returns 404 and the admin loses its styling. The fix has three parts: set STATIC_ROOT, run python manage.py collectstatic during the build, and serve the collected folder, usually with WhiteNoise added to MIDDLEWARE right after SecurityMiddleware.

  • Access-Control-Allow-Origin

    Fix deploy errorsNov 7, 2026

    CORS error after deploying frontend and backend separately

    Once your frontend and API are deployed to different domains, the browser treats every API call as cross-origin and blocks the response unless the API sends an Access-Control-Allow-Origin header naming the frontend's exact origin. It worked locally because the Vite dev proxy, or a single localhost origin, hid the problem. The fix goes on the backend: allow the deployed frontend's origin, with scheme and no trailing slash, answer OPTIONS preflight requests, and never combine credentials with a * origin.

EthioDeploy

Agentic first development and deployment, started in Ethiopia, built for developers everywhere.

Telegram community
Product
PricingAI coding agentAgent mode docsDomainsCLIFree backend hostingHosting in EthiopiaChangelog
Deploy guides
Next.jsNode.jsPythonSvelteKitTanStack StartDjangoFastAPIFlaskExpressNestJSLaravelRailsGoTelegram botDiscord botLovableBoltReplitv0Google AI StudioBase44Firebase StudioClaude Code & Cursor
Compare
vs Herokuvs Vercelvs Rendervs Railwayvs Fly.iovs Netlifyvs KoyebHeroku alternativesVercel alternativesNetlify alternativesRender alternativesRailway alternativesFly.io alternativesReplit alternatives
Resources
DocsBlogFree toolsAboutSupportContactllms.txt
© 2026 EthioDeployPay by card in USD or bank transfer in ETBTermsPrivacy