Introduzione
Cos’è Rebase?
Sezione intitolata “Cos’è Rebase?”Rebase è il backend open-source per PostgreSQL, con un pannello di amministrazione per il tuo team, realizzato con React e TypeScript. Ti offre tutto il necessario per creare un’applicazione pronta per la produzione basata su PostgreSQL:
- Schema as Code — Definisci i tuoi modelli di dati come collezioni TypeScript. Rebase genera tabelle PostgreSQL, un’interfaccia CRUD completa, endpoint API REST e un SDK tipizzato a partire da un’unica fonte di verità.
- Pannello di amministrazione istantaneo — Un pannello basato su React, elegante e veloce, con tabelle in stile foglio di calcolo, liste, form, bacheche Kanban, modifica inline e sincronizzazione in tempo reale.
- Backend integrato — Autenticazione (password, magic link, codici monouso, MFA, chiavi API e dodici provider OAuth/OIDC), archiviazione file (locale o S3), Row Level Security, cronologia delle entità e real-time via WebSocket — tutto integrato.
- Radicalmente estendibile — Se puoi crearlo in React, puoi aggiungerlo a Rebase. Campi personalizzati, viste personalizzate, plugin e accesso completo agli hook interni.
Scegli il tuo percorso
Sezione intitolata “Scegli il tuo percorso”Rebase è un backend e un pannello di amministrazione che condividono lo stesso server. Parti da quello per cui sei qui:
| Voglio… | Inizia da qui | Cosa ottieni |
|---|---|---|
| Un backend e un pannello di amministrazione | Quickstart | Collezioni in TypeScript, un’interfaccia CRUD generata, un’API REST, autenticazione, storage e real-time |
| Solo l’API, sopra il mio database | Backend only | Un’API REST headless e SDK sul tuo PostgreSQL esistente — nessun pannello di amministrazione, nessun file di collezione |
Nessuna delle due è una scelta irreversibile: un progetto headless può integrare un pannello di amministrazione aggiungendo file di collezione, e un progetto completo può gestire tabelle per cui non esiste una collezione.
Come funziona
Sezione intitolata “Come funziona”┌──────────────────────────────────────────────────────┐│ Client Applications ││ ┌──────────────┐ ┌───────────────────────────────┐ ││ │ Your App │ │ Rebase CMS + Studio │ ││ │ (Any Tech) │ │ Tables / Lists / Kanban │ ││ └──────┬───────┘ └──────────────┬────────────────┘ │└─────────┼──────────────────────────┼─────────────────┘ │ HTTP + WebSocket │ ▼ ▼┌──────────────────────────────────────────────────────┐│ Rebase Backend (Node.js + Hono) ││ ┌─────────┐ ┌──────┐ ┌─────────┐ ┌───────────────┐ ││ │ REST API│ │ Auth │ │ Storage │ │ WebSocket RT │ ││ └────┬────┘ └──┬───┘ └────┬────┘ └──────┬────────┘ │└───────┼─────────┼──────────┼─────────────┼───────────┘ │ │ │ │ ▼ ▼ ▼ ▼┌──────────────────────────────────────────────────────┐│ PostgreSQL (Drizzle ORM) │└──────────────────────────────────────────────────────┘Avvio rapido
Sezione intitolata “Avvio rapido”pnpm dlx @rebasepro/cli init my-appcd my-appinit genera un file .env pronto all’uso — nessuna modifica necessaria. Poi:
pnpm installpnpm run devQuesto è tutto per il primo avvio. Non c’è alcun database da installare e nessun passaggio di configurazione dello schema: senza DATABASE_URL impostato, rebase dev avvia un’istanza PostgreSQL gestita (PGlite) nella directory del progetto, genera lo schema a partire dalle tue collezioni e crea le tabelle all’avvio.
Leggi gli URL dall’output. rebase dev sceglie una porta libera per ciascun progetto invece di porte fisse, quindi variano tra progetti e tra macchine diverse. Il primo account che registri diventa l’amministratore — sulla tua macchina. Una distribuzione di produzione definisce invece il proprio amministratore con REBASE_ADMIN_EMAIL e REBASE_ADMIN_PASSWORD (vedi Configurazione).
Per utilizzare invece il tuo Postgres, decommenta DATABASE_URL in .env ed esegui nuovamente pnpm run dev.
→ Segui la guida rapida completa per una panoramica dettagliata, compreso come connettere il tuo database.
Funzionalità principali
Sezione intitolata “Funzionalità principali”| Funzionalità | Descrizione |
|---|---|
| Spreadsheet Views | Tabella virtualizzata e veloce con modifica inline, filtri, ordinamento e ricerca testuale |
| List View | Vista a elenco verticale pulita e reattiva per le collezioni |
| Kanban Board | Vista a bacheca drag-and-drop raggruppata per qualsiasi proprietà enum |
| Relations | Uno-a-uno, uno-a-molti, molti-a-molti con tabelle di giunzione e join multi-hop |
| Row Level Security | Criteri RLS in stile Supabase definiti nella configurazione della collezione |
| Authentication | JWT + refresh token, dodici provider OAuth/OIDC, magic link, codici monouso, MFA con TOTP, chiavi API con scope, controllo degli accessi basato sui ruoli (RBAC) |
| File Storage | Filesystem locale o compatibile con S3 con campi di upload e file browser |
| Real-time Sync | Aggiornamenti live basati su WebSocket per tutti i client connessi |
| Entity History | Traccia di controllo (audit trail) completa per ogni creazione, modifica ed eliminazione |
| REST API | Endpoint CRUD generati automaticamente per ogni collezione |
| Data Import/Export | Importazione CSV, JSON ed Excel con mappatura dei campi; esportazione CSV/JSON |
| Collection Editor | Editor visivo di schemi che genera TypeScript tramite manipolazione AST |
| SDK tipizzato | SDK JavaScript type-safe per le tue applicazioni frontend |
| Plugin System | Estendi ogni elemento dell’interfaccia utente — barra degli strumenti, form, campi, home page |
| AI Data Enhancement | Completamento automatico basato su LLM per campi di testo |
| Cron Jobs | Attività in background pianificate con monitoraggio, log e dashboard di Studio |
| Custom Functions | Route Hono basate su file montate automaticamente con middleware di autenticazione e accesso al database |
| Email Service | SMTP integrato per reimpostazione password, verifica ed email transazionali |
| Database Branching | Copie isolate istantanee del tuo database per sviluppo, staging o test |
| Webhooks | Notifiche in uscita con firma HMAC su INSERT, UPDATE, DELETE |
| Broadcast Channels | Canali WebSocket per la messaggistica in tempo reale tra client connessi |
| Presence Tracking | Monitora gli utenti online e sincronizza lo stato condiviso tra i partecipanti |
Prossimi passi
Sezione intitolata “Prossimi passi”- Quickstart — Diventa operativo in 2 minuti
- Backend only — L’API headless basata su un database esistente
- Struttura del progetto — Comprendi il codice generato e i concetti chiave presupposti nel resto della documentazione
- Collezioni — Definisci lo schema dei tuoi dati
- Backend — Configura autenticazione, archiviazione e l’API
- Architettura — Scopri come tutti i componenti si integrano tra loro