Das Backend · und das Panel, das dazugehört

Eine Definition.
Alles, was sie erzeugt.

Rebase macht aus einer Postgres-Datenbank ein Produkt-Backend — REST, ein typisiertes SDK, Realtime, Auth, Storage und Zugriffskontrolle, die die Datenbank selbst durchsetzt. Das Admin-Panel entsteht aus derselben Datei, und nur wenn du danach fragst.

Das Admin-Panel

Gebaut für die Art,
wie du wirklich arbeitest

Kein neues Tool, das du erst lernen musst — Rebase arbeitet mit deiner bestehenden Datenbank und deinem bestehenden Workflow.

Jede Ansicht. Null Code.

SQL bleibt erstklassig

Visueller Editor, echtes TypeScript

Was du schreibst, was du bekommst

Aus dieser Datei werden die API und das Admin-Panel.

Felder, Typen, Pflichtangaben — du schreibst sie einmal, in TypeScript. Aus dieser einen Datei erzeugt Rebase die Datenbanktabelle, liefert die Daten über eine API mit typisiertem Client und rendert die Oberfläche, in der dein Team die Zeilen durchsucht und bearbeitet.

Das Backend

Der Teil, der ohne Browser läuft

Ein Rebase-Projekt ist ein Hono-Server und ein Drizzle-Schema. Es liefert deine Daten über REST, streamt Änderungen über WebSocket, stellt Tokens aus und rotiert sie, speichert Dateien, führt deine geplanten Jobs aus und veröffentlicht ein OpenAPI-Dokument, das immer aktuell ist, weil niemand es schreibt.

Jede dieser Anfragen läuft als eingeschränkte Postgres-Rolle. Das ist der Teil, den man zweimal lesen sollte: Autorisierung ist eine Eigenschaft deiner Datenbank, nicht dieses Prozesses.

Was du nicht mehr pflegst

  • CRUD-Controller, Serializer und Request-Validierung
  • Ein handgebautes Backoffice — und der Sprint, den es jedes Quartal kostet
  • JWT-Klempnerei, Refresh-Rotation und Passwort-Reset-Mail
  • Berechtigungsprüfungen, verstreut über die Route-Handler
  • Datei-Upload-Endpoints und Signed-URL-Helfer
  • Ein Cron-Runner, ein Webhook-Dispatcher und eine Audit-Log-Tabelle
  • Das OpenAPI-Dokument, an dessen Aktualisierung niemand gedacht hat
  • Ein zweites Datenmodell, von Hand mit dem ersten synchron gehalten

Eine Definition

Eine Definition, jede Oberfläche.

Eine Tabelle, ein Kanban-Board, eine Galerie, ein Block-Editor, eine eigene React-View — jeder Screen unten liest dieselbe Collection über dieselbe API, unter denselben Policies. Nichts davon ist ein zweites Datenmodell.

Das ganze Produkt

Alles, was Rebase ausliefert, auf einem Screen

Die linke Spalte läuft, ohne dass sonst etwas installiert ist. Die rechte ist eine Abhängigkeit entfernt, und sie zu löschen bewegt keine einzige API-Antwort.

Layer 01

Das Backend

immer an
  • REST-API/api/data/:collection

    CRUD, Filtern, Sortieren, Pagination, Relationen

  • Typisiertes SDK@rebasepro/client

    Aus deinen Collections erzeugt, zur Compile-Zeit geprüft

  • Realtimelisten()

    Zeilen-Subscriptions, Channels und Presence über WebSocket

  • Auth/api/auth/*

    JWT-Access und -Refresh, OAuth, MFA, Rollen, API-Keys

  • Storage/api/storage/*

    Lokal, S3-kompatibel oder GCS, pro Feld geroutet

  • Functions & Cronfunctions/

    Deine eigenen Hono-Routen und geplanten Jobs, automatisch eingebunden

  • Row-Level SecuritysecurityRules

    Policies, die nach Postgres kompiliert werden — standardmäßig geschlossen

  • OpenAPI/api/docs

    Eine Spec und ein Explorer, mit dem Schema neu erzeugt

Layer 02

Das Admin-Panel

inklusive
  • Collection-ViewsenabledViews

    Tabelle, Karten, Liste und Kanban über denselben Zeilen

  • Entity-Formulareproperties

    Aus den Properties erzeugt, mit Validierung und Relationen

  • Dein Reactadmin.Field

    Eigene Felder, Previews, Views und Entity-Actions

  • Nutzer & RollenRBAC

    Dieselben Rollen, die deine Policies lesen, von Menschen verwaltet

  • Rebase Studio/studio

    Studio ist der Entwickler-Workspace. Es registriert sich im selben Panel wie CMS.

Das Panel ist eine React-App, die mit den Endpunkten links spricht, unter derselben Row-Level Security wie dein eigener Client. Es gibt keinen privaten Rückkanal für Daten.

Beide Schichten, ein Befehl.

Scaffolde ein Projekt gegen dein eigenes Postgres und sieh genau, welche Teile du behältst.

~pnpm dlx @rebasepro/cli init