# Supabase no Vibe Coding: limites do Free Tier, armadilhas de RLS e quando migrar para SurrealDB + Cloudflare
> Analise os custos reais do Supabase Pro (US$ 25/mês + Compute Add-ons e Egress), as falhas de segurança em RLS geradas por IA no Lovable e como migrar para Cloudflare Workers + SurrealDB.
**Autores:** Mauro Mequelussi
**Publicado:** 2026-11-10T15:30:34.372915321Z
**Atualizado:** 2026-11-13T03:37:31.107313688Z
**Tags:** surrealdb, lovable, arquitetura, cloudflare, vibe-coding, supabase, banco-de-dados
---
Se você criou um aplicativo nos últimos meses usando **Lovable**, **Bolt.new**, **v0**, **Cursor** ou **Claude Code**, existe uma chance de quase 100% de que o seu banco de dados seja o **Supabase**. A plataforma conquistou os desenvolvedores e adeptos do *vibe coding* por um motivo justo: em menos de dois minutos, ela entrega um banco PostgreSQL completo, tela de login pronta, upload de arquivos e uma API automática que funciona direto do navegador.

Mas existe um abismo entre o protótipo que roda bonito na primeira sexta-feira e um SaaS ou operação de infoproduto com milhares de clientes no Brasil. Quando o projeto cresce — ou quando você tenta criar agentes de IA com memória no WhatsApp — surgem quatro muros invisíveis: **o banco grátis que pausa sozinho**, **o vazamento de dados por falha de RLS na `anon_key`**, **a cobrança em dólar multiplicada por projeto e por tráfego de saída (Egress)** e **o malabarismo de infraestrutura para rodar IA**.

Neste guia completo, explicamos **o que é o Supabase**, como funciona sua tabela real de preços em 2026, como corrigir as falhas de segurança mais comuns e por que cada vez mais builders estão combinando (ou migrando para) **Cloudflare Workers + R2 + SurrealDB**.

## O que é o Supabase e por que todo Vibe Coder começa por ele?

O **Supabase** é uma plataforma de *Backend-as-a-Service (BaaS)* código aberto construída sobre o banco de dados relacional **PostgreSQL**. Ele nasceu como a principal alternativa open source ao Firebase (do Google), empacotando várias ferramentas ao redor do Postgres em um único painel:

- **Supabase Database:** banco relacional PostgreSQL com editor visual de tabelas (Table Editor) e SQL Editor;
- **Supabase Auth (GoTrue):** sistema de login por e-mail/senha, Magic Link, Google/GitHub OAuth e emissão de tokens JWT;
- **Supabase Data API (PostgREST):** camada que transforma automaticamente suas tabelas SQL em endpoints REST consumíveis pelo front-end;
- **Supabase Storage:** armazenamento de arquivos (baseado no AWS S3 por trás dos panos) integrado às permissões do banco;
- **Supabase Edge Functions & Realtime:** funções serverless em Deno e sincronização de dados via WebSockets.

::callout{type="info" title="Quer aprender Supabase do jeito certo e de graça?"}
Se o seu projeto já roda em Supabase (ou veio do Lovable/Bolt), nós gravamos o **[Curso Grátis de Supabase sem Mistério (14 aulas)](/blog/curso-gratis-supabase)** ensinando do zero como modelar tabelas, configurar Auth, usar Storage, criar filas e blindar suas permissões com RLS antes de ir para produção.
::

## Assista: Como o Supabase funciona por dentro (Aula Inaugural Gratuita)

::video-player{src="https://www.youtube.com/watch?v=Qo7a0Hewp40" title="Supabase sem Mistério: apresentação do curso grátis da Escola de Aplicativos"}
::

## Quanto custa o Supabase em 2026? (A Conta Real que Não Aparece no Banner)

Quem pesquisa por **Supabase é gratuito** ou **Supabase preço** vê inicialmente dois números: **US$ 0 no plano Free** e **US$ 25/mês no plano Pro**. Porém, para quem constrói múltiplos micro-SaaS, tem ambientes de homologação (*staging*) ou armazena mídias (imagens, vídeos de aulas, áudios de WhatsApp), a cobrança real funciona por **Compute Add-ons + Excedentes**:

