Pular para o conteúdo

Início Rápido

pnpm dlx @rebasepro/cli init my-app

Isso estrutura um projeto com três pacotes:

PastaDescrição
frontend/SPA React — Vite + TypeScript com a interface de administração Rebase
backend/Servidor Node.js — Hono, PostgreSQL via Drizzle ORM, WebSocket
config/Definições de coleção TypeScript compartilhadas por ambos os lados
  • Node.js 18+
  • PostgreSQL — instalação local, Docker, ou qualquer banco de dados gerenciado (Neon, Supabase, etc.)
  • pnpm (recomendado) ou npm

Após a estruturação, edite o arquivo .env na raiz do projeto:

# 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

Isso inicia:

  • Backend em http://localhost:3001 — REST API, autenticação, armazenamento, WebSocket
  • Frontend em http://localhost:5173 — painel de administração Rebase
  • Recarregamento rápido para ambos — as alterações entram em vigor instantaneamente

Você também pode iniciá-los individualmente:

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

Introspecção de um Banco de Dados Existente (Opcional)

Seção intitulada “Introspecção de um Banco de Dados Existente (Opcional)”

Se você estiver se conectando a um banco de dados existente com tabelas pré-existentes, poderá fazer a introspecção dele para gerar automaticamente seus arquivos de coleção do TypeScript:

pnpm rebase schema introspect

Isso analisará as tabelas, enums e relações do seu banco de dados e gravará os arquivos de coleção correspondentes em config/collections/.

Ao abrir http://localhost:5173, você verá a tela de login. O primeiro usuário a se registrar automaticamente se torna um administrador — este é o fluxo de inicialização.

  1. Clique em Cadastrar
  2. Digite seu e-mail e senha
  3. Você está dentro — com acesso total de administrador

Abra config/collections/ e crie um novo arquivo:

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

Reinicie os servidores de desenvolvimento e sua nova coleção de Produtos aparecerá na navegação.

ComandoDescrição
rebase schema generateGera o esquema Drizzle a partir de suas coleções TypeScript
rebase schema introspectGerar coleções do TypeScript a partir de um banco de dados existente
rebase db pushEnvia alterações de esquema diretamente para o banco de dados (somente desenvolvimento)
rebase db generateGera arquivos de migração SQL
rebase db migrateExecuta migrações pendentes