Postgres sólido,
multi-tenant nativo.
Postgres 15 gerenciado com SQL Editor em PT-BR, diagrama de schema, tela de saúde do projeto e backup a cada 6 horas. RLS-first pra multi-tenant, com o mesmo Postgres + PostgREST do Supabase.
O Postgres que seu time usa todo dia.
SQL Editor, diagrama de schema, tabelas e saúde do projeto — em português, no painel do SuperDB.
| tenant | notas | total_brl |
|---|---|---|
| Condomínio Jardins | 184 | R$ 142.380,00 |
| Padaria do Zé | 97 | R$ 88.120,50 |
| Loja Maria Têxtil | 63 | R$ 54.900,00 |
| Coop Cafeicultores SP | 41 | R$ 38.215,80 |
| Nível | Aviso | O que fazer |
|---|---|---|
| crítico | Sem RLS e legível pela anon key: leads | ligue a RLS e crie as policies |
| crítico | Role anon com escrita em: pedidos | revogue a escrita da anon |
| aviso | FK sem índice: tasks.org_id | crie o índice |
| aviso | Função SECURITY DEFINER sem search_path fixo: resumo_mes | fixe o search_path |
| info | API key antiga: app-v1 | gere uma nova e troque |
| id | title | status | due_at |
|---|---|---|---|
| 4821 | Trocar lâmpadas do bloco B | aberta | 12/09 |
| 4820 | Assembleia de outubro | aberta | 20/09 |
| 4819 | Orçamento da pintura | atrasada | 05/09 |
| 4818 | Vistoria do elevador | feita | 02/09 |
O que tem dentro.
Postgres puro + a camada de produtividade que faltava — pra você só pensar no produto.
Postgres 15 gerenciado
Postgres da comunidade, com as extensões do Supabase. Resultado de consulta sai em CSV pelo editor; o dump completo, com a equipe.
SQL Editor em PT-BR
Autocomplete com as tabelas do projeto, histórico, consultas salvas e EXPLAIN com um clique.
Editor de tabelas e diagrama ER
Crie tabelas e colunas por formulário, sem escrever DDL. O diagrama ER mostra as relações do schema de relance. Para FK, índice e o resto, o SQL Editor está do lado.
RLS ligada por padrão
Row Level Security ativa nas tabelas criadas pelo painel, e a tela Saúde aponta as que ficaram sem. auth.uid() e auth.jwt() nas policies.
Saúde do projeto
Aponta tabela sem RLS, escrita liberada para a anon key, FK sem índice, função SECURITY DEFINER sem search_path e chave antiga, dizendo como resolver.
Extensões
pgvector, PostGIS, pg_stat_statements e pg_graphql instalados no banco do seu projeto.
Backup
Cópia do banco a cada 6 horas, cifrada e guardada fora do servidor. A restauração é feita com a equipe.
API REST pronta
PostgREST: cada tabela vira endpoint REST, com o RLS aplicado. Sem código de backend.
SQL pela API
Com a chave de gestão (sdb_pmk_), o seu CI roda SQL e migrations no projeto.
Dados no Brasil
Servidor em São Paulo: os dados ficam no Brasil.
O mesmo Postgres,
os mesmos métodos.
O .from() do @superdb/client tem os métodos do @supabase/supabase-js: .select(), .insert(), .update(), .delete() e .rpc(), com filtros e joins pelo PostgREST.
O schema e as policies vêm com ajustes: aqui o schema do projeto é proj_<slug> e não existe auth.users. O guia de migração mostra o passo a passo.
// Antes — Supabase
import { createClient } from '@supabase/supabase-js'
// Depois — SuperDB
import { createClient } from '@superdb/client'
const db = createClient(
process.env.NEXT_PUBLIC_SUPERDB_URL!,
process.env.NEXT_PUBLIC_SUPERDB_ANON_KEY!,
{ project: 'meu-app' }
)
// A mesma query — o RLS é aplicado no Postgres
const { data, error } = await db
.from('invoices')
.select('id, valor_brl, tenants(name)')
.eq('status', 'paga')
.order('created_at', { ascending: false })
.limit(10)
// E a policy usa auth.uid(), como no Supabase:
// create policy "dono lê" on invoices
// for select using (dono = auth.uid());
Database pensado pra SaaS BR.
Pronto pra ter um Postgres sério?
No plano Grátis: 500 MB de banco e 10 GB de tráfego. Sem cartão.