Authorization belongs in the database.
That is the bet the whole product is built on, and the reason this company exists. Access rules written in application code protect the door, not the room — a forgotten endpoint, a background job, a migration script or a psql session walks straight past them. So we put them where the data is.
Why we build it
Every backend we shipped before this one eventually leaked. Not through a dramatic breach — through the ordinary path: a new endpoint that forgot the permission check, an admin script run against production, an internal tool that used the service key because it was quicker. The rules were correct and the rules were bypassable, which is the same as not having them.
Postgres already had the answer. Row-level security is enforced by the database on every statement and every caller, and it does not care which service forgot to ask. So Rebase compiles your collection definition into real policies, and refuses to serve a table that has none. That decision is what everything else on this site follows from: the API, the typed SDK, the panel — all of them are clients under the same rules, and none of them is a back door.
Rebase is the second time we have built this. The first was FireCMS — an open-source CMS for Firebase used in more than 10,000 projects, by teams at companies including Microsoft and IKEA. Rebase applies what those years taught us to a database you own outright: standard Postgres, running wherever you choose to put it.
What we hold to
Fail closed, even when it is inconvenient
A table with no policy is refused, not leaked. Your first query may come back empty until you write a rule. We would rather cost you five minutes than ship you the other failure mode.
Nothing is held back
MIT, end to end — the schema editor, the generated APIs, the typed SDK, the panel. No feature is fenced off behind a paid tier, because a security model you cannot read is not one you can trust.
You keep the database
Rebase runs in front of a Postgres you own. It never ingests a second copy, and stopping means the data is already where you left it. Leaving is a redeploy, not a migration.
What that adds up to
What's next for Rebase
The changelog is the record. Here is what is being built next.
Now
AvailableNext
In ProgressLater
PlanningWhere the project lives
The code, the issues and the arguments are all in the open. Come and disagree with us.
Build something on it.
Rebase is MIT-licensed and self-hosted. Point it at a Postgres database you already run.