PostgreSQLOpen-Source · Überall deploybar · Postgres-nativ

Das Postgres, das du schon hast.Das Backend, das du immer wolltest.

Verbinde es mit dem Postgres, das du schon betreibst. REST, ein typisiertes SDK, Realtime und Auth erscheinen — und jede Zugriffsregel setzt die Datenbank selbst durch.

zsh · ~/work

$ pnpm dlx @rebasepro/cli init

✔ Rebase im aktuellen Verzeichnis initialisiert.

✔ Schema in Datenbank übertragen. Tabellen erstellt.

✔ API, Realtime und Panel laufen.

API- und Panel-URLs werden beim Start ausgegeben · rebase dev wählt freie Ports pro Projekt

$

Teams, die mit unseren Tools ausliefern — Rebase, und FireCMS, das Open-Source-CMS in über 10.000 Firebase-Projekten.

DearDoc LogoMedicalMotion LogoProton HealthWithUSocial Income

01·Code as Truth

Eine Collection.
Alles generiert.

Eine einzige TypeScript-Datei pro Collection ist der gesamte Input. Das Datenbankschema, die REST API, das typisierte SDK, die Formulare und jede Admin-Ansicht entstehen daraus — und ändern sich mit ihr.

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 },
  },
};

→ erzeugt DB-Schema · REST-API · typisiertes SDK · Entity-Formulare · Admin-Views

02·Womit deine App spricht

Das gesamte Backend, direkt einsatzbereit.

Ein typisiertes SDK für deine Collections, REST für jede Tabelle und Realtime über WebSockets — plus Auth, Storage und Backups, ab Minute eins auf deiner Datenbank.

app.ts — typisiert aus deinen Collectionslive · try it
1
2
3
import { createRebaseClient } from '@rebasepro/client';
 
const data = await client.data.
TypeScriptUTF-8Ln 3, Col 1
REST, über jede Tabellelive · send a request
Endpoints
GET/api/data/users
POST/api/data/users
GET/api/data/posts
PUT/api/data/posts/:id
DEL/api/data/posts/:id
Ready
Response
Send a request...
Realtime — LISTEN/NOTIFYlive
your app — web
name
status
upd
Alice
pending
2m ago
Bob
active
5m ago
Carol
inactive
1h ago
Dave
active
12m ago
ws
live
admin panel
name
status
upd
Alice
pending
2m ago
Bob
active
5m ago
Carol
inactive
1h ago
Dave
active
12m ago
Both clients subscribed to users…ws://localhost:3000/realtime

Dazu Auth und Rollen, S3-kompatibler Storage, geplante Jobs, Serverless Functions und Backups — alles gegen die Datenbank, die dir schon gehört, unter denselben Policies.

Backend erkunden

03·Security first

In TypeScript geschrieben. Von Postgres erzwungen.

Row-Level Security, direkt in derselben TypeScript-Datei wie die Collection definiert, kompiliert in echte Postgres-Policies. Granular pro Collection, pro Feld, pro Rolle — und von der Datenbank selbst durchgesetzt, nicht von Middleware, an deren Aufruf man erst denken muss.

Wo die Regel heute lebtcollections/orders.ts · eine Regel, in Postgres, auf jedem Weg
routes/orders.tsif (order.ownerId !== req.user.id) return 403;✓ checks
jobs/nightly-report.tsdb.select().from(orders) // every row✗ no check
scripts/backfill.tsdb.update(orders).set(…) // run once, kept forever✗ no check
agents/tools.tsconnect(URL, SERVICE_ROLE_KEY)✗ bypasses RLS
the hosted dashboardselect * from orders -- as the owner✗ no policy
securityRules: [
  { operation: "select", using: "owner_id = rebase.uid()" },
  { operation: "update", using: "owner_id = rebase.uid()" },
]
-- compiled into Postgres; enforced on every statement, for every caller
CREATE POLICY orders_select ON orders FOR SELECT USING (owner_id = rebase.uid());
-- a table with no policy is not served at all
routes/orders.tsrebase_user→ policy applies
jobs/nightly-report.tsrebase_user→ policy applies
scripts/backfill.tsrebase_user→ policy applies
agents/tools.tsscoped key→ policy applies
the panelrebase_user→ policy applies

