/vs-supabase/ · The honest comparison
Different answers to the same question.
Supabase is a mature hosted platform with Postgres from day one. Harness is a compiled backend that runs in your own account, and most of the managed layer is still on the roadmap. Both columns below are meant to survive a Supabase engineer reading them.
Shippingin the repo Designedpublic issues, unbuilt Plannednamed, unspecified
| Capability | Supabase (per its docs) | Cratefield Harness |
|---|---|---|
| Database | Managed Postgres per project, with extensions such as pgvector. docs | Cloudflare D1 (SQLite) per backend; 10 GB per database, single-threaded. Postgres adapter Designed |
| Multi-tenant isolation | Row Level Security policies on shared tables, keyed by JWT claims. docs | One database per tenant; no shared tables, no RLS. Shipping |
| Where it runs | Supabase-hosted projects, or self-hosted from the open-source stack. docs | Managed by us, in your infrastructure account or ours — two modes Planned |
| Composition | Dashboard settings, SQL, Edge Functions in TypeScript. docs | Rust crates listed in Cargo.toml, compiled into one binary Shipping |
| Auth | Hosted auth with email, phone, social and SSO providers. docs | Auth service specified in 22 issues; passkeys, OAuth 2.1 + PKCE, ES256 JWTs Designed |
| Realtime | Postgres changes, broadcast and presence over websockets. docs | None Planned |
| Object storage | S3-compatible storage with policies and image transforms. docs | None Planned |
| Dashboard | Table editor, SQL editor, logs, auth and storage management. docs | No data browser. Build logs and deploy history in the control plane Planned |
| Custom domains | A paid add-on: $10 per domain per month, per project. docs | Cloudflare for SaaS: 100 custom hostnames included, then $0.10 per hostname per month, to a limit of 50,000 Planned |
| Egress | Pro includes 250 GB, then $0.09 per GB. docs | Workers and R2 make no charge for data transfer out Shipping |
| Idle projects | Free projects are paused after 1 week of inactivity, restorable for 90 days, then backups only. Paid projects are not paused. docs | No administrative pause and nothing to restore. Compute scales to zero, so idle costs only storage. The Durable Object behind a D1 database hibernates between requests, which is a cold start, not an outage Shipping |
| License | Apache 2.0 for the core stack; components vary. docs | MIT across all crates Shipping |
| Usable today | Yes. Create a project and query it this afternoon. docs | Open-source core, yes. Managed layer, no Shipping |
The limits, in full
What Cloudflare D1 is, and is not.
From developers.cloudflare.com, checked 2026-09-06. Re-check before relying on them.
| Databases per account (Workers Paid) | 50,000 |
| Storage per database | 10 GB, cannot be raised |
| Storage per account | 1 TB |
| Queries per Worker invocation | 1,000 |
| Maximum row size | 2 MB |
| Query timeout | 30 s |
| Concurrency model | single-threaded per database |
| Throughput at 1 ms / query | ~1,000 queries/s |
| Throughput at 100 ms / query | ~10 queries/s |
Cost is a separate question from capability, and it has its own page: published list prices for Supabase, Railway and Firebase, and the shape of the cost underneath a Cratefield backend.
Fairness
When Supabase is the right answer.
- You need Postgres extensions, pgvector, or LISTEN/NOTIFY today.
- You need realtime subscriptions or object storage as part of the backend.
- A single database will exceed 10 GB.
- You want a dashboard data browser and a large community answering questions this afternoon.
- You need something operated for you now. The Cratefield control plane is Planned, not running.
If the account boundary and compile-time composition matter more than the list above, request early access.