| Item da Fatura | Plano Supabase Free (US$ 0) | Plano Supabase Pro (Base US$ 25/mês) | Onde o Vibe Coder é surpreendido |
| --- | --- | --- | --- |
| **Disponibilidade (Pausa)** | **Pausa após 7 dias sem uso** | Sempre ativo | Seu MVP ou portfólio sai do ar sozinho se passar uma semana com pouco tráfego. |
| **Limite de Projetos Ativos** | Máximo de **2 projetos** | 1 projeto Micro incluso nos US$ 10 de crédito Compute | Se você tiver 1 SaaS com Produção + Staging + 2 micro-SaaS extras (4 projetos), paga **+US$ 30/mês** só de instâncias Micro. |
| **Tamanho do Banco (Disco)** | Limite rígido de **500 MB (0,5 GB)** | 8 GB inclusos (depois **US$ 0,125/GB**) | Logs de eventos, webhooks e vetores de IA (`pgvector`) estouram 500 MB rapidamente. |
| **Storage de Arquivos** | Limite de **1 GB** | 100 GB inclusos (depois **US$ 0,021/GB**) | Armazenamento barato na entrada, mas caro na saída (veja o Egress abaixo). |
| **Tráfego de Saída (Egress)** | Limite de **5 GB/mês** | 250 GB inclusos (depois **US$ 0,09/GB**) | **O maior vilão:** como o Supabase roda sobre a AWS, servir vídeos, imagens ou PDFs custa US$ 90 a cada 1 TB extra transferido! |
| **Usuários Ativos (MAU Auth)** | Até 50.000 MAU | 100.000 MAU inclusos (depois **US$ 0,00325/MAU**) | Comunidades grandes e apps B2C pagam por usuário logado no mês. |

::callout{type="warning" title="Simule agora na Calculadora Interativa do Portal"}
Quer ver quanto o seu projeto vai pagar em Reais (com cotação do cartão e IOF) e comparar com uma arquitetura sem taxa de saída? Abra a nossa **[Calculadora Gratuita de Preço e Limites do Supabase](/ferramentas/calculadora-custo-supabase)**.
::

## O Grande Perigo no Lovable e Bolt: `anon_key` no Navegador + RLS Mal Configurado

Quando você pede ao **Lovable** ou ao **Bolt.new** para criar um sistema, o código gerado conecta o navegador do usuário (React/Vite) diretamente ao Supabase usando duas variáveis públicas: `SUPABASE_URL` e `SUPABASE_ANON_KEY`.

Muitos iniciantes acham que a `anon_key` é secreta, mas **ela fica visível para qualquer pessoa que abrir a aba Network do navegador**. No modelo do Supabase, a única barreira que impede um visitante mal-intencionado de ler a tabela de clientes, alterar o saldo da própria conta ou apagar registros de outros usuários é o **RLS (*Row Level Security*)** dentro do PostgreSQL.

Na prática, auditando dezenas de projetos de vibe coding, encontramos sempre os mesmos 3 erros fatais:

1. **Tabela criada por migration de IA sem `ENABLE ROW LEVEL SECURITY`:** qualquer chamada `supabase.from('assinaturas').select('*')` no console do navegador devolve todas as vendas da empresa;
2. **Política `USING (true)` gerada pela IA "para fazer o código funcionar":** quando o agente recebe um erro `42501 (permission denied)` durante o vibe coding, o atalho mais comum que o LLM toma é criar uma policy pública liberando leitura ou escrita irrestrita;
3. **Coluna de cargo (`role = 'admin'`) editável pelo próprio usuário:** o usuário roda um `update({ role: 'admin' })` pelo console do navegador porque a policy de `UPDATE` checava apenas `auth.uid() = id`, sem travar quais colunas podiam ser alteradas.

