PostgreSQLOpen-source · Self-hosted · Postgres-native

The Postgres you already have.
The backend you always wanted.

Point it at the database you already run. Nothing to provision, nothing copied, nothing migrated — your schema is the only input.

No signup for the demo. Yours is one command away:

~pnpm dlx @rebasepro/cli init

Teams shipping products on our tools — Rebase and FireCMS

01·The first five minutes

Init. Push. Run.

bash
~pnpm dlx @rebasepro/cli init
✔ Initialized Rebase in current directory.
~pnpm rebase db push
✔ Schema pushed to database. Tables created.
~pnpm dev
✔ Admin panel, API, and WebSocket server running.

02·Code as Truth

One collection.
Everything generated.

One TypeScript file per collection is the entire input. The database schema, the REST API, the typed SDK, the forms and every admin view come out of it — and change with it.

Code as Truth
App Code — products.ts
import type { PostgresCollectionConfig } from "@rebasepro/types";

export const products: PostgresCollectionConfig = {
  name: "Products",
  slug: "products",
  table: "products",
  properties: {
    name: {
      name: "Name",
      type: "string",
      validation: { required: true },
    },
    category: {
      name: "Category",
      type: "string",
      enum: {
        electronics: "Electronics",
        fashion: "Fashion",
        home: "Home & Garden",
      },
    },
    price:     { name: "Price", type: "number" },
    in_stock:  { name: "In Stock", type: "boolean" },
    image_url: { name: "Image", type: "string", url: true },
  },
};

→ generates Admin views · forms · DB schema · REST API · Typed SDK

03·What your app talks to

The whole backend, already running.

A typed SDK for your collections, REST over every table, and realtime on a WebSocket — plus auth, storage and backups, running against your database from minute one.

app.ts

TypeScript SDK

Type-safe

Fully type-safe SDK with IDE auto-complete. Schema changes update your types automatically.

api.demo.rebase.pro

Instant REST API

Auto-gen

Filtering, sorting, pagination and relation expansion on every collection, over plain REST.

Realtime engine

WebSocket

Live data subscriptions, broadcast channels, and presence tracking — all over WebSocket. Build chat, dashboards, and collaborative UIs without any extra infrastructure.

04·Two products, one definition

Take only the half you actually need.

The backend and the panel are separate products that share a schema. Ship headless today and add the panel the day a human needs to touch the data — or never. Whichever half you leave out, the API answers exactly the same.

Backendalways on

REST, auth, storage, realtime and backups over your database. No UI, no React anywhere in the dependency tree.

What your app talks to

Your Postgresyour instance · your data

Click a layer to see what it adds.

package.json

Your dependencies

  • @rebasepro/server
  • @rebasepro/server-postgres
  • @rebasepro/client
  • + @rebasepro/admin
  • + @rebasepro/admin-types
  • @rebasepro/studio

What you get

  • REST, auth, storage and realtime over your Postgres
  • Row-level security enforced by the database
  • A typed SDK generated from your schema
  • A back office your team can edit data in
  • Kanban, media, history, import & export
  • SQL editor, schema visualizer, RLS policy editor
GET /api/data/usersunchanged

Identical in every configuration above. The layers change what a human can see — never what your app can call.

06·Security-first

Written in TypeScript. Enforced by Postgres.

Row-level security written in the same TypeScript file as the collection, compiled into real Postgres policies. Granular per collection, per field, per role — and enforced by the database itself, not by middleware someone has to remember to call.

studio · row-level security
self-host
~git clone github.com/rebasepro/rebase
~docker compose up -d
✔ Postgres ready on :5432
✔ Backend live on :3000running
~
Open source

Your code. Your infra.
Zero lock-in.

MIT-licensed, end to end — the schema editor, the generated APIs, the typed SDK, all of it. Your data stays in your Postgres: no vendor dependency, no per-seat pricing, no surprises.

Free tool · no signup

Don't take our word for it

rls-check runs against any Postgres — Supabase, Neon, RDS or your own server — and reports what is actually exposed: tables served with row-level security switched off, policies that are true for everyone, views that read straight past the RLS on their base tables.

~npx @rebasepro/rls-check $DATABASE_URL

Read-only by construction: it opens a read-only transaction and runs catalog queries. It writes nothing, and no data ever leaves your machine.

rls-check · production
$ npx @rebasepro/rls-check $DATABASE_URL

rls-check 0.1.2  ·  read-only Row-Level Security audit
────────────────────────────────────────────────────────────────

Database  db.acme.internal:5432/production
Server    PostgreSQL 16.4
Platform  Supabase
Scanned   3 schemas · 41 tables · 26 policies · 14 checks

CRITICAL
────────────────────────────────────────────────────────────────

  [critical] rls-disabled  public.invoices
      public.invoices has row-level security disabled and is
      granted to anon and authenticated
      Impact  Any client holding the anon key can read — and
              write — every row in this table.
      Fix
          ALTER TABLE public.invoices ENABLE ROW LEVEL SECURITY;

  [critical] policy-always-true  public.documents, policy "documents_read"
      USING (true) grants every row to every role the policy
      applies to.

HIGH
────────────────────────────────────────────────────────────────

  [high] view-bypasses-rls  public.billing_overview
      The view runs as its owner, so it reads past the RLS on
      public.invoices.

────────────────────────────────────────────────────────────────
Summary

  2 critical · 1 high · 3 medium · 0 low

07·Built for the agent era

The backend an agent can't screw up

