Early access · By invitation only

Your whole backend. Quenched into one.

Database, sign-in, file storage, live updates and an admin dashboard. One Rust program you run yourself, with one command.

Speaks the Supabase API. The Supabase client libraries work with it as they are.

Before

A backend used to be a dozen services.

A gateway, sign-in, storage, realtime, metadata, a dashboard. Each one its own container to configure, connect and keep alive.

The quench

We forged them into one.

Quenchbase rebuilds those services as a single Rust program. Each one is checked against the original with differential tests, so it behaves the same.

After

One program. One command.

Docker and about 1 GB of memory. Run it, and Quenchbase prints a link to finish setting up in your browser. Every secret is generated for you.

The tour

From nothing to live,
in five steps.

Start it, answer a few questions, make a table, connect your app and watch changes arrive. This is the whole process.

An animated walkthrough. Step 1: run docker compose up -d, and Quenchbase prints a setup link and code. Step 2: open the link, enter the code, create your admin account and name your project. Step 3: in the Table editor, create a todos table with title and done columns that signed-in users can read, with the SQL shown. Step 4: click Connect to copy your API URL, publishable key and a JavaScript snippet. Step 5: add a row in the dashboard and see it appear in the app immediately.

0:00 / 0:41
The platform

Five parts.
One program.

Everything a modern app expects from its backend, already wired together. Each part is verified against the original implementation with differential test suites.

Database

Postgres, with rules you can read out loud.

Your tables over REST and GraphQL. Choose who can read rows in plain words; Quenchbase writes the policy and shows you the SQL.

Who can read rows?
Nobody yetAdd rules later.
AnyoneIncluding visitors who haven't signed in.
Signed-in usersAnyone with an account.
Only the row's ownerEach person sees just their own rows.
create policy "Signed-in users can read" on todos for select to authenticated using (true);
Auth

Every way people sign in.

A port of GoTrue, built in.

Email and password Magic links Phone Social logins SAML Passkeys MFA
Storage

Files, handled.

Uploads that resume, images resized on request, and an S3-compatible API.

avatar.png256×256
launch-film.mp4Resumed
Realtime

Live by default.

Broadcast, presence and database changes over WebSockets.

ALAda GHGrace KJKatherine INSERT public.todos · id 9 · "Ship it"
Dashboard

Built for people, not operators.

Tables, SQL, users, storage, logs and settings, in plain language. Light and dark.

Who can read rows?Signed-in usersCreate table
Who can read rows?Signed-in usersCreate table
Made for people

Quenchbase asks “Who can read this table?” instead of saying “RLS policy.” The safe choice is the default. Every error tells you what to do next. Nothing irreversible happens without a confirmation. And the SQL is always one click away.

Teaches as you goEmpty screens explain what a thing is, why you'd want one, and offer the first step.
Keyboard and screen readersEvery control is labelled. Every input has a name. Light and dark, both first-class.
No outside callsThe dashboard loads no CDNs, web fonts, analytics or outside images. It's all in the binary.
Compatible

Your Supabase client already speaks it.

Quenchbase speaks the Supabase API, so supabase-js, supabase-py and the Swift, Kotlin and Flutter clients work with it as they are. Point them at your address and key.

Already self-hosting Supabase? The same binary can stand in for the auth, meta, storage and realtime containers in your existing setup.
todos
import { createClient } from "@supabase/supabase-js";

const db = createClient(
  "http://localhost:8000",
  "sb_publishable_…"
);

const { data } = await db.from("todos").select("*");
Yours

Your server. Your data.
Your keys.

Quenchbase runs on your laptop or your server. Your data lives in your Docker volumes, and every secret is generated on first start.

1 GB

of memory and Docker. That's the whole list of requirements.

3volumes

db-data, storage and config hold everything. Back them up like any other files.

1line to update

git pull && docker compose up -d --build

Early access

Quenchbase is opening
by invitation.

We're letting people in a few at a time. Ask for an invitation, or redeem the one you were sent.

Quenchbase
Invitation

Admit one
project.

HolderYou
CodeQB-••••-••••
AccessEarly
Early access