D1 vs Supabase for a 10,000-user SaaS

Comparison · supabase

Reviewed 2026-10-25 · against the official Cloudflare pricing pages listed under Sources

Try this scenarioLoads these inputs into the calculator so you can change them.

The SaaS preset's D1 usage is calculated. Supabase's subscription and database rates are unverified here.

Competitor dollar amounts are unverified. This page calculates Cloudflare only and links the other price list. Do not quote a vendor price from memory.

Ten thousand users each make about 40 requests a day. Sessions live in KV, rows live in D1, presence lives in Durable Objects, and mail goes through Queues.

D1's surprise is the scanned row. Supabase's surprise is whatever its current plan meters for disk, egress, and compute. Open their pricing page rather than trusting a remembered number.

The Workers $5 minimum is still there even when D1 itself is inside the allowance.

KV writes cost ten times the reads

Paid reads are $0.50 per million after 10 million. Writes, deletes, and lists are $5 per million after 1 million. The same key can be written once per second. Free daily caps fail the operation instead of billing it, and they reset at 00:00 UTC.

This model

$8.07 · Paid

Workers Paid minimum
$5.00

The $5 is an account minimum for Workers Paid, not a per-product fee. Included usage sits inside it.

Worker requests
$0.60

12,000,000 used, 10,000,000 included. Billable: 2,000,000. Exact charge $0.60, shown as $0.60. Paid requests are prorated at $0.30 per million after the included 10 million. They are not rounded up to the next million. Requests served as static assets are free and unlimited, so they should not be included in this request count. On Standard pricing, subrequests and service-binding calls are not extra requests. CPU used by both Workers still counts.

Worker CPU time
$1.32

96,000,000 used, 30,000,000 included. Billable: 66,000,000. Exact charge $1.32, shown as $1.32. CPU time is active execution only. Waiting on fetch, KV, or D1 does not count. Paid CPU is prorated at $0.02 per million milliseconds after 30 million.

KV reads
$1.00

12,000,000 used, 10,000,000 included. Billable: 2,000,000. Exact charge $1.00, shown as $1.00. Paid KV operations are prorated. Reads are $0.50 per million after 10 million. Writes, deletes, and lists are $5 per million after 1 million.

Durable Object requests
$0.15

2,000,000 used, 1,000,000 included. 1,000,000 billable, rounded up to 1,000,000. Exact charge $0.15, shown as $0.15. Paid Durable Object requests include HTTP, RPC sessions, WebSocket billing messages, and alarms. 1 million are included, then $0.15 per million. Billable requests round up to the next million. Cloudflare's own Example 1 bills 500,000 billable requests as 1 million, $0.15.

Assumptions

  • A 30-day month and steady traffic across it.
  • Rates as published on 2026-10-25; taxes excluded.
  • The Workers Paid plan has a $5 monthly minimum. It is charged even if you use nothing, and it covers the included allowances.
  • Worker CPU time adds $1.32 (16% of the bill): you used more than the 30,000,000 included.
  • KV reads adds $1.00 (12% of the bill): you used more than the 10,000,000 included.
  • Worker requests adds $0.60 (7% of the bill): you used more than the 10,000,000 included.

Try this scenario

Sources