An AI agent can scaffold a backend in an hour. It can't tell you whether that backend is safe. Agents are extremely good at producing plausible backends — and famously bad at producing secure ones. Rebase makes the safe outcome the only outcome, by construction.

And the surface it has to get right is small: one TypeScript file per collection, no React in it, no endpoints to hand-write, no ORM layer to keep in sync. The schema is the API, and the permissions live in Postgres — where an agent's mistake gets rejected by the database instead of shipped.

Decoupled Architectures

Decoupled AI Engine

Implement intelligent features seamlessly without cluttering your core codebase.

CLI Recipes

Option 1

Inject custom collections and backend listeners directly into your codebase. The AI callbacks execute on database events within your local project files.

Event Pipelines

Option 2

Configure database webhooks in the Rebase Studio UI. Route write triggers directly to decoupled Hono custom functions to invoke LLM logic asynchronously.

$ rebase skills install --agent claude
// collections/feedbacks.ts
import type { PostgresCollectionConfig } from "@rebasepro/types";
import OpenAI from "openai";
const openai = new OpenAI();
export const feedbacks: PostgresCollectionConfig = {
slug: "feedbacks", table: "feedbacks",
properties: { content, aiSentiment, aiTags },
callbacks: {
// Runs on every write — enrich the row before it hits Postgres
beforeSave: async ({ values }) => {
const ai = await analyzeFeedback(openai, values.content);
return { ...values, aiSentiment: ai.sentiment, aiTags: ai.tags };
}
}
};
agent · what it can reach

Vector similarity search

Native pgvector with cosine, L2 and inner-product distance. Query embeddings straight over REST — no separate vector database to run.

GET /api/data/docs
GET /api/data/docs
?vector_search=embedding
&vector=[0.12, 0.98, …]
&vector_distance=cosine
200 OK · 14ms
[{ "id": "d_91", "score": 0.94 }, …]
pgvectorcosine · L2 · inner productno extra service

Boilerplate depreciates. Guarantees appreciate.

Agents made day-one code cheap. What stayed expensive are the day-30 problems: RLS correctness, backups, migrations, realtime consistency. Rebase isn't the boilerplate your agent would have written anyway — it's the operational guarantees it can't.

08·Built for real products

Teams ship faster with Rebase

From marketplaces to SaaS platforms and internal tools — three very different products, the same definition underneath.

Frequently asked questions

Every answer links to the page that proves it.

What database does Rebase support?

PostgreSQL is the primary focus — Rebase goes deep on Postgres so every feature (RLS, enums, constraints, relations) works natively. That said, the architecture is database-agnostic and can be adapted to other databases. You bring your own database instance; self-hosted Rebase never sees or copies your data.

Property types and Postgres mapping
Can I use Rebase with an existing database?

Absolutely. Point Rebase at any Postgres connection string and it will read your tables, columns, foreign keys, enums, and constraints to generate a complete admin panel. Existing data appears instantly — no migration, no duplication, no schema re-definition needed.

How the schema pipeline works
What's the tech stack?

The admin panel is a React 19 SPA built with TypeScript and Tailwind CSS. The backend is a lightweight Node.js service that connects directly to your PostgreSQL database. No SSR, no monolithic framework.

Architecture overview
Can I embed Rebase inside my existing React app?

Yes. Rebase is distributed as npm packages. You can mount the entire admin panel inside your existing React application, or deploy it as a standalone SPA. It's designed to be embeddable.

Extension mechanisms
How is Rebase different from Retool or Supabase?

Unlike Retool, Rebase is open-source with no per-seat pricing lock-in, and it's a real React framework you can extend with your own code. Unlike Supabase, Rebase connects directly to your existing Postgres database — no new infrastructure to manage, no vendor-managed instance. You keep the database; Rebase is what runs in front of it.

Side-by-side comparisons
Is Rebase open-source?

Yes. The entire framework is free and MIT-licensed — the schema editor, data import/export, user management, generated APIs, typed SDK, and every feature ships at no cost, fully self-hosted. Optional paid plans add enterprise support, SSO/SAML, and SLAs; see pricing.

Read the MIT licence on GitHub
Do you support SSO or enterprise auth?

Yes. SSO, SAML, and advanced enterprise authentication are supported. Enterprise plans with dedicated support and SLAs are available — reach out to talk through your requirements.

Authentication docs
Roadmap

What's next for Rebase

We ship fast. Here is where we are going in the coming months.

Now

Available
Postgres introspection & auto-CMS
Isomorphic TypeScript SDK
Instant REST APIs
Row-Level Security (RLS)
Realtime engine — subscriptions, broadcast channels, presence
Table, List, Kanban & Gallery views
Auth and roles system
Backend crons and functions
Native S3 compatible storage
Offline & local-first sync — local database, queued writes, live queries

Next

In Progress
AI SQL generation in editor
Hosted Rebase Cloud infrastructure
Multiplayer cursors in Studio
One-click vector embeddings

Later

Planning
Conversational analytics & charts bot
Text-to-Schema AI generation
Edge functions / Serverless logic
Advanced migration pipelines
MongoDB support

Point it at your database.

Three ways to run it.Pick the one that matches how you already deploy.

Run it locally

One command against the Postgres you already have. No account, no container to pull, nothing to sign up for.

pnpm dlx @rebasepro/cli init
Quickstart
Self-host it

Docker, Fly, Railway, Hetzner or bare metal. Your data stays in your infrastructure and never reaches us.

docker compose up -d
Deployment guides
Rebase Cloud

Managed hosting. We run our own products on it first — early access goes out from the waitlist, oldest first.

Not launched yet
Join the waitlist