
Quick Translation Of What You’re Asking
Real question hiding under your real question: “Which DB can I learn now and not have to rip out in 18 months when the host pulls a Heroku and kills the free tier?”
The slight overwhelm in your post is the right reaction — anyone confident about this without seeing the graveyard first is bluffing.

Your Concerns, In Order
The four you named, plus two you didn’t:
Genuine free plan — no card-trap
Performance and stability
Easy Node.js / Python integration
Clear documentation
(unstated) SQL or NoSQL?
(the real one) Won’t be on the graveyard list in 18 months

The 60-Second Answer
Start with Supabase → Postgres + auth + storage, 500 MB DB, no card. Covers all four stated concerns in one shot.
Day one: set up the pause-prevention repo → tiny GitHub Action pings every 3 days. Skip it → project dies after 7 days idle.
Pick Postgres, not MongoDB → MongoDB only wins for genuinely nested data. SQL vs NoSQL is mostly a fake decision at your scale.
Six months from now, if the project still matters → move to a €4.51/month Hetzner CX22 and self-host. ~₹24,000 over 5 years buys you out of the free-tier-nerf treadmill forever.

The Map
| What’s bugging you |
What to do |
Time |
| “Free plan real?” |
Supabase / Neon / Turso → no-card |
5 min |
| “Will it survive 2026+?” |
Pick host monetised by ≠ upselling free |
2 min ↓ |
| “Easy with Node / Python?” |
Official SDK, 4 lines of code |
15 min |
| “SQL or NoSQL?” |
Postgres unless data is document-shaped |
30 sec |
| “Won’t get nerfed?” |
€4 Hetzner once project is real |
One Saturday |

The Free DB Graveyard
The part nobody tells you. Recently dead:
Heroku Postgres free → killed Nov 2022. Hobby DBs deleted, not paused.
ElephantSQL → entire service shut down Jan 2025.
PlanetScale Hobby → killed April 2024. Cheapest plan now $39/month.
000webhost → shut down by parent (Hostinger) in 2024.
The pattern is the lesson, not the list.
🔍 The pattern that predicts the next death
Free tiers die when the host’s only business model is upselling them. They survive when the host pays for free out of something else — paying enterprise customers, parent-company funding, government/CERN money, or compute-arbitrage where “free” funnels you into a different product.
That’s why these are structurally safer in 2026:
PlanetScale, Heroku Postgres, ElephantSQL — all single-product VC-funded outfits that ran out of runway or pivoted enterprise. When you read the next “we’re focusing on enterprise customers” announcement, you’ll know who’s next.

The Workaround Listicles Skip
Supabase’s gotcha: projects pause after 7 days idle. Every blog mentions it; none give you the fix.
Fix: Fork travisvn/supabase-pause-prevention → add your Supabase URL and service role key as repo secrets → done. Action runs every 3 days, project never sleeps.
Bob Ross moment: if you ever log in and see “Project paused” — that’s not broken, just napping. Click resume, wait ~30 sec, you’re back. Then go set up the ping repo so it never happens again. Treat the first time as the lesson, not the disaster.

I Personally Use This
I run a tiny price-tracking scraper on Supabase free (Postgres) and a notes-search app on Neon free — both alive 14+ months, $0/month.
📓 The holiday-came-back-paused-project story
Once went on holiday for 10 days and came back to a paused Supabase project. Lost no data, but the cron ingestor that fed it failed for an hour during the wake-up window — got a stack of “connection refused” logs in my inbox before the DB came back. Set up the GitHub Actions ping the same evening; never happened again.
Quick note on the Neon side: I keep the notes-search app on a separate free organisation because Neon counts up to 10 projects of 0.5 GB each on free, which is genuinely useful when you want microservices-style isolation between hobby experiments without paying.

