O que é Supabase e a proposta de backend as a service
Supabase é uma plataforma open-source de Backend as a Service construída sobre PostgreSQL, que oferece banco de dados gerenciado, autenticação, storage de arquivos, funções serverless e comunicação em tempo real em um único produto. A proposta central é permitir que equipes construam backends completos sem escrever código de servidor para operações CRUD padrão, aproveitando as APIs geradas automaticamente a partir do schema do banco. Por ser construído sobre tecnologias abertas — PostgreSQL, PostgREST, GoTrue, Realtime e pg_graphql — o Supabase pode ser auto-hospedado com controle total, diferente de soluções proprietárias. A plataforma é especialmente atraente para times de frontend que precisam de backend sem a complexidade operacional de gerenciar um servidor Node.js ou .NET.
PostgreSQL gerenciado — database com superpoderes
O coração do Supabase é um PostgreSQL totalmente gerenciado com extensões habilitadas como pgvector para buscas vetoriais, postgis para dados geoespaciais e pg_cron para jobs agendados diretamente no banco. Cada projeto Supabase recebe uma instância PostgreSQL dedicada com acesso direto via connection string, o que significa que ferramentas padrão como psql, Prisma, Drizzle e qualquer ORM funcionam sem adaptação. O painel do Supabase oferece um editor SQL completo com autocompletar, visualização de tabelas, editor de relacionamentos e histórico de queries. Migrations podem ser gerenciadas via CLI, integrando com fluxos de CI/CD modernos.
Auth — autenticação pronta com provedores OAuth
O módulo de autenticação do Supabase implementa email/senha, magic link, OTP via SMS, e mais de 20 provedores OAuth incluindo Google, GitHub, Apple, Facebook e LinkedIn, tudo configurável via painel sem escrever código de servidor. O sistema de sessão usa JWT com refresh tokens gerenciados automaticamente pelo SDK client-side, e cada usuário autenticado recebe um auth.uid() disponível dentro das Row Level Security policies do PostgreSQL. O Supabase Auth também suporta MFA com TOTP, listagem de sessões ativas e revogação de tokens — funcionalidades que normalmente exigem semanas de implementação customizada. Webhooks de autenticação permitem disparar lógica de negócio ao criar, atualizar ou deletar usuários.
Storage — upload de arquivos com política de acesso
O Supabase Storage oferece um sistema de armazenamento de objetos compatível com a API do S3, com buckets públicos e privados gerenciados via painel ou SDK. Cada bucket pode ter políticas de acesso baseadas em Row Level Security, permitindo regras como "somente o dono do arquivo pode deletá-lo" ou "arquivos públicos são acessíveis sem autenticação". A CDN integrada serve arquivos estáticos com cache automático, e transformações de imagem on-the-fly — resize, crop, conversão de formato — estão disponíveis via parâmetros de URL. O storage usa o mesmo sistema de autenticação do Supabase Auth, então não é necessário implementar autorização separada para upload e download de arquivos.
Realtime — subscriptions em tempo real via WebSocket
O módulo Realtime do Supabase permite que aplicações assinem mudanças no banco de dados — INSERT, UPDATE, DELETE — via WebSocket, sem necessidade de polling. As subscriptions são configuradas no client-side usando o SDK e respeitam as políticas de Row Level Security, garantindo que usuários recebam apenas dados que têm permissão de ver. Além de database changes, o Realtime suporta presence para rastrear quais usuários estão online, e broadcast para enviar mensagens arbitrárias entre clientes conectados ao mesmo canal. Isso permite construir funcionalidades colaborativas, notificações em tempo real e feeds ao vivo sem infraestrutura adicional de WebSocket.
Edge Functions — lógica serverless próxima ao usuário
As Edge Functions do Supabase são funções Deno serverless executadas em pontos de presença globais, reduzindo a latência para usuários em diferentes regiões. Elas são escritas em TypeScript com acesso ao SDK do Supabase para interagir com banco de dados, storage e autenticação usando o contexto do usuário autenticado. Casos de uso típicos incluem webhooks de terceiros, lógica de negócio que não pode ser exposta no cliente, processamento de pagamentos e integração com APIs externas. O deploy de Edge Functions é feito via CLI do Supabase, e variáveis de ambiente são gerenciadas pelo painel do projeto.
Row Level Security — segurança a nível de linha no PostgreSQL
Row Level Security (RLS) é o mecanismo central de autorização do Supabase, implementado diretamente no PostgreSQL como políticas que filtram quais linhas cada usuário pode ler, inserir, atualizar ou deletar. Uma política típica para garantir que usuários vejam apenas seus próprios registros é USING (auth.uid() = user_id), que o PostgreSQL avalia automaticamente em todas as queries contra aquela tabela. Com RLS habilitado, mesmo que um bug no código de aplicação tente acessar dados de outro usuário, o banco rejeita a operação na camada mais segura possível. A combinação de RLS com os JWTs gerados pelo Supabase Auth elimina a necessidade de middleware de autorização customizado para a maioria dos casos de uso.
Supabase vs Firebase — comparação honesta
Firebase e Supabase são as duas principais plataformas de BaaS, mas com filosofias distintas: Firebase usa Firestore, um banco NoSQL baseado em documentos com modelo de dados desnormalizado, enquanto Supabase usa PostgreSQL relacional com suporte a joins, transactions e constraints. Firebase é proprietário do Google e sem opção de self-hosting, enquanto Supabase é open-source e pode ser executado em infraestrutura própria. Firebase tem ecossistema mais maduro para mobile com Firebase Analytics, Crashlytics e Remote Config, funcionalidades que Supabase não cobre. Para projetos que precisam de dados relacionais complexos, queries SQL e controle sobre a infraestrutura, Supabase é superior; para mobile-first com integração Google, Firebase mantém vantagem.
Limitações e quando migrar para infraestrutura própria
O plano gratuito do Supabase pausa projetos inativos por 7 dias, o que é problemático para aplicações com tráfego intermitente. A plataforma gerenciada tem limites de conexões simultâneas ao PostgreSQL que podem ser insuficientes para aplicações de alto tráfego sem connection pooling via PgBouncer. Edge Functions têm timeout de 2 segundos no plano gratuito e limitações de memória que restringem processamentos pesados. Quando o negócio escala, o custo do Supabase gerenciado pode superar o de uma instância RDS ou PostgreSQL self-hosted com mais controle de tuning. A boa notícia é que, por ser open-source, a migração do Supabase gerenciado para self-hosted preserva toda a compatibilidade da API.
Conclusão
Supabase é uma das plataformas mais completas para construir backends modernos sem reinventar a roda — autenticação, banco relacional, storage, tempo real e funções serverless em um único produto com APIs geradas automaticamente. A aposta em PostgreSQL ao invés de NoSQL proprietário significa que os dados ficam em uma tecnologia madura, portável e com ecossistema vasto de ferramentas. Row Level Security elimina classes inteiras de vulnerabilidades de autorização quando usado corretamente. Para startups, MVPs e produtos digitais que precisam ir rápido sem negligenciar segurança, Supabase oferece um ponto de partida excepcionalmente sólido. Continue em: Fundamentos obrigatórios antes de produção.
Vídeos — Supabase e BaaS
Supabase Completo na Prática
PostgreSQL Row Level Security
BaaS — Backend as a Service
Conceitos — Supabase
PostgreSQL Gerenciado
Banco relacional completo com extensões como pgvector e postgis
Auth Integrado
Email, magic link, OTP, 20+ provedores OAuth e MFA
Row Level Security
Autorização a nível de linha no próprio PostgreSQL via JWT
Realtime
Subscriptions em WebSocket para INSERT/UPDATE/DELETE com RLS
Edge Functions
Funções Deno serverless em pontos globais de presença
Posts — Backend as a Service
@bytebytego
Reels — Sistemas e Arquitetura
@bytebytego
ByteByteGo no Facebook
Tweets — Backend e Autenticação
Como testar que sua API é resiliente e segura para produção real
Ver post completo no X →Implementando padrões de resiliência em .NET Core com exemplos reais
Ver post completo no X →Vertical Slice Architecture — organizando sistemas para escala
Ver post completo no X →5 anos com Clean Architecture — lições de sistemas em produção
Ver post completo no X →Design de APIs resilientes — retry, backoff e idempotência juntos
Ver post completo no X →Monolito vs Microsserviços — como escolher para cada contexto
Ver post completo no X →Links Úteis
O que dizem
RLS resolveu meu problema de autorização em dias. Sem middleware de auth customizado.
A API gerada automaticamente do schema é mágica. CRUD sem escrever backend.
Migrei do Firebase para Supabase por causa do PostgreSQL. Nunca mais voltei.