← knowledge.oriz.in

Free hosting — databases (Firestore, Supabase, Neon, Turso, Mongo, CockroachDB, Upstash, D1, KV)

runbook runbookhostingfree-tierdatabasesfirestoreneonsupabasetursocloudflare-d1upstash

Databases — free tiers (2026-06-22)

The family pattern: Firestore for app data, Cloudflare D1 + KV for edge state, Neon for ad-hoc Postgres. Other providers in this table are validated fallbacks.

The table

# Provider Free tier Card@signup Card to use free KYC Verdict
1 Firebase Firestore Spark 1 GiB stored, 50K reads/day, 20K writes/day, 20K deletes/day, 10 GiB egress/mo NO NO NO KEEP (family default)
2 Cloudflare D1 5M rows read/day, 100K rows written/day, 5 GB storage NO NO NO KEEP (edge SQL)
3 Cloudflare KV 100K reads/day, 1K writes/list/delete each/day, 1 GB storage NO NO NO KEEP (edge KV)
4 Neon Postgres 10 projects, 0.5 GB/project, 100 CU-hrs/project/mo, 5 GB egress, unlimited branches, scale-to-zero NO NO NO KEEP (ad-hoc PG)
5 Supabase Free 500 MB DB, 1 GB file storage, 50K MAU, 2 projects, pauses after 7-day inactivity NO NO NO KEEP (2-project ceiling kills fan-out)
6 Turso libSQL 100 DBs, 5 GB total storage, 500M row reads/mo, 10M row writes/mo NO NO NO KEEP
7 MongoDB Atlas M0 512 MB storage, shared CPU, 1 cluster/project, ~100 ops/sec, no expiry NO NO NO KEEP
8 CockroachDB Basic 5 GiB storage + 50M RUs/mo, scale-to-zero NO NO NO KEEP
9 Upstash Redis 256 MB data, 500K commands/mo (was 10K/day until 2025-03-12), 10 GB bandwidth NO NO NO KEEP
10 Tembo Hobby 0.25 vCPU, 1 GiB RAM, 10 GiB storage, no SLA/HA, free forever NO NO NO EVALUATE
11 Aiven Free PG Single node, 1 GB storage (cut from 5 GB 2025-05-15), 20-conn cap, no time limit NO NO NO EVALUATE
12 PlanetScale No free tier; Hobby killed Apr 8 2024 — cheapest now Scaler ~$39/mo DROP (killed)
13 Xata Free tier discontinued 2025 (enterprise pivot) DROP (killed)

How the family picks per use case

Use case First pick Second pick Why
App database (users, sessions, content) Firestore Spark Supabase Firestore = no-card default, generous reads/day. Supabase if you need real SQL and don't fan out past 2 projects.
Edge SQL (read at the edge) Cloudflare D1 Turso libSQL D1 lives in the Cloudflare account already used for Pages + Workers. Turso for libSQL features (branching, embedded replicas).
Edge KV (session, feature flags, small lookups) Cloudflare KV Upstash Redis KV is free + co-located with Workers. Upstash for Redis-API compatibility.
Ad-hoc Postgres (analytics, prototypes, branchable) Neon Aiven Neon = 10 projects + branching is killer for branch-per-PR previews. Aiven for "I want a single PG and don't care about branches".
Document DB at scale MongoDB Atlas M0 Firestore Mongo for genuine document-DB queries (aggregations).
Large-scale OLAP-leaning relational CockroachDB Basic Neon Cockroach for distributed SQL semantics; Neon for plain PG.
Redis-API ephemeral cache Upstash Cloudflare KV Upstash for true Redis API; KV for simpler reads.

Quirks per provider

Recommendation for the family

  1. App data (every site + app): Firestore Spark — already the default, no migration needed.
  2. Edge state (per-Worker / per-Pages-Function): Cloudflare D1 + KV — same Cloudflare account.
  3. Prototype Postgres / branch-per-PR previews: Neon — 10 projects covers 10 simultaneous projects, plenty of headroom.
  4. Redis cache: Upstash Redis (500K commands/mo) until we genuinely outgrow the cap.
  5. Anything else: see the use-case table above.

Firestore project + emulator

Image storage replication for max durability

Images uploaded by users (or assets large enough to justify external hosting — anything >100 KB that isn't ideal as a build-time static asset) are replicated across 4 hosts on upload for max durability + first-200-wins client-side failover:

  1. Cloudinary (25 credits/mo; transforms + CDN)
  2. ImageKit (20 GB + 20 GB; unlimited transforms)
  3. imgbb (32 MB/image cap; no expiry, no signup needed)
  4. GitHub Releases (cold storage; not CDN-fast but durable)

Stored URL shape in Firestore is a JSON tuple {cloudinary, imagekit, imgbb, ghRelease}; the client <img> wrapper tries each in order, first 200 wins. Details in image-cdn.md.

Image-only assets ride this replication strategy; general object storage (backups, large binaries) stays on Backblaze B2 per object-storage.md.

Sources