Ir al contenido

Inicio Rápido

pnpm dlx @rebasepro/cli init my-app

Esto genera la estructura de un proyecto con tres paquetes:

CarpetaDescripción
frontend/SPA de React — Vite + TypeScript con la interfaz de administración de Rebase
backend/Servidor Node.js — Hono, PostgreSQL a través de Drizzle ORM, WebSocket
config/Definiciones de colecciones TypeScript compartidas por ambos lados
  • Node.js 18+
  • PostgreSQL — instalación local, Docker o cualquier base de datos gestionada (Neon, Supabase, etc.)
  • pnpm (recomendado) o npm

Después de generar la estructura, edita el archivo .env en la raíz del proyecto:

# PostgreSQL connection string
DATABASE_URL=postgresql://username:password@localhost:5432/your_database
# JWT secret for authentication (generate a strong random string)
JWT_SECRET=change-me-to-a-random-secret
# Frontend URL for CORS
VITE_API_URL=http://localhost:3001
# Optional: Google OAuth client ID
# VITE_GOOGLE_CLIENT_ID=your-google-client-id
pnpm dev

Esto inicia:

  • Backend en http://localhost:3001 — API REST, autenticación, almacenamiento, WebSocket
  • Frontend en http://localhost:5173 — Panel de administración de Rebase
  • Recarga en caliente para ambos — los cambios surten efecto al instante

También puedes iniciarlos individualmente:

pnpm dev:backend # Backend only
pnpm dev:frontend # Frontend only

Introspección de una Base de Datos Existente (Opcional)

Sección titulada «Introspección de una Base de Datos Existente (Opcional)»

Si se está conectando a una base de datos existente con tablas preexistentes, puede introspeccionarla para generar automáticamente sus archivos de colección de TypeScript:

pnpm rebase schema introspect

Esto analizará las tablas, enums y relaciones de su base de datos y escribirá los archivos de colección correspondientes en config/collections/.

Cuando abras http://localhost:5173, verás la pantalla de inicio de sesión. El primer usuario en registrarse se convierte automáticamente en administrador — este es el flujo de arranque.

  1. Haz clic en Registrarse
  2. Introduce tu correo electrónico y contraseña
  3. Estás dentro — con acceso completo de administrador

Abre config/collections/ y crea un nuevo archivo:

import { EntityCollection } from "@rebasepro/types";
export const productsCollection: EntityCollection = {
slug: "products",
name: "Products",
singularName: "Product",
table: "products",
properties: {
name: {
type: "string",
name: "Name",
validation: { required: true }
},
price: {
type: "number",
name: "Price",
validation: { required: true, min: 0 }
},
description: {
type: "string",
name: "Description",
multiline: true
},
active: {
type: "boolean",
name: "Active",
defaultValue: true
},
created_at: {
type: "date",
name: "Created At",
autoValue: "on_create"
}
}
};
rebase schema generate # Generate Drizzle schema from your collections
rebase db push # Push the schema to your database

Reinicia los servidores de desarrollo y tu nueva colección de Productos aparecerá en la navegación.

ComandoDescripción
rebase schema generateGenera el esquema de Drizzle a partir de tus colecciones de TypeScript
rebase schema introspectGenera colecciones de TypeScript a partir de una base de datos existente
rebase db pushEnvía los cambios de esquema directamente a la base de datos (solo desarrollo)
rebase db generateGenera archivos de migración SQL
rebase db migrateEjecuta las migraciones pendientes