Glaub uns das nicht einfach.

rls-check liest den Katalog deiner eigenen Datenbank und meldet, was tatsächlich offen liegt — Tabellen, die mit abgeschalteter Row-Level Security ausgeliefert werden, Policies, die für jeden wahr sind, Views, die an der RLS ihrer Basistabellen vorbeilesen. Fünfzehn Checks. Jedes Postgres: Supabase, Neon, RDS, dein eigener Server. Es liest nur, braucht keinen Account, und es ist ihm egal, ob du Rebase benutzt.

Alle 15 Prüfungen ansehen
npx @rebasepro/rls-check

SELECTs auf die Systemkataloge und sonst nichts. Keine Telemetrie, kein Upload, und deine Daten liest es nie.

04·Das Panel, das mitkommt

Das Backoffice deines Teams, erzeugt aus derselben Definition.

Das Panel liest deine Daten über dieselbe API und dieselben Policies wie deine App. Deine App spricht mit dem Backend, dein Team arbeitet im Panel, und beide sehen dieselben Regeln.

admin.yourdomain.com

Womit deine App spricht

Rebase Backend

REST, Auth, Storage, Realtime und Backups über deiner Datenbank. Keine UI, kein React irgendwo im Dependency-Baum.

@rebasepro/server

Wo dein Team arbeitet

Rebase CMS

Tabellen-Editing, Medien, Relationen, Rollen und Workflows — mit deinen eigenen React-Komponenten überall dort, wo das Standardfeld nicht reicht.

@rebasepro/cms

Entwickler-Tools, im selben Panel

Rebase Studio

SQL-Editor, Schema-Visualisierung, RLS-Policy-Editor, Logs und API-Explorer. Studio ist der Entwickler-Workspace. Es registriert sich im selben Panel wie CMS.

@rebasepro/app

Rebase CMS ansehen

05·Gebaut für das Zeitalter der Agenten

Das Backend, das ein Agent nicht ruinieren kann.

Ein KI-Agent kann in einer Stunde ein Backend hochziehen. Ob dieses Backend sicher ist, kann er dir nicht sagen. Agenten sind hervorragend darin, plausible Backends zu produzieren — und notorisch schlecht darin, sichere zu bauen. Rebase macht das sichere Ergebnis zum einzig möglichen, per Konstruktion.

KI- und Agent-Funktionen ansehen
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

06·Gebaut für echte Produkte

Teams shippen schneller mit Rebase

Von Marktplätzen über Retail-Loyalty und offene Daten bis zu internen Tools — Rebase eliminiert den Glue Code zwischen Datenbank, API und UI.

07·Open-Source

Dein Code. Deine Infra.
Null Lock-in.

MIT-lizenziert. Self-hosten auf Docker, Railway, Fly oder Bare Metal. Deine Daten bleiben in deinem Postgres — kein Vendor Lock-in, keine Überraschungen, kein Per-Seat-Pricing.

Verbinde es mit deiner Datenbank.

Lokal ausführen

Ein Befehl gegen dein bestehendes Postgres. Kein Account, kein Container-Pull, keine Registrierung.

pnpm dlx @rebasepro/cli init
Quickstart

Selbst hosten

Docker, Fly, Railway, Hetzner oder Bare-Metal. Deine Daten bleiben in deiner Infrastruktur und erreichen uns nie.

docker compose up -d
Deployment-Guides

Rebase CloudPrivate Beta

Managed Hosting auf unserer Infrastruktur. Sie betreibt heute echte Tenants und öffnet in Wellen.

Zugang anfragen