// Build com IA
Supabase para builders: banco de dados sem ser desenvolvedor
Todo projeto real precisa persistir dados — usuários, compras, progresso, formulários. Supabase é o banco de dados que qualquer builder consegue usar sem saber SQL avançado.
Quando você cria um site ou app com vibe coding, em algum momento você vai precisar de dados persistentes.
Usuários que se cadastram. Compras realizadas. Progresso em cursos. Formulários preenchidos. Favoritos salvos. Qualquer funcionalidade que precise lembrar algo além da sessão atual precisa de banco de dados.
Supabase é a plataforma que resolve isso para builders — sem precisar configurar servidor, sem precisar saber SQL avançado, e sem custo para começar.
O que é Supabase
Supabase é um banco de dados PostgreSQL hospedado na nuvem com:
- Banco de dados relacional (PostgreSQL) com interface visual
- Autenticação pronta: email/senha, Google, GitHub, magic link
- Storage para arquivos (imagens, PDFs, vídeos)
- API automática — cada tabela que você cria automaticamente vira um endpoint REST e GraphQL
- Realtime — ouvir mudanças no banco em tempo real (necessário para chat, notificações)
- Edge Functions — código serverless quando precisar de lógica
Plano gratuito: 2 projetos, 500MB de banco, 1GB de storage, 50.000 usuários cadastrados. Suficiente para qualquer MVP ou projeto pequeno.
Quando usar Supabase (e quando não usar)
Use Supabase quando:
- Você precisa salvar dados que persistem entre sessões
- Seu projeto tem usuários que se cadastram
- Você precisa de permissões (alguns usuários veem coisas que outros não veem)
- Você trabalha com Lovable, V0, ou Claude Code para construir o projeto
Não precisa de Supabase quando:
- Seu site é completamente estático (blog, portfólio, landing page)
- Os dados vêm todos de API externa (não precisa guardar nada)
- Você só precisa de formulário de contato (use Formspree ou similar)
Criando o projeto
- Acesse supabase.com e crie uma conta (gratuito)
- "New Project" — escolha o nome e a região (Brazil é "South America East 1")
- Defina uma senha forte para o banco (anote — você vai usar depois)
- Aguarde ~2 minutos para o projeto provisionar
Depois de criado, você vai para o dashboard do projeto. Guarde:
- Project URL:
https://xxxxx.supabase.co - Anon Key: a chave pública para uso no frontend
- Service Key: a chave privada para uso no servidor (nunca expor no frontend)
Criando sua primeira tabela
No menu lateral: Table Editor → New Table.
Para um exemplo prático, vamos criar uma tabela de leads de uma isca digital:
| Campo | Tipo | Padrão | |---|---|---| | id | uuid | auto | | email | text | obrigatório | | nome | text | opcional | | criado_em | timestamp | now() | | isca | text | qual isca baixou |
Configurações importantes:
- Ative "Row Level Security (RLS)" — proteção básica de segurança
- O campo
iddeve ser gerado automaticamente (uuid_generate_v4())
Depois de criar a tabela, vá em Authentication → Policies para configurar quem pode inserir e ler dados.
Usando com Claude Code (vibe coding)
A forma mais eficiente de integrar Supabase ao seu projeto é via Claude Code. O Supabase tem um MCP oficial que o Claude usa diretamente.
Configurando o MCP do Supabase no Claude Code:
- Acesse supabase.com → Settings → Access Tokens → "Generate new token"
- No terminal, configure o MCP:
claude mcp add supabase -- npx -y @supabase/mcp-server-supabase@latest --access-token SEU_TOKEN
Depois disso, você pode pedir diretamente ao Claude Code:
"Crie uma tabela de usuários no Supabase com campos: id, email, nome, plano (free/pro), criado_em. Configure Row Level Security para que usuários só vejam seus próprios dados."
O Claude vai criar a tabela, configurar as políticas de segurança, e gerar o código de integração.
Integração no código: o básico
Para projetos Next.js (como o Modo Build):
npm install @supabase/supabase-js
Crie o arquivo lib/supabase.ts:
import { createClient } from '@supabase/supabase-js'
const supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL!
const supabaseKey = process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!
export const supabase = createClient(supabaseUrl, supabaseKey)
No .env.local:
NEXT_PUBLIC_SUPABASE_URL=https://xxxxx.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGc...
Operações básicas que você vai usar
Inserir dados (salvar um lead)
const { data, error } = await supabase
.from('leads')
.insert([
{ email: 'usuario@email.com', nome: 'João', isca: 'checklist-seo' }
])
Buscar dados
// Todos os registros
const { data } = await supabase
.from('leads')
.select('*')
.order('criado_em', { ascending: false })
// Com filtro
const { data } = await supabase
.from('leads')
.select('email, nome')
.eq('isca', 'checklist-seo')
Atualizar
const { error } = await supabase
.from('leads')
.update({ plano: 'pro' })
.eq('email', 'usuario@email.com')
Deletar
const { error } = await supabase
.from('leads')
.delete()
.eq('id', registroId)
Autenticação em 15 minutos
Um dos maiores valores do Supabase é a autenticação pronta. Sem configurar servidor, sem JWT manual.
Login com email e senha:
// Cadastro
const { data, error } = await supabase.auth.signUp({
email: 'usuario@email.com',
password: 'senha123'
})
// Login
const { data, error } = await supabase.auth.signInWithPassword({
email: 'usuario@email.com',
password: 'senha123'
})
// Usuário atual
const { data: { user } } = await supabase.auth.getUser()
// Logout
await supabase.auth.signOut()
Login com Google (OAuth):
No dashboard do Supabase: Authentication → Providers → Google → habilitar.
await supabase.auth.signInWithOAuth({
provider: 'google',
options: { redirectTo: window.location.origin }
})
Pronto. Autenticação social funcionando sem configurar OAuth manualmente.
Como usar IA para gerar o schema do banco
Em vez de pensar em tabelas, colunas e tipos do zero:
Estou construindo [descrição do projeto].
Funcionalidades que preciso:
- [listar funcionalidades]
Crie o schema do banco de dados para este projeto usando Supabase/PostgreSQL:
1. Quais tabelas criar
2. Campos de cada tabela com tipos
3. Relacionamentos entre tabelas (foreign keys)
4. Políticas de Row Level Security básicas
Mantenha simples — só o que é necessário para as funcionalidades listadas.
Claude ou ChatGPT com esse prompt vai gerar o schema completo que você copia para o Table Editor do Supabase ou envia via MCP.
O que vem a seguir: projetos reais com Supabase
Com Supabase configurado, você consegue construir:
- Formulário de captura de leads com banco real (não Google Sheets)
- Área de membros com autenticação e conteúdo protegido por plano
- Painel de admin para ver e gerenciar dados do projeto
- Progresso de usuário em curso ou programa (XP, módulos concluídos)
- Sistema de comentários em blog
- Notificações em tempo real com Realtime
Todos esses são projetos que um builder com Claude Code consegue construir em horas — tendo Supabase como backend.