If The Project Is A Different Shape
Three answers that won’t appear in normal listicles. Open the one that fits:
📚 (a) Notes / research / datasets you'll keep forever → Zenodo (CERN)
Zenodo is run by CERN. Yes, the physics one.
CERN is funded by 23 governments and has existed since 1954. Its failure mode is “Western Europe ceases to exist” — a different category of risk than “VC pivots to enterprise.” Genuinely the answer for content-shaped projects, not a database one.
🖥️ (b) Want a free server you fully control → Oracle Cloud Always Free
Oracle Cloud Always Free gives you:
- ARM Ampere → up to 4 cores + 24 GB RAM
- 200 GB block storage
- 10 TB/month outbound — free forever
That’s more RAM than every paid tier mentioned above. You install Postgres on it yourself; nobody can nerf you.
The asterisk: Oracle reclaims idle instances if 7-day CPU is below 20%. The clean fix → convert your account to Pay-As-You-Go. You add a card, but you’re never charged as long as you stay within free limits, and PAYG accounts aren’t subject to idle reclamation. Quietly the best deal in computing right now.
Mumbai/Hyderabad regions sometimes show “Out of capacity” — try less-popular regions or retry tomorrow.
💸 (c) The contrarian frame: when €4/month beats free for long-term
Every free-tier death created two costs — the migration AND the morale hit. Three forced migrations in 5 years and most hobby projects die at migration #3.
The math:
- Hetzner CX22 → €4.51/month = €270 over 5 years = ~₹24,000
- 3 forced migrations × ~10 hours each = 30 hours of unpaid weekend work
- Plus the cognitive overhead of watching for the next nerf announcement
If your project survives 6 months and still matters → this is structurally cheaper than another round of free-tier roulette.
The free tier is the validation phase. The €4 box is the durable phase. Don’t conflate them.
📦 Do Exactly This, In This Order
Fast-track if you already know what Postgres is: Sign up at supabase.com → fork the pause-prevention repo → write your first query. 20 minutes total. Skip to step
for the long-term plan. You know more than you think — the only piece you might be missing is the graveyard pattern above and the day-one ping habit.
For everyone else:
Step 0 — Pick your shape (30 seconds)
- App with users → Supabase
- Just a database, multiple small ones → Neon
- Notes/research/datasets → Zenodo
- Read-heavy, edge latency matters → Turso or Cloudflare D1
Sign up for Supabase. supabase.com → Start your project → sign in with GitHub. No card asked. Click New Project, name it, pick region (Mumbai or Singapore is closest to Nagpur), set DB password, click create. Wait ~2 min.
You’ll know it worked when you see a green “Online” dot.
Test it works. Dashboard → Table Editor → New Table → name it test, add column name (type: text). Insert row → type hello → save.
You’ll know it worked when a row appears with a green checkmark. (Red error → refresh, project might still be finishing setup. Not broken, just slow.)
Connect from code.
Node.js:
npm install @supabase/supabase-js
import { createClient } from '@supabase/supabase-js'
const supabase = createClient('YOUR_URL', 'YOUR_ANON_KEY')
const { data } = await supabase.from('test').select('*')
console.log(data)
Python:
from supabase import create_client
sb = create_client('YOUR_URL', 'YOUR_ANON_KEY')
print(sb.table('test').select('*').execute().data)
URL + anon key live in Settings → API.
Working when data logs as [{name: 'hello'}].
Set up pause-prevention (the part that saves you in 6 months).
Fork travisvn/supabase-pause-prevention. Repo Settings → Secrets and variables → Actions → add NEXT_PUBLIC_SUPABASE_URL and NEXT_SERVICE_ROLE_KEY (use service role key, not anon — anon can’t write the keep-alive row).
Working when the Actions tab shows green ticks every Monday and Thursday.
Six-month review. When usage shows ~400 MB or you’ve been actively committing for 6 months → buy a Hetzner CX22 (€4.51/month). apt install postgresql, pg_dump from Supabase, restore on the new box.
Done in one Saturday afternoon. You never read another “free tier shutdown” announcement again.
Situation → action table:
| If you see this |
What it means |
What to do |
“Project paused” (Supabase) |
Idle 7 days |
Click resume + set up ping repo |
“Connection refused” (Neon) |
Scale-to-zero asleep |
Wait 1–2s, retry → auto-waking |
“Out of capacity” (Oracle) |
Region full |
Try less-popular region or retry tomorrow |
Free limits hit at month-end |
Used all reads/writes |
Reset on the 1st → wait or upgrade |
pg_dump “permission denied” |
Using anon, not service role |
Grab service role from Settings → API |
Random EHOSTUNREACH (Node) |
Your laptop’s IP changed (cafe wifi) |
Not a bug, retry |
The compounding habit that separates 5-year side projects from dead ones:
Day one, write a 10-line GitHub Action that runs pg_dump weekly and commits to a private repo. Now your data lives in two places. Host dies tomorrow → you’re back online elsewhere in 30 minutes. Costs nothing, survives every nerf. I wish someone had told me this in 2021.

The Long Game
You said: “I’m not sure which would be best to start with.”
That’s the right place to be. Anyone certain before they’ve built something is bluffing. Pick Supabase, ship something tiny in a weekend, hit a real limit — then you’ll know what to optimise for. The DB you should commit to is the one whose limits you can already feel — and you can’t feel them until you’ve built. So build.

Your Turn
One question, since it changes the long-term answer:
What does the project actually do?
→ Show data to users (a normal web app)?
→ Keep your own private notes/research?
→ Scrape something on a schedule?
→ Something else?
One sentence is enough. Right now I’m guessing — the recommendation flips between Supabase, Neon, Zenodo, and self-host depending on shape.