Rebase CMS.
La misma definición, renderizada para personas.
A complete back office, generated from the collections your backend already uses. It is a layer on top — a client of the same API your own code calls, under the same policies. Add it when a human needs to touch the data, skip it when nobody does, and remove it without your API noticing.
Back offices que los equipos usan en Rebase cada día










The tour
No es un visor de tablas. Es un sitio donde trabajar.
Everything below is generated from the same collection definitions your API is served from. Nobody drew these screens.
El día a día
Lo que de verdad obtienen quienes no son desarrolladores
Every view, no code. The same rows as a data grid, cards, a list or a Kanban board. Switch layout, filter live, edit in place.
Relations as navigation. Foreign keys and many-to-many joins become tabs. Attach existing rows or create related records without leaving the entity.
Media that belongs to a row. Uploads land in your storage bucket and resolve inline — thumbnails in the list, previews in the form.
History and revert. Who changed what, when. Compare two versions side by side and roll one back.
Users, roles and what they can reach. The same roles your RLS policies read, managed by people who will never open psql.
Import, export, bulk edit. CSV, JSON or Excel in with field mapping; one click out. Thousands of rows without a migration script.
Almacenamiento de archivos, en el panel — el mismo bucket en el que escribe tu API, no un segundo.
El editor de texto enriquecido real de Rebase — escribe algo, es totalmente interactivo.
Escribe Markdown. Míralo renderizarse.
¿Prefieres texto plano? Los campos Markdown traen una vista previa en vivo a dos paneles — encabezados, negrita, listas y código se renderizan mientras escribes, y lo que llega a tu base de datos es el Markdown en crudo.
- Editor y vista previa en vivo, lado a lado
- Selecciona texto para formatearlo con la barra flotante
- Se guarda como Markdown plano — portable por defecto
Arrastra tarjetas, actualiza tu base de datos.
Una collection con una property de texto que tiene un enum obtiene la vista Kanban sin pedirla. La línea enabledViews del ejemplo de arriba acota el selector, no activa el tablero. Arrastrar una tarjeta escribe en Postgres, bajo las mismas policies que cualquier otra escritura.
- Se genera desde cualquier property de enum o estado
- Arrastrar y soltar con actualizaciones optimistas en la base de datos
- Filtrable, ordenable y totalmente responsive
Edita como una hoja de cálculo. Guarda como una base de datos.
Haz clic en cualquier celda y empieza a escribir; el cambio se escribe en Postgres a través de la misma API que usa tu app. Ordena, filtra, selecciona en bloque y exporta, en una cuadrícula que se comporta como una hoja de cálculo.
- Celdas editables con un clic y campos conscientes del tipo
- Selección de varias filas y acciones en bloque
- Redimensionar, reordenar y mostrar u ocultar columnas
- Exportación a CSV / JSON con un clic
Un editor. Todos los tipos de contenido.
Una entrada de blog, la descripción de un producto y un documento interno son el mismo editor de bloques escribiendo en tres columnas distintas.

Equipos de contenido
Escribe entradas de blog con el editor de texto enriquecido. Arrastra bloques, inserta medios y previsualiza — sin necesidad de un desarrollador.

Operaciones
Gestiona datos con vistas de hoja de cálculo y tableros Kanban. Edita en bloque, filtra y exporta a CSV en segundos.

Desarrolladores
Construye vistas de entidad, paneles de vista previa y widgets de campo propios — todo en React y TypeScript estándar.
Tuyo para extenderlo
Es una app de React. Trátala como tal.
Apunta una property a tu propio componente y el formulario generado se aparta. Campos propios, vistas previas propias, vistas de entidad completas, acciones extra en la barra — escritas en el React que ya escribes, referenciadas por ruta desde el bloque admin.
status: {
name: "Status",
type: "string",
enum: { paid: "Paid", refunded: "Refunded" },
admin: {
// your own React component, resolved at build time
Field: "./components/StatusPicker",
Preview: "./components/StatusChip",
},
},Tu componente se renderiza en el formulario y en la lista, con la entidad, la colección y el SDK pasados como props.
El panel trae una veintena de tipos de campo. Todo lo que va más allá es un componente que escribes, no una petición de función que abres.
Lo que cuesta añadirlo
Una capa, no un cautiverio
Rebase separó el CMS del contrato del backend, y la línea se ve en tu propio proyecto: la mitad de backend de una colección, y la mitad admin que el servidor nunca lee.
# one dependency more than a headless project
~ pnpm add @rebasepro/cms-types
// config/cms.d.ts — one line, once per project
/// <reference types="@rebasepro/cms-types" />Sin esa referencia, una clave admin en una colección es un error de tipos. La presentación no puede colarse por accidente en un proyecto headless.
export const orders: PostgresCollectionConfig = {
// … the backend half: table, properties, securityRules
admin: {
icon: "ShoppingCart",
group: "E-Commerce",
defaultViewMode: "table",
enabledViews: ["table", "kanban"],
listProperties: ["reference", "status", "total"],
sort: ["created_at", "desc"],
},
};Todo lo que el panel necesita vive en un bloque anidado. Tu modelo de datos sigue siendo legible para quien nunca abra la interfaz.
Las mismas APIs que tu aplicación
El panel lee y escribe por los mismos endpoints REST, de auth y de realtime sobre los que construyes, bajo la misma seguridad a nivel de fila. Sin ruta de datos privilegiada.
El mismo esquema, una sola fuente
Sin un segundo modelo de datos que mantener. Renombra una columna en tu colección y tanto la API como el back office la siguen en el mismo commit.
Su propia SPA, o su propio repositorio
Móntalo dentro de una aplicación React existente, o dale su propio repositorio — generate-sdk --from <url> lo tipa contra el backend en marcha, así que se despliega a su propio ritmo. Paquetes de npm, no un framework al que te mudas.
Dónde encaja
Tres capas, adoptadas en ese orden
layer 01
Rebase Backend
REST, un SDK tipado, auth, almacenamiento, realtime y RLS sobre tu Postgres. Headless y sin React. El panel se renderiza encima.
capa 02 · estás aquí
Rebase CMS
El back office generado para las personas de tu equipo, gobernado por el bloque admin de tus colecciones.
layer 03
Rebase Studio
Editor SQL, visualizador de esquema, editor de políticas RLS, ramas y explorador de API. Studio es el espacio de trabajo del desarrollador. Se registra dentro del mismo panel que CMS.
Añade el panel cuando lo necesites.
Genera un proyecto, define una colección, y el back office ya está ahí — o déjalo fuera y nada de la API cambia.

















