Pular para o conteúdo
💬 FAQ

FAQ para devs.

Perguntas técnicas que aparecem com mais frequência no email do Felipe. Se a sua não estiver aqui, manda — entra na próxima versão.

Trinta perguntas que devs mandam toda semana, separadas por tema. Resposta direta, sem encheção. Se cair em algo específico de framework ou cookbook, linka pra página fundo.

💡

Dica: use ⌘K / Ctrl+K pra buscar no índice. As perguntas têm id kebab-case — pode linkar direto pro ponto exato.

Setup & primeiros passos

Qual stack mínima pra começar?

Node 18+, qualquer framework JS (Next.js, Remix, SvelteKit, Astro, etc.) e o pacote @superdb/supabase-compat. Funciona em projeto frontend-only (chamando a API do client) ou backend (server-side com service-role).

Não precisa de Postgres local pra desenvolver — o projeto remoto gratuito já vem pronto. Pra dev local com Docker, veja a próxima pergunta.

Funciona com Vite/React/Vue/Svelte?

Sim. O SDK é framework-agnostic. Importe createBrowserClient e use. Não tem hook, plugin nem build-step exigido por framework específico.

Como rodo localmente?

npm install -g @superdb/cli && superdb start. Sobe Postgres, Auth, REST (PostgREST) e Studio em containers locais. Tudo escutando em localhost e idêntico em comportamento ao prod.

Preciso de Docker?

Pra desenvolvimento local sim — a CLI usa Docker Compose por baixo. Em produção, é gerenciado: você não cuida de container nenhum.

Linguagens & SDKs

Tem SDK pra Python/Go/Rust?

JS/TS é o oficial hoje. Pra outras linguagens, a API REST direta funciona — qualquer cliente HTTP serve. Wrappers Python/Go community estão na roadmap.

O drop-in do Supabase funciona 100%?

Sim pro core: auth, database (PostgREST), storage e realtime. Edge Functions ainda não — em breve (Sprint 10). Veja guia de migração pra detalhes.

TypeScript com types completos?

Sim. Importe import type { User, Session } from '@superdb/supabase-compat'. Pra gerar types do seu schema: superdb gen types > types/db.ts. Atualize após cada migration.

Deploy & produção

Onde hospedo o front?

Qualquer um: Vercel, Netlify, Cloudflare Pages, Railway, Fly. O backend (DB + Auth + Storage) é gerenciado pelo SuperDB e você só consome via SDK ou REST.

Tem CI/CD?

Sim. Via GitHub Actions: triggere superdb migrate no PR mergeado pra rodar migrations no projeto de produção. Exemplo completo em /docs/cli.

Posso usar Edge Functions do Vercel/Cloudflare?

Sim, com o SDK rodando em runtime edge (compatível). Edge Functions do próprio SuperDB ainda não existem — chega na Sprint 10.

Segurança

Service-role no client é problema?

Sim, NUNCA exponha service-role no frontend. Vai vazar tudo — service-role ignora RLS. Use anon no client. Veja service vs anon.

Como rotaciono a service-role?

Dashboard > Settings > API Keys > Regenerate. Atualize as envs nos servidores que usam (Vercel/Render/CI) imediatamente após — a antiga é invalidada na hora.

JWT secret é seguro?

Sim. Armazenado encriptado AES-256, único por projeto, rotacionável pelo dashboard. A rotação invalida sessões ativas — avise seus users antes.

Tem audit log?

Sim. Auth tem hash chain auditável (cada evento liga ao hash do anterior — não dá pra mexer no meio sem detectar). Storage e DB audit estão em breve.

Desempenho

Qual a latência média?

Servidor em São Paulo (Hostinger BR). Menos de 10ms pra users BR via VivoFibra/Claro. Pra US tipo 80ms. Multi-region chega em Sprint 12+.

Connection pooling?

PgBouncer integrado em modo transaction. Suporta até 10k conexões concorrentes de SDK/REST contra ~100 conexões reais no Postgres. Transparente — você só usa a connection string.

Como otimizo queries lentas?

EXPLAIN ANALYZE no Studio > SQL Editor. Identifique seq scans em tabelas grandes e adicione índices nos filtros mais usados (CREATE INDEX ON tbl(coluna)). Pra realtime, evite filtros caros — preferir filtrar do lado client após receber.

Debug

Como vejo o SQL que o SDK gera?

Studio > Logs > Realtime, filtra por query (PostgREST). Vê o SQL traduzido linha por linha, com tempo e params. Útil pra descobrir por que .eq() não filtra o que você esperava.

RLS bloqueia tudo, como debugo?

Studio > Authentication > Policies (ou tabela > "Show row level security"). Vê qual política está aplicando. Pra testar direto: SET ROLE authenticated; SELECT * FROM tbl; no SQL editor.

Realtime não conecta?

É WebSocket — abra DevTools > Network > WS pra ver o handshake. Firewall corporativo às vezes bloqueia. Cheque também se o canal está habilitado em Dashboard > Database > Replication.

ℹ️

Não achou sua dúvida? Manda email pra contato@superdb.com.br com o tag [faq-dev] no assunto. Entra na próxima versão dessa página.

Essa página ajudou?