::code-demo{language="sql" filename="blindagem-rls-supabase.sql (Como deve ser no Supabase vs o erro comum da IA)"}
```sql
-- ❌ O ERRO COMUM QUE A IA FAZ NO VIBE CODING PARA "SUMIR O ERRO":
ALTER TABLE public.pedidos ENABLE ROW LEVEL SECURITY;
CREATE POLICY "Permitir leitura geral" ON public.pedidos
  FOR SELECT USING (true); -- VAZA TODOS OS PEDIDOS DO BANCO!

-- ✅ COMO PROTEGER NO SUPABASE (AULA 08 DO NOSSO CURSO GRÁTIS):
CREATE POLICY "Cliente lê apenas os próprios pedidos" ON public.pedidos
  FOR SELECT TO authenticated
  USING ((select auth.uid()) = user_id);
```
::

::read-more{slug="curso-gratis-supabase" label="Assista à Aula 08 do Curso Grátis de Supabase: RLS e proteção de chaves de API" placement="mid_content"}

## A Nova Perspectiva: Por que migrar (ou começar) com Cloudflare Workers + R2 + SurrealDB?

Se o Supabase é ótimo para o primeiro protótipo, o que usam os sistemas que precisam rodar com **custo baixo em escala, segurança blindada no servidor e agentes de IA nativos**?

Na Escola de Aplicativos (e em todo o nosso próprio ecossistema em produção), substituímos a dependência de um único BaaS caro por três peças que trabalham em perfeita harmonia:

### 1. Fronteira de Segurança no Servidor: Cloudflare Workers + Better Auth
Em vez de deixar o navegador conversar direto com o banco de dados usando uma chave pública, todas as requisições passam por uma camada de API ultrarrápida no **Cloudflare Workers** (BFF — *Backend-for-Frontend*).
- O navegador nunca vê credenciais do banco;
- A validação de dados acontece no servidor com **Zod**;
- A autenticação roda com **Better Auth**, dando controle total sobre sessões, organizações multi-tenant e 2FA a **custo R$ 0,00 por usuário ativo (MAU)**;
- Com US$ 5/mês no plano Workers Paid, você roda dezenas de Workers/projetos sem pagar +US$ 10 por ambiente adicional.

### 2. Fim da Taxa de Saída (Zero Egress): Cloudflare R2
Em vez de pagar **US$ 0,09 por GB** de saída no Storage do Supabase (que repassa o custo da AWS), todos os arquivos, fotos de perfil, PDFs e vídeos ficam no **[Cloudflare R2](/ferramentas/calculadora-cloudflare-r2)**.
- Você ganha **10 GB gratuitos todos os meses**;
- O armazenamento excedente custa apenas **US$ 0,015/GB**;
- **O tráfego de saída (Egress) é US$ 0,00 para sempre**, economizando milhares de reais por ano quando seu produto ou área de membros cresce.

### 3. O Banco Multimodelo para a Era dos Agentes: SurrealDB 4 + SurrealQL
Quando você constrói um SaaS moderno ou uma operação de infoproduto com IA no Supabase, o Postgres obriga você a separar o mundo em pedaços: tabelas relacionais de um lado, vetores no `pgvector`, relacionamentos complexos cheios de `JOINs` lentos e serviços externos de cache.

No **[SurrealDB 4](/blog/surrealdb-4-earth-saas-agentes-ia)**, você tem um motor multimodelo escrito em Rust onde **documentos tipados (`SCHEMAFULL`), relações de grafo nativas (`RELATE`), busca textual (`BM25`) e busca vetorial (`HNSW`) vivem no mesmo registro e respondem em uma única query SurrealQL**:

::code-demo{language="surql" filename="surrealdb-vs-postgres-join.surql (Grafo + Vetor + Regra de Negócio em 1 Query)"}
```surql
-- Em vez de 4 JOINs SQL + pgvector separado, em SurrealQL você caminha pelo grafo
-- e busca na memória vetorial do agente em uma única instrução:
SELECT
  id,
  resumo,
  vector::similarity::cosine(embedding, $vetor_duvida) AS score,
  <-gerou_memoria<-conversa->comprou->produto.{ titulo, slug } AS produtos_do_aluno
FROM memoria_episodio
WHERE lead = $lead_id
  AND embedding <|5, 64|> $vetor_duvida
ORDER BY score DESC;
```
::

::read-more{slug="memoria-agentes-surrealql-infoprodutos" label="Veja o tutorial completo: Memória de agentes em uma query SurrealQL para WhatsApp e Infoprodutos" placement="mid_content"}

