Se você está construindo um SaaS em 2026, a combinação Next.js + Supabase + Vercel é provavelmente a forma mais rápida de sair do zero para algo em produção. Este guia reúne o passo a passo que evita os principais problemas de autenticação e segurança.
Cookies e Server Components
Use o pacote @supabase/ssr. Ele cuida dos cookies para que Server Components, Route Handlers e o middleware enxerguem o mesmo usuário.
Variáveis de Ambiente
Você precisa de três valores do Supabase: a chave service_role, que ignora todas as regras de segurança, e dois valores para as variáveis de ambiente: NEXT_PUBLIC_SUPABASE_URL e NEXT_PUBLIC_SUPABASE_ANON_KEY. Na Vercel, cadastre as variáveis separadamente para Production e Preview.
URLs de Redirecionamento
O sintoma clássico é o login por e-mail que funciona local, mas em produção o link volta para localhost. A correção fica no painel do Supabase, em Authentication → URL Configuration:
- Site URL: seu domínio de produção, por exemplo https://app.seudominio.com
- Redirect URLs: adicione http://localhost:3000/**
https://*-seu-time.vercel.app/** (para os deploys de preview)
E no código, gere o link de redirecionamento a partir da URL atual, não de um valor fixo.
Row Level Security
Toda tabela no schema public deve ter RLS ativado. Para conferir se alguma tabela ficou sem proteção, use a ferramenta de Supabase.
Middleware para Manter a Sessão Viva
Sem o middleware, os tokens expiram e o usuário é 'deslogado' aleatoriamente. O middleware chama supabase.auth.getUser() em cada requisição e atualiza os cookies. Configure o matcher para ignorar arquivos estáticos (_next/static, imagens), senão você desperdiça execuções.
Gerar o Código com IA
Construtores de apps com IA aceleram muito as partes repetitivas: layout, CRUD, formulários, autenticação. O cuidado é revisar o que foi gerado, principalmente RLS e variáveis de ambiente, e garantir que o código seja seu. Prefira ferramentas que exportam um projeto Next.js padrão, sincronizam com o GitHub e fazem deploy na sua conta Vercel.
Conclusão
O stack Next.js + Supabase + Vercel permite lançar um MVP em dias, mas a segurança de autenticação e segurança é crucial para um MVP robusto. Siga o checklist acima e você evita os três problemas mais comuns: login quebrado em produção, chave secreta exposta e dados sem RLS.
Pontos Adicionais
- O item 3 (redirect URLs com os previews da Vercel) resolve um erro que faz muita gente perder horas.
- O getUser() no middleware faz uma chamada ao servidor de auth em toda requisição, o que é o mais seguro, mas custa latência. Vale ter o matcher bem restrito, como você já recomenda, e evitar rodar isso em rotas públicas.
- Concordo em exigir um projeto padrão que você possa exportar. O mesmo vale para o backend. Quanto mais fácil for migrar de BaaS sem reescrever o app, menos risco de ficar preso.
Conclusão Final
Transparência: faço parte da equipe do Massvai. O checklist vale para qualquer projeto Next.js + Supabase, com ou sem ferramenta.