In 2022, a developer with a side project had an embarrassment of free riches: Heroku's free dynos, Railway's starter allowance, Fly.io's three free VMs, Render's free tier, Vercel's Hobby plan. In September 2026, that same developer has exactly two places left where "free" means free-forever — and both come with catches that decide the architecture. Everything else is a trial credit with a countdown timer, a hobby plan with a commercial-use ban, or a paid plan with no apology.
A September 2026 community audit of Python SaaS hosting put the state of play bluntly: only Render and PythonAnywhere still offer a genuinely free-forever tier. Vercel's Hobby plan is free but restricted to personal, non-commercial use. Railway and Fly.io give new signups trial credit and then start the meter. Heroku has had no free plan since November 2022. This post re-verifies each claim against current pricing pages, prices what each surviving "free" tier actually excludes, and works the one comparison the audit only gestures at: what an always-on side project costs on every paid path versus a flat-rate box you split across projects.
The short version, for readers in a hurry:
| Provider | September 2026 verdict | The catch in one line |
|---|---|---|
| Render | Free-forever | 750 hrs/month, sleeps after 15 min idle |
| PythonAnywhere | Free-forever | ~100 CPU-seconds/day, no custom domain |
| Vercel Hobby | Free, conditional | Personal, non-commercial use only |
| Railway | Trial credit only | $5 one-time credit, then $5/month minimum |
| Fly.io | Trial credit only | 2 VM-hours or 7 days, then per-second billing |
| Heroku | Paid-only | No free plan since November 2022 |
The rest of this post shows where every cell in that table comes from — and why the honest replacement for a dead free tier is a €3.99 box shared across side projects, not another vendor's trial credit.
The two survivors: Render and PythonAnywhere
Render's free tier is the last general-purpose free compute on the list, and its terms explain why it survives: a free web service gets 750 instance-hours per month and sleeps after 15 minutes without traffic, with a cold start of roughly 30 seconds on the next request. That is enough to host a real side project with a real URL and real TLS — as long as nobody minds the nap. The moment the project needs to be awake — a cron job, a webhook receiver, a demo you give to investors — the answer is the Starter plan at $7 per month, and a managed Postgres to go with it. The free database tier exists but is small and time-limited, so check the current terms before designing around it; persistent data was never the free tier's job.
PythonAnywhere survives by being narrower. Its free Beginner account hosts one Python web app at username.pythonanywhere.com that does not sleep — but the quota that matters is CPU time, roughly 100 CPU-seconds per day, which throttles anything bursty back to hobby scale fast. Custom domains are paid-only, background and always-on tasks are paid-only, and the single scheduled task allowance covers a daily script, not a worker fleet. For a Python side project that is mostly idle and entirely non-commercial in spirit — a personal dashboard, a weekend bot, a class assignment — it is genuinely free forever. For anything that needs a custom domain, a background worker, or more than a trickle of CPU, the meter starts at the first paid tier.
The pattern across both survivors: free covers hosting, never operations. Sleep, CPU quotas, and missing domains are all ways of saying the same thing — the free tier is a shelf for dormant projects, not a foundation for live ones.
The conditional: Vercel's Hobby plan
Vercel's Hobby plan looks, on paper, like the most generous free tier left: 100 GB of bandwidth, a million function invocations, a million edge requests, and 4 CPU-hours of compute every month, with hard stops instead of overage billing when a limit is hit. For a portfolio site or a demo, it is excellent.
The condition is in the terms of service, not the pricing table: Hobby is for personal, non-commercial use. Anything that earns revenue — a SaaS with one paying customer, a store, a client project — belongs on Pro at $20 per user per month, plus usage-based billing with real overage potential at scale. Teams sometimes treat the non-commercial clause as rarely enforced, and for tiny sites that may be true in practice, but building a business on a plan whose terms forbid businesses is a risk with a known price: the day Vercel notices is the day the bill becomes $20 per seat before traffic costs a cent. Hobby is a gift to the commons, not a pricing tier — use it for what it is, and budget Pro from the first dollar of revenue.
The dead and the trial-credit trap
Railway and Fly.io both ended permanent free access, and both replaced it with a trial shaped to convert, not to sustain.
Railway gives new accounts a one-time $5 trial credit that expires after about 30 days. After that, the floor is the Hobby plan: $5 per month minimum, which includes $5 of usage credit, with metered compute on top. A small web service plus Postgres typically lands a few dollars above the included credit, so the honest monthly number for one always-on side project is roughly $8 to $12 — before the project grows at all. There is no path back to $0 once the trial is spent.
Fly.io's story is starker. It removed free allowances for new organizations in October 2024; new accounts get a trial of 2 machine-hours or 7 days, whichever comes first, and then per-second billing with a credit card on file. A minimal always-on Machine runs about $2 per month, but a real app needs a volume, and since January 2026 volume snapshots bill at $0.08 per GB per month on top of that — two costs that used to be bundled became meters within recent memory. Self-running Postgres on a second small Machine plus its volume puts one always-on side project around $6 to $8 per month before bandwidth, which itself varies from $0.02 to $0.12 per GB depending on region. The trial answers "can I deploy this afternoon" and pointedly does not answer "what will December cost."
Heroku, finally, is the ghost that proves the trend is one-directional: no free plan since November 2022, cheapest dyno around $5 per month, managed Postgres from another $5. Nobody expects the free tier to come back, which is exactly the expectation to carry to every surviving trial credit.
Worked math: one always-on side project, five bills, one flat box
Take a concrete, typical shape — one always-on web service plus one small Postgres, modest traffic, daily backups — and price it in September 2026 money:
| One side project, one month | Typical cost |
|---|---|
| Render (Starter web + Starter Postgres) | ~$13 |
| Railway (Hobby base + usage over credit) | ~$8–12 |
| Fly.io (two small Machines + volume + snapshots) | ~$6–8 + bandwidth |
| Heroku (cheapest dyno + Mini Postgres) | ~$10 |
| Hetzner CX23 (2 vCPU, 4 GB RAM, 40 GB, 20 TB included) | €3.99 flat |
Two notes on the right-hand row. First, the SKU changed: Hetzner retired the CX22 line on June 15, 2026 and replaced it with the CX23 generation at €3.99 per month — same 2 vCPU, 4 GB RAM, 40 GB SSD, and 20 TB of included traffic. Any comparison still quoting a CX22 price is naming a plan you can no longer buy. Second, automatic backups add 20 percent, so call it €4.79 with snapshots — still one number that never moves with traffic.
Now the sensitivity the single-project table hides: the flat box holds more than one project. A side-project box running four small apps with SQLite or a shared Postgres splits the same €3.99 four ways:
| Side projects on the box | Per-project cost on CX23 | Cheapest metered alternative |
|---|---|---|
| 1 | €3.99 (~$4.30) | Fly.io ~$6–8 |
| 3 | Nothing under ~$6 each | |
| 5 | Nothing under ~$6 each |
Metered platforms multiply per service; the flat box divides per project. That is the whole argument in one table. And it survives the growth question too: push 500 GB of monthly egress through the workload and the metered side adds up to $10 on Fly.io's cheapest regions (more elsewhere), trips Vercel Hobby's 100 GB hard stop five times over, and changes the Hetzner number by exactly €0 — the 20 TB allowance absorbs it without noticing.
Honesty requires the other half of the ledger. The flat box does not operate itself: OS patches, Postgres backups you have actually tested restoring, TLS renewal, and 3 a.m. pages are yours in a way no PaaS customer experiences. It is also, by default, one machine in one region — a single point of failure until you build the second one. The metered premium buys freedom from exactly that work. The right question was never "which is cheaper" but "is $10 per project per month worth never SSHing into anything" — and the free-tier extinction matters because it moved the default answer. When $0 stops being an option, $0.80 of shared flat hardware plus an hour of ops a month beats $10 of metered convenience for the side project that earns nothing.
What to actually do Monday morning
If the project is dormant, personal, and Python-shaped, PythonAnywhere's free tier is fine. If it needs to be reachable but can sleep, Render's free tier is fine. If it earns a dollar, budget paid hosting from day one — Vercel Hobby's terms say so explicitly, and every trial credit says so by expiring.
And if you have three or more side projects that each cost $6 to $13 a month to keep barely alive, stop collecting trial credits and do the consolidating move: one €3.99 Hetzner CX23, your apps as containers or plain processes behind one reverse proxy, one shared Postgres with per-app databases, backups tested by restoring them. The box is not the platform, though — the moment the second box arrives, the hand-built topology needs machine lifecycle, declarative deploys, and per-app routing, which is the exact seam single-box tools never cross.
Bex.co is the open-source, AI-native Render alternative — push a git repo, get a running HTTPS service on machines you own. Star the repo on GitHub or deploy your first app today.



