Part of Small software companiesSmall software companies · Free plans

Free tiers: who pays for them.

Paying customers do. Every free app holds memory, disk and support time, and a free tier attracts people who mine, proxy or phish. Heroku ended its free dynos in November 2022 citing fraud and abuse; Fly.io and Railway replaced theirs with short trials. The free tiers that survive sleep idle apps, cap usage and verify sign-ups.

Facts checked

What a free tier costs the provider

A free app that runs all month costs the same memory as a paid one. The provider’s own price list tells you what that memory is worth, because it is what they would charge for it.

  • Idle memory. Ten thousand free apps left running at Render’s $7 is $70,000 a month of capacity at list price. Most get a visitor a day, if that.
  • Disk and databases. A sleeping app still has an image, a volume and often a database, and databases don’t sleep well: they hold connections, write logs and need backups.
  • Abuse. Free compute with outbound network access gets used for crypto mining, scraping, spam and phishing pages. Each case costs staff time, and phishing on your domain can get your IP ranges blocked for paying customers too.
  • Support. Free users file tickets. Answering them costs the same as answering a paying customer.
Running all monthList priceSource
Render web service, 512 MB, below 1 CPU †$7 a monthRender pricing
Railway service using 0.5 GB of RAM, before CPU †About $5 a month ($10 per GB)Railway pricing
Fly.io shared-cpu-1x machine, 256 MB †$2.19 a monthFly.io pricing

† Competitor details come from each vendor’s own published pages on the dates shown; prices and plans change, so check the vendor before you decide. Render web service, 512 MB, below 1 CPU (2026-10-30) · Railway service using 0.5 GB of RAM, before CPU (2026-10-30) · Fly.io shared-cpu-1x machine, 256 MB (2026-10-30)

Why so many PaaS free tiers shrank or ended

Each provider below describes its own change on its own pages. The common thread is that unlimited, always-on free compute did not survive contact with abuse, and the replacements trade generosity for limits that are cheap to enforce.

ProviderWhat changedWhat a new account gets today
Heroku †Announced 25 August 2022 by its general manager: free dynos, free Heroku Postgres and free Heroku Data for Redis ended from 28 November 2022. The stated reason was the effort spent fighting fraud and abuse of the free plans.No free dynos.
Fly.io †Plans with free allowances were discontinued in October 2024; organizations already on them keep those allowances.A trial of up to 2 hours of machine runtime or 7 days, whichever comes first. “New organizations don’t have a free tier or a monthly free usage allowance.”
Railway † †Moved to a trial model.A one-time $5 grant for up to 30 days, after verification through a GitHub account (judged partly on its age and activity). Some accounts get a Limited Trial with restricted outbound network access. Afterwards, a Free plan with $1 of credit a month.
Render †Keeps a free tier with hard edges.Free web services spin down after 15 minutes without inbound traffic and take about a minute to wake; 750 free instance hours a month per workspace. Free Postgres databases expire 30 days after creation, then are deleted after a 14-day grace period.
Vercel †Keeps a free Hobby plan with a usage boundary.Personal, non-commercial use only. Exceed a limit and most features wait until 30 days have passed.

† Competitor details come from each vendor’s own published pages on the dates shown; prices and plans change, so check the vendor before you decide. Heroku (2026-10-30) · Fly.io (2026-10-30) · Railway (2026-10-30) · Railway (2026-10-30) · Render (2026-10-30) · Vercel (2026-10-30)

What keeps a free tier sustainable

  • Sleeping. Stop the app when nobody uses it and start it on the next request. Memory is the expensive part, and a sleeping app holds none. The cost moves to the first visitor, who waits.
  • Limits on the cost drivers. Cap what grows the bill: traffic, build time, database size, emails. A free plan that limits projects but not bandwidth invites someone to run a file host on it.
  • Expiry. Render deletes free databases after 30 days plus grace. Harsh, but it stops a free tier from becoming permanent storage.
  • Verification. Railway checks the age and activity of a GitHub account before granting a full trial. Every step that is cheap for a real developer and expensive for someone making a thousand accounts helps.
  • Restricting the network. Railway’s Limited Trial blocks most outbound traffic, which removes the main reason to abuse free compute.
  • Commercial-use clauses. Vercel’s Hobby plan is for personal projects. A clause doesn’t stop anyone technically, but it tells businesses which plan they belong on.

How Canner’s free plan is built

Canner’s Starter plan uses the same levers. Apps sleep after 3 hours without a request and wake on the next one; the visitor waits a few seconds. Traffic is capped at 250 GB a month, as a fraud control rather than a sales lever. Apps get 512 MB of memory. A Starter project that has had no request and no deploy for 60 days is paused, with an email, and a redeploy brings it back with its code, variables and database intact. Paid plans are not paused, because they pay for the capacity. The deploy docs describe sleep and wake, and the plans and limits page lists the rest.

If you build on someone else’s free tier

  • Plan for the wake-up. A sleeping app answers its first request slowly. Fine for a demo, a portfolio or an internal tool; not fine for a webhook endpoint with a 10-second timeout or a checkout page.
  • Read the expiry rules before you store data. A free database that is deleted after 30 days is a test database. Don’t put a customer’s records in it.
  • Assume the terms will change. Every row in the table above is a change. Keep your app portable: a Dockerfile or a standard build, environment variables for configuration, and a database you can dump with pg_dump.
  • Know when you’ve outgrown it. The moment a paying customer depends on the app, the free tier’s limits are your service level. From side project to production covers that step.

If you offer a free tier yourself

The same arithmetic applies to your product. Measure what a free account costs, as in hosting cost per customer, and divide it by the number that upgrade each month. That is what the free tier spends to win one paying customer, and you can compare it with any other way of finding one.

  • Limit the expensive driver, not the feature people need to see value. If email is your biggest cost, cap sends on free accounts; let them use the core feature.
  • Stop doing work for idle accounts. Pause background jobs, scheduled reports and sync for accounts nobody has opened in 30 days.
  • Verify before the expensive part. Confirm the email address before the first send, and ask for a card before anything that spends real money, such as AI calls or SMS.
  • Write the limits down. A free plan whose limits are published can be changed with notice. One whose limits are “generous” will be changed with an apology.

Questions

Why did Heroku remove its free tier?

Heroku’s announcement of 25 August 2022 said it was spending an extraordinary amount of effort managing fraud and abuse of the free plans. Free dynos, Postgres and Redis plans ended from 28 November 2022.

Does Fly.io still have a free tier?

Not for new organizations. Fly.io’s pricing page says new organizations get a trial of up to 2 hours of machine runtime or 7 days, and no monthly free allowance. Organizations on plans discontinued in October 2024 keep their old allowances.

Is it safe to run a production app on a free tier?

For a personal project, often yes. For anything a paying customer relies on, no: free apps sleep, free databases can expire, and free terms change. Move to a paid plan before the first customer, not after the first outage.

A free plan with its limits written down.

Starter is free: apps sleep after 3 hours idle and wake on the next request, with 250 GB of traffic a month. Live keeps 2 projects always on for $9 a month.