Spin up managed Postgres, get a REST API generated from your tables, and keep using plain SQL for everything else. Start free, then $10 a month and pay only for what you store.
Free plan, no credit card. One database to start.
Have a look
Filter the table and watch the REST URL change — it is the same query grammar the real endpoint parses. The rows are an example, and the preview says so.
| id | task | done | priority | created_at |
|---|---|---|---|---|
| 1 | Design the schema | 1 | 2026-02-03 | |
| 2 | Add row-level security | 1 | 2026-02-04 | |
| 3 | Wire up the webhook | — | 2 | 2026-02-08 |
| 4 | Write the migration | — | 1 | 2026-02-09 |
| 5 | Ship it | — | 3 | 2026-02-11 |
The real editor edits cells in place and writes straight to Postgres. The filters above are the same ones the REST tab turns into a URL.
Everything per project
Each project you create is a complete backend. Nothing to wire together, and nothing you cannot reach with SQL.
A dedicated database on Google Cloud SQL with its own role and connection string. Use any driver you already know.
Every table becomes an endpoint the moment you create it. Filters, ordering, pagination and batch writes included.
Run migrations and queries from the browser as your own database role. No hidden layer between you and Postgres.
Email and password accounts for your app's users, with JWTs signed per project so tokens never cross projects.
Private buckets on Google Cloud Storage, indexed in your own database so you can join against them in SQL.
Subscribe over WebSocket and receive inserts, updates and deletes the moment they commit.
One project, many doors
Create a table once. It is immediately a REST resource, a realtime stream, and a table in psql.
create table todos (
id serial primary key,
task text not null,
done boolean not null default false,
created_at timestamptz not null default now()
);How it works
Name it, pick a region. A Postgres database and a scoped login role are provisioned in seconds.
Write SQL in the editor, or connect with psql and run migrations you already have.
Your tables are already an API. Grab the key and start querying from your app.
Pricing
Every plan gets every feature. You pay a small base price and then only for what you actually store — $0.4per GB of database, $0.05 per GB of files. Nothing to provision, nothing included you did not ask for.
Database size includes indexes, so it reads higher than your rows alone. Storage grows automatically as you fill it — there is nothing to provision.
Supabase figures estimated from their published rates: $25 base, ~$10 per additional project, 8 GB of database included per project then $0.125/GB, 100 GB of file storage then $0.021/GB. Check their pricing page for the current numbers.
Free
$10/ month
$29/ month
Yes — a database on Google Cloud SQL, with its own login role and connection string. Point psql, Prisma, Drizzle or any Postgres driver at it. Nothing about your schema is proprietary, and there is no migration path to escape because there is nothing to escape from.
Run pg_dump against your connection string and you have everything. We store your tables in stock Postgres with no custom extensions required.
You skip provisioning, connection handling, and writing a CRUD API. Creating a project gives you a database plus generated REST endpoints, email/password auth, file storage and change subscriptions — all of which you would otherwise assemble by hand.
No, deliberately. Access is a per-project API key checked at the API layer, which means the key is a server-side secret and grants full access to your public schema. If you need per-user data rules, enforce them in your own backend rather than in database policies.
In a shared Cloud SQL instance, as its own database with its own role. Other tenants cannot connect to it — CONNECT is revoked from PUBLIC and granted only to your role. Dedicated instances are not offered.
The free plan is one database with 500 MB of storage. Paid plans raise the database count and storage ceiling. Every plan gets the same features — pricing changes capacity, not capability.