PostgreSQLOpen-source · Déployable partout · Natif Postgres

Le Postgres que vous avez déjà.Le backend que vous avez toujours voulu.

Pointez-le vers le Postgres que vous utilisez déjà. REST, un SDK typé, le temps réel et l'auth apparaissent — et chaque règle d'accès est appliquée par la base de données elle-même.

zsh · ~/work

$ pnpm dlx @rebasepro/cli init

✔ Rebase initialisé dans le répertoire courant.

✔ Schéma appliqué à la base de données. Tables créées.

✔ API, temps réel et panneau démarrés.

Les URL de l'API et du panneau s'affichent au démarrage · rebase dev choisit des ports libres par projet

$

Des équipes qui livrent avec nos outils — Rebase, et FireCMS, le CMS open source de plus de 10 000 projets Firebase.

DearDoc LogoMedicalMotion LogoProton HealthWithUSocial Income

01·Le code comme source de vérité

Une collection.
Tout est généré.

Un seul fichier TypeScript par collection comme unique point d'entrée. Le schéma de base de données, l'API REST, le SDK typé, les formulaires et chaque vue admin en découlent — et évoluent avec lui.

Code de l'app — 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 },
  },
};

→ génère schéma DB · API REST · SDK typé · formulaires d'entité · vues admin

02·Ce avec quoi votre app communique

Tout le backend, déjà opérationnel.

Un SDK typé pour vos collections, du REST sur chaque table et du temps réel via WebSocket — avec en plus l'auth, le stockage et les sauvegardes, branchés sur votre base de données dès la première minute.

app.ts — typé depuis vos collectionslive · try it
1
2
3
import { createRebaseClient } from '@rebasepro/client';
 
const data = await client.data.
TypeScriptUTF-8Ln 3, Col 1
REST, sur chaque tablelive · 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...
Temps réel — 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

Plus l'auth et les rôles, le stockage compatible S3, les tâches planifiées, les fonctions serverless et les sauvegardes — le tout sur la base de données qui vous appartient déjà, sous les mêmes politiques.

Explorer le backend

03·Sécurité d'abord

Écrit en TypeScript. Appliqué par Postgres.

Row-level security définie dans le même fichier TypeScript que la collection, compilée en véritables politiques Postgres. Granulaire par collection, par champ, par rôle — et appliquée directement par la base de données, pas par un middleware que l'on doit penser à appeler.

Où vit la règle aujourd'huicollections/orders.ts · une règle, dans Postgres, sur chaque chemin
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

Ne nous croyez pas sur parole.

rls-check lit le catalogue de votre base de données et rapporte ce qui est réellement exposé — des tables servies avec la sécurité au niveau des lignes désactivée, des politiques vraies pour tout le monde, des vues qui contournent la RLS de leurs tables de base. Quinze contrôles. N'importe quel Postgres : Supabase, Neon, RDS, votre propre serveur. Il est en lecture seule, ne demande aucun compte, et se moque de savoir si vous utilisez Rebase.

Voir les 14 vérifications
npx @rebasepro/rls-check

Des SELECT sur les catalogues système et rien d'autre. Aucune télémétrie, aucun envoi, et il ne lit jamais vos données.

04·Le panneau, livré avec

Le back-office de votre équipe, généré depuis la même définition.

Le panneau lit vos données via la même API et les mêmes politiques que votre application. Votre app parle au backend, votre équipe travaille dans le panneau, et les deux voient les mêmes règles.

admin.yourdomain.com

Ce avec quoi votre app communique

Rebase Backend

REST, auth, stockage, temps réel et sauvegardes par-dessus votre base de données. Aucune UI, aucun React dans l'arbre de dépendances.

@rebasepro/server

Là où votre équipe travaille

Rebase CMS

Édition tableur, médias, relations, rôles et workflows — avec vos propres composants React intégrés partout où le champ par défaut ne suffit pas.

@rebasepro/cms

Outils de développement, dans le même panneau

Rebase Studio

Éditeur SQL, visualiseur de schéma, éditeur de politiques RLS, logs et explorateur d'API. Studio est l'espace de travail du développeur. Il s'enregistre dans le même panneau que CMS.

@rebasepro/app

Découvrir Rebase CMS

05·Conçu pour l'ère des agents

Le backend qu'un agent ne peut pas casser.

Un agent IA peut échafauder un backend en une heure. Il ne peut pas vous dire si ce backend est sûr. Les agents excellent à produire des backends plausibles — et sont notoirement mauvais pour en produire de sûrs. Rebase fait du résultat sûr le seul résultat possible, par construction.

Découvrir les fonctions IA et agents
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·Conçu pour des produits réels

Les équipes livrent plus vite avec Rebase

Des marketplaces à la fidélité retail, aux données publiques et aux outils internes, Rebase élimine le code de liaison entre base de données, API et UI.

07·Open source

Votre code. Votre infra.
Zéro lock-in.

Licence MIT. Auto-hébergez sur Docker, Railway, Fly ou bare metal. Vos données restent dans votre Postgres — pas de dépendance fournisseur, pas de surprises, pas de tarification par utilisateur.

Pointez-le vers votre base de données.

Lancez-le en local

Une seule commande sur votre Postgres existant. Pas de compte, pas de conteneur à pull, aucune inscription.

pnpm dlx @rebasepro/cli init
Démarrage rapide

Auto-hébergez-le

Docker, Fly, Railway, Hetzner ou bare metal. Vos données restent sur votre infrastructure et ne nous parviennent jamais.

docker compose up -d
Guides de déploiement

Rebase CloudBêta privée

Hébergement managé sur notre infrastructure. Il fait tourner de vrais clients aujourd'hui et s'ouvre par vagues.

Demander un accès