## Quando ficar no Supabase vs. Quando ir para Cloudflare + SurrealDB?

Não existe bala de prata — existe a ferramenta certa para o estágio certo do seu negócio:

- **Fique (ou comece) no Supabase se:** você está validando um MVP rápido no Lovable/Bolt, tem apenas 1 projeto pequeno, baixo consumo de transferência de arquivos e já aplicou todas as regras de segurança do nosso [Curso Grátis de Supabase](/blog/curso-gratis-supabase);
- **Escolha ou migre para Cloudflare Workers + R2 + SurrealDB se:**
  1. Você cria múltiplos micro-SaaS ou tem ambientes de Produção/Staging separados e não quer pagar US$ 10–15 extras por projeto;
  2. Seu sistema entrega imagens, áudios de WhatsApp, PDFs ou vídeos e você quer **Zero Egress** no Cloudflare R2;
  3. Você está construindo **Agentes de IA** (atendimento, recuperação de vendas, copilotos B2B) que precisam combinar memória vetorial, histórico em grafo e permissões multi-tenant sem explodir a conta de RAM do Postgres;
  4. Você quer ser dono do seu próprio ecossistema comercial (checkout, área de membros, CRM e automações) sem depender de mensalidades empilhadas em dólar.

## Próximos Passos Gratuitos no Portal

1. **Faça a conta do seu projeto:** abra a [Calculadora de Preço e Limites do Supabase vs Cloudflare + SurrealDB](/ferramentas/calculadora-custo-supabase) e simule seu cenário em segundos;
2. **Blinde seu projeto atual:** assista às 14 aulas do [Curso Grátis de Supabase sem Mistério](/cursos/supabase-sem-misterio);
3. **Domine a nova stack IA-First:** comece hoje o [Curso Grátis de SurrealDB do Zero (19 aulas)](/cursos/surrealdb-do-zero) e o [Curso Grátis de Cloudflare Workers sem Mistério (16 aulas)](/cursos/cloudflare-workers-sem-misterio).

## Perguntas frequentes

### O que é o Supabase e para que serve?
O Supabase é uma plataforma de back-end como serviço (BaaS) open source baseada no banco de dados PostgreSQL. Ele oferece banco de dados SQL, autenticação de usuários, armazenamento de arquivos, Edge Functions e APIs REST/Realtime prontas para conectar a aplicativos web e mobile.

### Por que o banco de dados do Supabase pausa sozinho no plano grátis?
No plano gratuito (Free Tier), o Supabase pausa automaticamente qualquer projeto que fique 7 dias seguidos sem atividade relevante para economizar recursos de computação. Enquanto estiver pausado, seu site ou aplicativo fora do ar retorna erro de conexão até que você reative o banco manualmente no painel ou faça upgrade para o plano Pro (US$ 25/mês).

### Qual é o risco de segurança de usar Supabase com Lovable ou Bolt?
Projetos gerados no Lovable e no Bolt costumam acessar o Supabase diretamente do navegador usando a `anon_key`. Se você não configurar políticas rigorosas de *Row Level Security (RLS)* em todas as tabelas, qualquer visitante consegue ler, editar ou apagar dados de todos os seus clientes diretamente pelo navegador.

### Qual a melhor alternativa ao Supabase para SaaS e Agentes de IA em 2026?
Para quem busca menor custo em escala, segurança no servidor e recursos nativos para agentes de IA, a combinação **Cloudflare Workers** (API/BFF) + **Cloudflare R2** (armazenamento com Zero Egress) + **SurrealDB 4** (banco multimodelo com tabelas, grafos, busca textual BM25 e vetores HNSW em uma única query) + **Better Auth** é a alternativa mais completa.

### Como calcular o custo real do Supabase em reais?
Você pode usar gratuitamente a [Calculadora de Preço e Limites do Supabase da Escola de Aplicativos](/ferramentas/calculadora-custo-supabase), que simula a quantidade de projetos ativos, tamanho do banco, arquivos no Storage, tráfego de saída (Egress), usuários ativos (MAU) e converte a fatura para reais comparando com Cloudflare + SurrealDB.