type: service
status: active
timestamp: 2026-06-20
tags: [database, postgres, relational, neon, serverless, primary]

Neon Postgres

Serverless Postgres — free tier, no card, scale-to-zero, branching for previews

Neon Postgres

Role

Relational tier of the family’s 4-tier DB stack — used only when a workload needs SQL joins, aggregates, foreign keys, or strong relational integrity that don’t fit a Firestore document or a read-only libSQL replica. Concrete examples:

For document-shaped data (auth, app config, lifestream events), the family stays on Firestore / Turso libSQL / JSONL — see decisions/architecture/firebase-rest-firestore-not-admin.md and decisions/architecture/lifestream-jsonl-canonical.md.

Free tier (confirmed 2026-06-20, screenshot of pricing page)

Card / subscription required?

NO. Confirmed from Neon’s pricing page on 2026-06-20.

Quota-headroom plan

Per rules/interaction/never-hit-quotas.md, the family runs Neon at safe headroom:

Branching for previews

Neon’s free plan includes branching — one Neon branch per Cloudflare Pages preview deploy. The Pages preview job creates a branch from main at deploy, runs migrations on the branch, tears it down on merge. Zero risk to the main DB.

Alternatives

Swap cost

Medium — wire-protocol Postgres is portable; a swap to Supabase Postgres or self-hosted Postgres is a connection-string change plus re-running migrations. The family’s relational adapters live behind a single db/ module per app so the swap surface is one file per app.

Why this is our pick

Free plan with no card, scale-to-zero (kills idle compute cost mathematically, not just practically), branching for previews, and a wire-protocol-Postgres surface that’s portable to any other Postgres provider if the cliff hits. The 4-tier DB stack now covers every shape of data the family touches.

Cross-refs


Edit on GitHub · Back to index