PHASE 0 · 75 UNITS PASS

PHASE 0 · 75 UNITS PASS

Supabase,
rewritten in Rust.
By agents. In public.

Autonomous AI agents are porting every service Supabase has written into one Rust binary that sits next to PostgreSQL. The goal: any supabase-js app runs on it without changing a line of code. An external judge compares every response with the real Supabase stack.

AI agents are porting every Supabase service into one Rust binary next to PostgreSQL, judged response by response against the real stack.

Independent experiment. Not affiliated with or endorsed by Supabase, Inc.

01 · WHAT AND WHY

One binary. The same API.
A precise, verifiable target.

Self-hosting Supabase today means running about a dozen containers written in six languages. Megabase aims for one Rust binary next to standard PostgreSQL, serving /rest/v1, /auth/v1, /storage/v1, /realtime/v1 and /functions/v1 exactly as Supabase does.

SUPABASE SELF-HOSTED

~12 containers

Haskell, Go, Elixir, TypeScript, Rust and Lua.

MEGABASE TARGET

1 binary

Rust only, next to the PostgreSQL you already run. Memory target: under 256 MB.

YOUR APP

0 code changes (goal)

Point supabase-js at Megabase. Same endpoints, bodies, status codes and errors.

Measure what agents can build

Not a toy or a demo: a large, multi-language, production-grade system with a precise target.

A target with no guessing

Supabase is open source, documented and runnable locally. Correct means identical to the real thing.

A useful result

One binary, a fraction of the memory, and the same API for everyone who self-hosts.

02 · HOW IT WORKS

Agents write the code.
An external judge grades it.

  1. 01

    Read pinned upstream source

    Upstream lives in vendor/, frozen. That is the specification.

  2. 02

    Spec one unit

    Spec first, then Rust. Failures return a structured 501.

  3. 03

    Diff against real Supabase

    Official Supabase runs next to Megabase from the same pins.

  4. 04

    Keep or revert, never regress

    A commit is kept only if total conformance does not fall.

  5. 05

    Record in public

    Coverage, the treemap, the human log.

How the loop works →

03 · LIVE STATUS

Each cell is one unit.
Grey until the judge says green.

Full status →

Nested squarified treemap: component, then feature group, then one whole square per unit. Regenerated at build time from coverage/summary.json and coverage/units.json. The four-state legend matches the README: not started, implemented, tested, conformant.

SUPABASE COMPONENTS: 75 / 1,024 UNITS PASS not started implemented tested conformant (matches real Supabase)
Component map: 75 of 1,024 units. One whole square per unit, grouped by component and feature group.REST 19/93query para…orderingrpclogicembeddi…AUTH 56/152endpointsfactorsoauthtokenuserwell …REALTIME 0/19protocolclient eve…http apiSTORAGE 0/149databases3objectresumablevectorhealthFUNCTIONS 0/276noderuntimeenvevent w…invokeosPOOLER 0/16tenantsendpointsclusterspool mod…META 0/69policiesschemastab…STUDIO 0/250api platformlogssettingsapi aiapi v1storagefunctionsadvisorsintegrat…sqlrealt…
Component map: 75 of 1,024 units. One whole square per unit, grouped by component and feature group.REST 19/93filteringpreferAUTH 56/152adminoauth prov…factorsoauthtokenssoREALTIME 0/19cli…htt…STORAGE 0/149databaseobjectbuck…he…FUNCTIONS 0/276noderuntimeaienveven…invo…osPOOLER 0/16tenan…po…META 0/69endpointscol…ext…STUDIO 0/250api platformlogsauthsettingsstorageadvi…integ…re…
1,024 units extracted from pinned upstream source · 75 conformant Generated at build from coverage/summary.json · commit ↗

04 · ROADMAP

Five public levels.
Each one gated by the judge.

Full roadmap →
LEVEL 1 · NEXT≥ 95%

REST API + email/password auth

Goal: most apps run.

30.6% · in progress

LEVEL 2≥ 90%

OAuth, magic links, Storage

Files and social login.

18.6% · in progress

LEVEL 3≥ 85%

Realtime

Database changes, broadcast, presence.

0% · not started

LEVEL 4≥ 80%

Functions, pooler, Meta + the Studio test

Official Studio can’t tell the difference.

0% · not started

LEVEL 5stretch

Studio, served from the binary

Deferred pending a feasibility study.

deferred

Each percentage is the conformance required on that level’s own scope before the next level may start, and earlier levels must hold their score. Thresholds come from PROGRESS.md when it exists. Level 5 has no gate yet: it is deferred until a feasibility study.

05 · COMPONENTS

Every service Supabase wrote.
Ported to Rust.

Plus the API gateway that replaces Kong (Lua / Nginx). PostgreSQL stays external. Licenses: NOTICE.

Component catalog →

06 · FAQ

Fair questions.

All questions →

Can I use it in production?

No. Today every endpoint returns 501 MEGABASE_NOT_IMPLEMENTED. Watch the levels: Level 1 is the first point where real apps should run.

Is this affiliated with Supabase?

No. It is an independent experiment. “Supabase” is used only to describe compatibility, and every upstream license is preserved.

Who decides what “correct” means?

The real Supabase stack, run side by side from pinned versions. Agents can’t change what the judge compares against.

Do humans write any code?

Humans wrote the manifesto, GOAL.md and the initial setup. Every later human action is logged publicly, and the count is part of the result. Interventions so far: 13.

Watch the map turn green.