Compare the cost behavior of major serverless database platforms across realistically scaling usage tiers. We selected these three tiers to reveal billing differences that a single price-per-month number hides:
- Tier 1: Free tier break-even points
- Tier 2: A 10 GB database (moderate workload)
- Tier 3: A 100 GB database (heavy sustained workload)
To standardize across providers we assume a PostgreSQL-style relational workload with standard single-region replication where the provider enforces it. Pure key-value and document engines (Upstash Redis, MongoDB) are included for breadth but priced on their own native model — see the notes under each table.
For full assumptions, calculations, and scope, see Methodology → Serverless Database Pricing.
Serverless Database Pricing Summary Table
This table shows where each platform lands across the three tiers, its entry price, and its free-tier strength.
| Platform | Engine | Tier 1 | Tier 2 | Tier 3 | Starting price | Free tier storage | Serverless | Free tier |
|---|---|---|---|---|---|---|---|---|
| Supabase | PostgreSQL | $25/mo | 500 MB | Yes | ||||
| Neon | PostgreSQL | Usage-based | 0.5 GB | Yes | ||||
| PlanetScale | MySQL (Vitess) / Postgres | $5/mo | None | No | ||||
| MongoDB Atlas | MongoDB | $8/mo | 512 MB | Yes | ||||
| CockroachDB Cloud | Distributed SQL (Postgres-compatible) | Usage-based | 10 GiB | Yes | ||||
| Convex | Document-relational | $10/mo | 1 GB | Yes | ||||
| Upstash Redis | Redis (serverless KV) | Usage-based | 256 MB | Yes | ||||
| Xata | PostgreSQL | ~$9/mo | None | Yes | ||||
| TiDB Cloud Starter | MySQL-compatible (TiDB) | Usage-based | 5 GiB | Yes |
Tier 1: Free Tier Break-Even
What each provider charges the moment you exceed its free allowance. The platforms split into three patterns: a flat plan jump (Supabase, MongoDB), pure metered usage with no minimum (Neon, CockroachDB, Upstash, TiDB), and no free tier at all (PlanetScale, Xata).
| Platform | Free allowance | What you pay past it |
|---|---|---|
| Supabase | 500 MB DB + Micro compute | Pro $25/mo (includes $10 compute credit) |
| Neon | 0.5 GB + 100 CU-hours | Usage-based: $0.35/GB-mo storage + $0.106/CU-hr compute, no minimum |
| PlanetScale | None | $5/mo single-node (PS-5); $15/mo for 3-node HA |
| MongoDB Atlas | M0 512 MB (shared) | Flex $8/mo base (5 GB, hard-capped at $30/mo) |
| CockroachDB | 50M RUs + 10 GiB | Usage-based: $0.50/GiB-mo + ~$0.20/M RUs (Basic) |
| Upstash Redis | 256 MB + 500K commands | Usage-based: $0.20/100K commands + $0.25/GB |
| Xata | None ($100 credit, 14 days) | Usage-based: ~$0.012/compute-hr + $0.28/GB-mo |
| TiDB Starter | 5 GiB + 50M RUs/instance | Usage-based: $0.20/GiB-mo + $0.10/M RUs |
Tier 2: 10 GB Database
A moderate workload with 10 GB of storage and steady-but-modest compute. This is where included-storage caps and minimum cluster sizes start to bite.
| Platform | Approx. monthly cost | Why |
|---|---|---|
| CockroachDB | ~$0–5 | 10 GiB is exactly the free storage limit; you pay only for RU usage |
| Neon | ~$5–15 | 10 GB storage ($3.50) plus a small always-on compute |
| TiDB Starter | ~$10–20 | Storage ~$2 plus RU compute; still well inside serverless pricing |
| Xata | ~$21 | Small instance (~$18) + 10 GB storage ($2.80); scale-to-zero lowers it |
| Supabase | ~$25 | Pro base covers 8 GB; ~2 GB overage at $0.125/GB is negligible |
| PlanetScale | ~$30–50 | 3-node HA PS-10/PS-20; storage still inside the 10 GB included |
| MongoDB Atlas | ~$58 | 10 GB exceeds Flex’s 5 GB cap, forcing a dedicated M10 |
| Upstash Redis | ~$200 | Redis is in-memory — 10 GB of RAM is not comparable to disk storage |
Tier 3: 100 GB Database
A heavy sustained workload where storage overage, minimum cluster sizes, and high-availability replicas dominate.
| Platform | Approx. monthly cost | Why |
|---|---|---|
| TiDB Starter | ~$20+ | 100 GiB storage (~$20) + RUs; jumps to ~$400 if you move to Essential |
| CockroachDB | ~$45+ | ~90 GiB billable storage at $0.50 + RUs (Basic); Standard adds ~$130 compute |
| Xata | ~$98 | Large instance (~$70) + 100 GB storage ($28) |
| Neon | ~$70–150+ | 100 GB storage ($35) + sustained compute (a steady 2 CU ≈ $150) |
| Supabase | ~$110–140 | Storage overage (~$12) + a Large compute instance |
| PlanetScale | ~$95–193 | SKU (PS-20/PS-80) + 90 GB storage overage at $0.50/GB |
| MongoDB Atlas | ~$394+ | 100 GB needs an M30 dedicated cluster, before backups and transfer |
| Upstash Redis | ~$800 | 100 GB in RAM; use Upstash for hot KV, not bulk storage |
Serverless vs Provisioned
The word “serverless” hides two very different billing models.
Scale-to-zero usage billing (Neon, CockroachDB Basic, TiDB Starter, Upstash, Xata) charges for compute only while queries run. Idle cost collapses to storage alone, which is ideal for spiky or low-traffic apps — but an always-on database bills compute 24/7 and the savings disappear.
Provisioned clusters (PlanetScale, MongoDB dedicated, Supabase compute, CockroachDB Standard) reserve a fixed instance you pay for around the clock. Predictable, and usually cheaper at sustained high load, but you pay for the idle hours.
Which is cheaper depends almost entirely on your idle ratio. A bursty workload favors scale-to-zero; a steady production database favors a reserved instance.
Storage Pricing Comparison
How providers charge for storage beyond the included allowance:
- Neon: $0.35/GB-mo (cut ~80% after the 2025 Databricks acquisition)
- CockroachDB: $0.50/GiB-mo beyond the free 10 GiB
- PlanetScale: $0.50/GB-mo beyond 10 GB included
- Xata: $0.28/GB-mo, prorated to branch lifetime (no free storage)
- Upstash: $0.25/GB-mo (Redis, in-memory)
- TiDB: $0.20/GiB-mo (row storage; columnar ~$0.05)
- Supabase: $0.125/GB-mo, dropping toward $0.096/GB at multi-TB scale
- MongoDB Atlas: no per-GB overage on Flex (hard $30 cap); dedicated scales with cluster tier
Notes and Caveats
- Free-tier allowances reset monthly; usage-based meters bill continuously.
- Egress and inter-region data transfer are excluded — they can dominate at scale.
- High availability and read replicas roughly multiply compute cost.
- Connection limits often force an upgrade before storage runs out.
- Request-Unit pricing (CockroachDB, TiDB) bills by query volume, so a small but write-heavy database can exhaust its free allowance long before its storage cap.
- Fauna was a popular comparison until 2025 — its hosted service shut down on May 30, 2025. See Fauna for migration alternatives.
Related Comparisons
- Supabase vs Neon — a full Postgres backend vs pure serverless Postgres
- Neon vs PlanetScale — scale-to-zero Postgres vs provisioned Vitess MySQL
- Railway vs Supabase — managed Postgres on an app platform vs a Postgres backend
- Browse provider profiles: Supabase · Neon · PlanetScale