Pular para o conteúdo
Tecnologia

Supabase é Firebase com PostgreSQL. Managed Postgres, auto-generated APIs, real-time subscriptions, auth integrado. Open-source.

Conceitos Principais

Managed Postgres

Postgres 15 gerenciado. Backups, replication, scaling. Acesso via SQL editor ou API.

Auto APIs

REST e GraphQL gerados automaticamente. CRUD sem backend. PostgREST under hood.

Real-time

WebSocket subscriptions. Mudanças de DB → client. supabase.from("posts").on("INSERT", callback).

Row Level Security

RLS policies. Users veem apenas own data. Policy SQL: auth.uid() = user_id.

Passo a Passo

  1. Create Project: supabase.com → New Project. Provisiona Postgres. Connection string e API keys gerados.
  2. Create Table: SQL Editor: CREATE TABLE posts (id UUID PRIMARY KEY DEFAULT gen_random_uuid(), title TEXT, user_id UUID REFERENCES auth.users). Enable RLS.
  3. Setup Client: npm install @supabase/supabase-js. import { createClient } from "@supabase/supabase-js"; const supabase = createClient(url, key);
  4. CRUD via API: const { data } = await supabase.from("posts").select("*"); await supabase.from("posts").insert({ title: "..." }). Type-safe com codegen.
  5. Real-time Sub: supabase.from("posts").on("INSERT", (payload) => { console.log(payload.new); }).subscribe(). Real-time updates.

Boas Praticas

Recomendacoes

• Enable RLS em todas tables

• Use UUID para PKs

• Type generation (supabase gen types)

• Edge Functions para backend logic

• Connection pooling (PgBouncer built-in)

• Monitor usage dashboard

Erros Comuns

Evite estes erros

• RLS não habilitado (security risk)

• Expor service_role key no client

• Não usar types gerados

• Complex logic no client (use Edge Functions)

• Não limitar subscriptions

Checklist

  • Project criado
  • Tables com RLS
  • Client configurado
  • CRUD funcionando
  • Real-time subscriptions testadas
  • Types gerados