[{"data":1,"prerenderedAt":907},["ShallowReactive",2],{"blog-pt-supabase-free-plan-limits":3,"blog-index-pt":560},{"id":4,"title":5,"body":6,"category":513,"cover":514,"coverAlt":515,"description":516,"draft":517,"extension":518,"faq":519,"image":537,"keywords":538,"meta":549,"navigation":550,"ogTitle":5,"path":551,"published":552,"seo":553,"stem":554,"tldr":555,"updated":552,"__hash__":559},"blog_pt\u002Fblog\u002Fsupabase-free-plan-limits.md","Quanto custa o Supabase? Os limites do plano gratuito",{"type":7,"value":8,"toc":499},"minimark",[9,13,16,19,22,33,38,41,139,142,146,149,157,163,166,189,203,210,214,217,220,234,240,244,247,255,258,262,265,351,354,367,370,375,379,382,385,388,393,397,406,414,418,423,455,467,471,491],[10,11,12],"p",{},"O seu app roda num projeto do Supabase, provavelmente um criado no plano\ngratuito no dia em que o Lovable ou o Bolt pediu para você conectar um banco de\ndados. Ele funciona há meses. Aí chega um e-mail dizendo que a sua organização\npassou da cota de uso, ou um cliente escreve contando que o botão de cadastro\nnão faz nada, e você vai procurar o que o plano gratuito permite de verdade, e\nquanto custa o Supabase quando ele deixa de ser grátis.",[10,14,15],{},"Os limites do plano gratuito do Supabase são fáceis de achar. O que acontece\nquando você passa de cada um é muito mais difícil de achar, e é diferente em\ncada linha. Um impede o seu app de salvar qualquer coisa enquanto as páginas\ncontinuam carregando. Outro pode desligar todos os projetos que você tem. Outro\ndesarma quando ninguém apareceu por uma semana.",[10,17,18],{},"É aqui que a comparação de sempre erra. Ela trata o Pro como o plano gratuito\ncom números maiores, e recomenda mudar quando algum desses números acaba. Num\napp com usuários de verdade, o motivo para pagar costuma chegar antes, e ele não\naparece em nenhum gráfico de uso: o plano gratuito não guarda nenhuma cópia do\nseu banco de dados, e os $25 que acabam com a pausa são os mesmos $25 que ligam\nos backups diários.",[10,20,21],{},"Pense no plano gratuito como um quadro de luz. Cada limite é um disjuntor, e a\npergunta que vale fazer sobre cada um é qual circuito ele corta quando desarma.",[10,23,24,25,32],{},"Todos os números abaixo foram lidos na\n",[26,27,31],"a",{"href":28,"rel":29},"https:\u002F\u002Fsupabase.com\u002Fpricing",[30],"nofollow","página de preços"," e na documentação do Supabase\nem 29 de setembro de 2026. Os números são do Supabase e mudam, então leia de\nnovo lá no dia em que for decidir.",[34,35,37],"h2",{"id":36},"quais-são-os-limites-do-plano-gratuito-do-supabase","Quais são os limites do plano gratuito do Supabase?",[10,39,40],{},"Cinco limites de uso, uma regra sobre inatividade, um teto de projetos e uma\ncoisa que falta por completo. Este é o plano gratuito como o Supabase\napresenta, com o que cada linha faz quando você passa dela.",[42,43,44,60],"table",{},[45,46,47],"thead",{},[48,49,50,54,57],"tr",{},[51,52,53],"th",{},"Limite",[51,55,56],{},"Plano gratuito",[51,58,59],{},"Quando você passa dele",[61,62,63,75,86,96,106,117,128],"tbody",{},[48,64,65,69,72],{},[66,67,68],"td",{},"Tamanho do banco de dados",[66,70,71],{},"500 MB por projeto",[66,73,74],{},"Esse projeto vira somente leitura: as páginas carregam, nada é salvo",[48,76,77,80,83],{},[66,78,79],{},"Egress",[66,81,82],{},"5 GB por mês, mais 5 GB do cache",[66,84,85],{},"Um aviso, um período de carência e depois restrições",[48,87,88,91,94],{},[66,89,90],{},"Armazenamento de arquivos",[66,92,93],{},"1 GB",[66,95,85],{},[48,97,98,101,104],{},[66,99,100],{},"Usuários ativos mensais",[66,102,103],{},"50.000",[66,105,85],{},[48,107,108,111,114],{},[66,109,110],{},"Inatividade",[66,112,113],{},"7 dias",[66,115,116],{},"O projeto é pausado",[48,118,119,122,125],{},[66,120,121],{},"Projetos ativos",[66,123,124],{},"2",[66,126,127],{},"Você não consegue criar um terceiro",[48,129,130,133,136],{},[66,131,132],{},"Backups automáticos",[66,134,135],{},"Nenhum",[66,137,138],{},"Não existe nenhuma cópia para restaurar",[10,140,141],{},"As linhas dependem de dois tipos de disjuntor. O limite do banco corta um\ncircuito num projeto, no momento em que desarma. Egress, armazenamento e\nusuários ficam no disjuntor geral. O Supabase chama isso de Fair Use Policy, ela\ncobre todos os projetos da organização e desarma devagar: primeiro vêm um\ne-mail para o seu endereço de cobrança e um período de carência.",[34,143,145],{"id":144},"o-que-acontece-quando-você-chega-ao-limite-de-500-mb","O que acontece quando você chega ao limite de 500 MB?",[10,147,148],{},"O seu banco de dados entra em modo somente leitura. Os visitantes continuam\nnavegando, porque a leitura ainda funciona, e tudo o que salva alguma coisa\nfalha.",[10,150,151,152,156],{},"Um cadastro é uma gravação. Também são um pedido novo, um perfil editado, uma\nmensagem enviada e um formulário preenchido. Em modo somente leitura o Postgres\nrecusa cada uma delas, e as requisições do seu app voltam com o erro\n",[153,154,155],"code",{},"cannot execute INSERT in a read-only transaction",". Num app feito com um\nconstrutor de IA, quem clica pode ver isso como um carregamento que não termina,\nou como nada. As páginas que continuam carregando são o que torna isso difícil\nde perceber. Por fora o app parece normal, e ele parou de receber qualquer coisa\nnova.",[158,159],"diagram",{"alt":160,"caption":161,"src":162},"Um banco de dados cheio até a linha do limite. As leituras saem pela direita e chegam a uma tela, com um visto. As linhas novas que chegam pela esquerda param numa barreira na parede do banco, cada uma riscada.","Aos 500 MB o banco continua respondendo e para de aceitar. Tudo o que um visitante salva é uma gravação.","\u002Fblog\u002Fsupabase-free-plan-limits\u002Freads-out-writes-refused-1600x620.png",[10,164,165],{},"Três coisas sobre os 500 MB pegam as pessoas de surpresa:",[167,168,169,177,183],"ul",{},[170,171,172,176],"li",{},[173,174,175],"strong",{},"O que conta são os seus dados, não o disco."," O Supabase mede as suas\ntabelas, índices e views materializadas. O projeto gratuito fica em 1 GB de\ndisco, e o espaço acima de 500 MB não está disponível para você.",[170,178,179,182],{},[173,180,181],{},"Uma parte já está ocupada antes de você começar."," Um projeto novo já tem\npor volta de 40 a 60 MB antes da sua primeira linha, o que o Supabase atribui\nàs extensões e aos schemas que ele instala.",[170,184,185,188],{},[173,186,187],{},"Apagar linhas não devolve o espaço na hora."," O Postgres marca as linhas\napagadas como removidas e recupera o espaço quando roda um vacuum, então uma\nlimpeza pode parecer que não fez nada.",[10,190,191,192,197,198,202],{},"Há duas saídas. Passar para o Pro, onde cada projeto tem 8 GB de disco e pode\ncrescer além disso quando o Spend Cap está desligado. Ou abrir espaço: o\n",[26,193,196],{"href":194,"rel":195},"https:\u002F\u002Fsupabase.com\u002Fdocs\u002Fguides\u002Fplatform\u002Fdatabase-size",[30],"guia sobre o tamanho do banco","\ndo Supabase mostra como desligar o modo somente leitura por uma sessão no SQL\nEditor, apagar o que você não precisa mais, rodar um vacuum e ligar as gravações\nde novo. Faça uma cópia antes de apagar qualquer coisa, porque no plano gratuito\nninguém mais tem uma.\n",[26,199,201],{"href":200},"\u002Fblog\u002Fback-up-supabase-free-tier","Fazer uma pelo painel"," não precisa de\nterminal.",[10,204,205,206,209],{},"Existe ainda um segundo disjuntor, mais lento, para o tamanho do banco. O\nSupabase acompanha o tamanho dos bancos da organização pela média do mês de\ncobrança, e uma organização acima dessa cota pode ser restringida, com toda\nrequisição respondida com ",[153,207,208],{},"402",". Como é uma média, diminuir o banco hoje não\ntira a restrição. Quem tira é o mês de cobrança seguinte, e também uma mudança\nde plano.",[34,211,213],{"id":212},"o-que-conta-como-egress-no-plano-gratuito-do-supabase","O que conta como egress no plano gratuito do Supabase?",[10,215,216],{},"Cada byte que os seus projetos mandam para fora. Os 5 GB por mês do plano\ngratuito são divididos pela organização inteira, e é um limite que você pode\natingir sem fazer nada fora do comum.",[10,218,219],{},"O Supabase conta em todos os serviços: as linhas que o seu app lê pela API, os\nlogins, os arquivos que os seus usuários baixam do Storage, as respostas das\nEdge Functions e as atualizações do Realtime. Arquivos servidos a partir do\ncache do Supabase contam contra outros 5 GB só deles, e esses valem apenas para\no Storage.",[10,221,222,223,228,229,233],{},"Backups também contam. Toda cópia feita de fora do Supabase é um download, seja\nqual for a ferramenta que a faz, a nossa incluída, e as\n",[26,224,227],{"href":225,"rel":226},"https:\u002F\u002Fsupabase.com\u002Fdocs\u002Fguides\u002Fplatform\u002Fmanage-your-usage\u002Fegress",[30],"próprias dicas do Supabase para reduzir o egress","\ncitam fazer backup de menos tabelas, ou com menos frequência. Uma cópia diária\nde um banco no limite de 500 MB movimenta cerca de 15 GB por mês. Isso é três\nvezes a cota gratuita antes de um único visitante carregar uma página.\n",[26,230,232],{"href":231},"\u002Fblog\u002Fsupabase-backup-github-action","O egress que um backup agendado gasta","\nestá detalhado lá por tamanho de banco, se você está escolhendo de quanto em\nquanto tempo fazer um.",[10,235,236,237,239],{},"Passar da cota não desliga nada no mesmo dia. O Supabase manda um e-mail para o\nseu endereço de cobrança e abre um período de carência. Se você continuar\nacima, as restrições que o FAQ de cobrança dele lista são pausar projetos,\ncolocar bancos em somente leitura e responder toda requisição de API com o\ncódigo de status ",[153,238,208],{},", e em geral elas valem para todos os projetos da\norganização. Elas caem quando começa o ciclo de cobrança seguinte, ou na hora\nse você muda de plano. O período de carência, além disso, só vale uma vez.\nDepois dele, um segundo estouro é restringido na hora, até você ficar abaixo\ndos limites por vários ciclos de cobrança.",[34,241,243],{"id":242},"por-que-o-plano-gratuito-pausa-um-projeto-parado","Por que o plano gratuito pausa um projeto parado?",[10,245,246],{},"Porque ninguém usou. Um projeto gratuito com pouca atividade no banco durante\nsete dias é pausado, o que faz dele o único disjuntor do quadro que desarma\nquando nada acontece.",[10,248,249,250,254],{},"O Supabase manda um e-mail de aviso mais ou menos uma semana antes e uma\nconfirmação quando pausa. As suas páginas costumam continuar carregando, porque\nquem as serve é o seu construtor, enquanto tudo o que está por trás para de\nresponder. Uma loja sazonal, um app entre dois lançamentos, uma ferramenta que\num cliente abre uma vez por mês: para essa regra, todos parecem inativos. Você\ntem um ano para apertar Resume, e\n",[26,251,253],{"href":252},"\u002Fblog\u002Fsupabase-project-paused-recover","o que fazer quando um projeto já está pausado","\ntem um artigo só para isso.",[10,256,257],{},"Projetos num plano pago nunca são pausados por inatividade.",[34,259,261],{"id":260},"quanto-custa-o-supabase-pro-e-o-que-ele-acrescenta","Quanto custa o Supabase Pro, e o que ele acrescenta?",[10,263,264],{},"$25 por mês por organização, com $10 em créditos de computação incluídos, que\ncobrem um projeto na instância Micro que o Supabase usa por padrão.",[42,266,267,279],{},[45,268,269],{},[48,270,271,273,276],{},[51,272],{},[51,274,275],{},"Gratuito",[51,277,278],{},"Pro",[61,280,281,292,302,311,320,331,340],{},[48,282,283,286,289],{},[66,284,285],{},"Banco de dados",[66,287,288],{},"500 MB, depois somente leitura",[66,290,291],{},"8 GB de disco, mais com o Spend Cap desligado",[48,293,294,296,299],{},[66,295,79],{},[66,297,298],{},"5 GB por mês",[66,300,301],{},"250 GB por mês",[48,303,304,306,308],{},[66,305,90],{},[66,307,93],{},[66,309,310],{},"100 GB",[48,312,313,315,317],{},[66,314,100],{},[66,316,103],{},[66,318,319],{},"100.000",[48,321,322,325,328],{},[66,323,324],{},"Pausa",[66,326,327],{},"Depois de uma semana parada",[66,329,330],{},"Nunca",[48,332,333,335,337],{},[66,334,132],{},[66,336,135],{},[66,338,339],{},"Diários, guardados por 7 dias",[48,341,342,345,348],{},[66,343,344],{},"Suporte",[66,346,347],{},"Comunidade",[66,349,350],{},"E-mail",[10,352,353],{},"Num app pequeno com usuários de verdade, são duas linhas dessa tabela que\ndecidem. A pausa acaba e os backups diários começam, pelos mesmos $25. Um app\ncom algumas centenas de usuários pode ficar bem abaixo de todos os limites do\nplano gratuito e mesmo assim perder uma semana de trabalho por causa de uma\nmigração que deu errado, sem nenhuma cópia para onde voltar.",[10,355,356,357,361,362,366],{},"Os backups que o Pro liga ficam dentro da sua conta do Supabase, cobrem o banco\nde dados e voltam sete dias.\n",[26,358,360],{"href":359},"\u002Fblog\u002Fdoes-supabase-back-up-my-database","O Supabase faz backup do meu banco de dados?","\nexplica o que essa cópia aguenta. Para voltar a um minuto específico em vez de\nà noite passada, o Supabase vende a recuperação para um ponto no tempo como\ncomplemento, a $100 por mês além do Pro, e\n",[26,363,365],{"href":364},"\u002Fblog\u002Fsupabase-point-in-time-recovery","o que esse complemento compra"," tem os\ndetalhes.",[10,368,369],{},"O Pro também muda o que um limite faz. Ele vem com um Spend Cap, ligado por\npadrão, e com o limite de gastos ligado o Pro funciona como o plano gratuito com um\nteto mais alto: passe de uma cota e você recebe o mesmo período de carência e as\nmesmas restrições. Desligue o limite e os disjuntores viram medidores. Nada para,\ne o excedente é cobrado pelas tarifas da página de preços do Supabase. Escolha\npelo que doeria mais para você, uma conta maior ou um app que para.",[158,371],{"alt":372,"caption":373,"src":374},"Dois fluxos cruzam o mesmo limite tracejado. Na linha de cima há um disjuntor desarmado no limite e nada passa dele. Na linha de baixo há um medidor no limite, o fluxo continua através dele, e mais adiante moedas se empilham.","Com o Spend Cap ligado, passar de uma cota para tudo. Sem ele, o excedente entra na conta.","\u002Fblog\u002Fsupabase-free-plan-limits\u002Fbreaker-or-meter-1600x620.png",[34,376,378],{"id":377},"mudar-um-projeto-do-supabase-para-o-pro-muda-todos-os-outros","Mudar um projeto do Supabase para o Pro muda todos os outros?",[10,380,381],{},"Sim. O plano pertence à organização, e todos os projetos dentro dela mudam\njuntos.",[10,383,384],{},"O Supabase não deixa misturar projetos gratuitos e pagos na mesma organização.\nSe o seu app em produção divide uma com um projeto de teste que você esqueceu,\na mudança coloca os dois no Pro, e o segundo soma cerca de $10 por mês de\ncomputação aos $25, porque os créditos incluídos cobrem um projeto.",[10,386,387],{},"A solução não custa nada. Antes de mudar de plano, mova o projeto que deve\ncontinuar gratuito para uma organização só dele. O Supabase chama isso de\ntransferência de projeto, e você começa pelas configurações General desse\nprojeto.",[158,389],{"alt":390,"caption":391,"src":392},"O contorno de uma organização com dois projetos, os dois acesos na cor paga, com uma moeda acima de cada um. Ao lado, o mesmo par depois de uma transferência: o projeto em produção sozinho numa organização acesa com uma moeda, e o de teste numa organização separada, apagada, sem nenhuma.","O plano é definido na organização. Um projeto que deve continuar gratuito precisa de uma organização só dele.","\u002Fblog\u002Fsupabase-free-plan-limits\u002Fone-organization-one-plan-1600x620.png",[34,394,396],{"id":395},"o-que-nenhum-plano-do-supabase-copia-para-você","O que nenhum plano do Supabase copia para você?",[10,398,399,400,405],{},"Os arquivos que os seus usuários enviaram, as suas Edge Functions e as\nconfigurações do seu projeto. Os backups de todos os planos são uma cópia do\nbanco de dados, e a\n",[26,401,404],{"href":402,"rel":403},"https:\u002F\u002Fsupabase.com\u002Fdocs\u002Fguides\u002Fplatform\u002Fbackups",[30],"documentação de backups"," do\nSupabase diz com todas as letras que eles não incluem os objetos guardados pela\nStorage API.",[10,407,408,409,413],{},"Quando o Supabase restaura um backup num projeto novo, a lista dele do que\nprecisa ser configurado de novo à mão inclui os arquivos do Storage e as\nconfigurações dos buckets, as Edge Functions, as configurações de Auth e as\nchaves de API. Isso vale no plano gratuito, no Pro e em tudo acima deles. Os\navatares e PDFs nos seus buckets precisam de uma cópia própria, e\n",[26,410,412],{"href":411},"\u002Fblog\u002Fsupabase-storage-backup","como fazer backup do Supabase Storage"," mostra as\nformas de fazer uma.",[34,415,417],{"id":416},"onde-o-reeve-care-entra","Onde o Reeve Care entra",[10,419,420],{},[173,421,422],{},"O Care guarda uma cópia do seu banco de dados do Supabase fora da sua conta do\nSupabase, de forma agendada, seja qual for o seu plano do Supabase.",[167,424,425,431,437,443,449],{},[170,426,427,430],{},[173,428,429],{},"Diária no Care, e mais frequente nos planos acima dele."," Uma cópia que\nfalha manda um e-mail para você, e é assim que um projeto pausado é notado na\nmesma noite em que para de responder.",[170,432,433,436],{},[173,434,435],{},"A cópia fica fora da sua conta do Supabase."," Criptografada, num\narmazenamento que nós mantemos, então uma pausa, uma restrição ou um login\nperdido deixam os seus backups onde estavam.",[170,438,439,442],{},[173,440,441],{},"Toda cópia é lida de volta antes de contar."," A data no seu painel é a da\núltima cópia que passou nessa verificação.",[170,444,445,448],{},[173,446,447],{},"Restaurar é um botão",", e antes ele tira um retrato do estado atual, então\na própria restauração tem um desfazer.",[170,450,451,454],{},[173,452,453],{},"Os arquivos que os seus usuários enviaram vêm junto",", assim que você\nconecta uma credencial do Storage. É uma segunda chave, pedida à parte, porque\na chave que o Supabase emite para o Storage pode gravar além de ler.",[10,456,457,458,461,462,466],{},"O Care começa em $49 por mês para um app. É um preço de tabela, e a\n",[26,459,31],{"href":460},"\u002Fpricing"," às vezes fica abaixo dele e nunca acima. No Pro,\nmantenha também os backups diários do próprio Supabase ligados, para ter duas\ncópias em dois lugares. A cópia, a verificação e a restauração estão desenhadas\npasso a passo na ",[26,463,465],{"href":464},"\u002Fsupabase-backups","página de backups do Supabase",".",[34,468,470],{"id":469},"o-que-fazer-esta-semana","O que fazer esta semana",[472,473,474],"key-takeaways",{},[167,475,476,479,482,485,488],{},[170,477,478],{},"Abra a página Usage da sua organização no painel do Supabase e leia três números: o tamanho do banco, o egress do mês passado e o armazenamento de arquivos. Cada um é uma linha da primeira tabela lá em cima.",[170,480,481],{},"Se o banco estiver chegando perto dos 500 MB, escolha agora entre mudar de plano e fazer uma limpeza, antes que o modo somente leitura escolha por você.",[170,483,484],{},"Antes de mudar de plano, veja quais projetos dividem a organização e mova os que devem continuar gratuitos para uma organização só deles.",[170,486,487],{},"Se você ficar no plano gratuito, guarde a sua própria cópia do banco em algum lugar fora do Supabase, como a própria documentação do Supabase recomenda.",[170,489,490],{},"Se você passar para o Pro, olhe no dia seguinte em Database e depois Backups e confirme que a primeira cópia diária está lá.",[10,492,493,494,498],{},"Antes de fechar esta aba, abra a página Usage e encontre o número que está mais\nperto do limite. Esse é o disjuntor mais perto de desarmar. A\n",[26,495,497],{"href":496},"\u002Fchecklist","lista de segurança de 10 minutos"," cobre os backups junto com o\nresto do que vale confirmar num app de que as pessoas dependem.",{"title":500,"searchDepth":501,"depth":501,"links":502},"",3,[503,505,506,507,508,509,510,511,512],{"id":36,"depth":504,"text":37},2,{"id":144,"depth":504,"text":145},{"id":212,"depth":504,"text":213},{"id":242,"depth":504,"text":243},{"id":260,"depth":504,"text":261},{"id":377,"depth":504,"text":378},{"id":395,"depth":504,"text":396},{"id":416,"depth":504,"text":417},{"id":469,"depth":504,"text":470},"Noções de segurança","\u002Fblog\u002Fsupabase-free-plan-limits\u002Fcover-1200x630.png","Um quadro de luz com todos os disjuntores ligados menos um, que desarmou e fica sobre uma faixa âmbar.","Quanto custa o Supabase: o plano gratuito tem 500 MB de banco, 5 GB de egress e nenhum backup. O que acontece em cada limite e o que o Pro de $25 muda.",false,"md",[520,523,525,528,531,534],{"q":521,"a":522},"Quanto custa o Supabase?","O plano gratuito não custa nada. O Pro começa em $25 por mês por organização e inclui $10 em créditos de computação, o bastante para um projeto na instância Micro padrão. Cada projeto a mais num plano pago soma cerca de $10 por mês de computação. Team e Enterprise ficam acima do Pro, para empresas que precisam de coisas como login único e relatórios de conformidade. Confira os valores na página de preços do Supabase no dia em que for decidir, porque eles são do Supabase e podem mudar.",{"q":37,"a":524},"Em 29 de setembro de 2026 o Supabase listava 500 MB de banco de dados por projeto, 1 GB de armazenamento de arquivos, 5 GB de egress por mês mais 5 GB de egress servido do cache, 50.000 usuários ativos mensais e dois projetos ativos. Um projeto com pouca atividade durante uma semana é pausado, e o plano gratuito não faz nenhum backup automático.",{"q":526,"a":527},"O que acontece quando eu chego ao limite de 500 MB?","O projeto entra em modo somente leitura. As páginas que só leem dados continuam funcionando, e tudo o que grava falha com o erro cannot execute INSERT in a read-only transaction: cadastros, pedidos, formulários salvos. Ou você passa para o Pro, ou desliga o modo somente leitura por uma sessão no SQL Editor, apaga o que não precisa e roda um vacuum para que o espaço seja liberado de verdade. Faça uma cópia antes de apagar qualquer coisa.",{"q":529,"a":530},"O plano gratuito do Supabase inclui backups?","Não. O Supabase lista os backups automáticos como não incluídos no plano gratuito, e a documentação dele recomenda que projetos gratuitos exportem os dados com regularidade usando a CLI do Supabase e guardem essa cópia em outro lugar. Os backups diários começam no Pro, que guarda os últimos sete.",{"q":532,"a":533},"O Supabase Pro vale a pena para um app pequeno?","Se há pessoas de verdade dependendo dele, quase sempre sim, e raramente por causa do espaço. O Pro acaba com a pausa semanal e liga os backups diários. Um app com algumas centenas de usuários pode ficar bem abaixo de todos os limites gratuitos e mesmo assim perder uma semana de trabalho por causa de uma migração que deu errado, e no plano gratuito não existe nenhuma cópia para onde voltar.",{"q":535,"a":536},"Backups contam no meu egress do Supabase?","Sim, quando a cópia é feita de fora do Supabase. Egress é cada byte que os seus projetos mandam para fora, e um backup é um download. As próprias dicas do Supabase para reduzir o egress incluem fazer backup de menos tabelas ou com menos frequência. Uma cópia diária de um banco no limite de 500 MB movimenta cerca de 15 GB por mês, três vezes a cota gratuita, e o tráfego do seu próprio app sai dos mesmos 5 GB.","\u002Fblog\u002Fsupabase-free-plan-limits\u002Fcard-800x500.png",[539,540,541,542,543,544,545,546,547,548],"quanto custa o supabase","supabase preços","supabase preço","supabase é pago","limites do plano gratuito supabase","supabase limite 500 mb","supabase limite de egress","supabase plano pro preço","supabase modo somente leitura","quando migrar para o supabase pro",{},true,"\u002Fblog\u002Fsupabase-free-plan-limits","2026-09-29",{"title":5,"description":516},"blog\u002Fsupabase-free-plan-limits",[556,557,558],"Os limites do plano gratuito do Supabase são 500 MB de banco de dados, 1 GB de arquivos, 5 GB de egress por mês e 50.000 usuários ativos mensais, e ele não guarda nenhum backup automático do seu banco.","Cada limite para uma coisa diferente. Aos 500 MB o seu banco vira somente leitura e os cadastros falham. Acima da cota de egress, depois de um período de carência, todos os projetos da sua organização podem ser restringidos.","O Pro custa $25 por mês. O mesmo pagamento que acaba com a pausa semanal também liga os backups diários, e num app com usuários de verdade esse costuma ser o motivo para mudar.","G4VYTGJ8WJKS8ezRO7lLxjPsrDXo08ktijyYoguiSUs",[561,567,573,579,585,591,597,603,609,615,621,627,628,635,640,646,651,657,663,669,675,681,687,693,699,705,711,717,722,727,732,738,744,750,756,762,768,774,780,786,792,798,804,809,815,821,827,833,839,845,851,857,863,869,874,880,885,891,896,902],{"path":562,"title":563,"description":564,"published":565,"category":513,"image":566,"draft":517},"\u002Fblog\u002Fbase44-security-scan","Scan de segurança do Base44: o que só ele enxerga","O scan de segurança do Base44 verifica sete tipos de problema por dentro. Esta é a metade que ele lê e mais ninguém, e a metade que ele nunca olha.","2026-10-10","\u002Fblog\u002Fbase44-security-scan\u002Fcard-800x500.png",{"path":568,"title":569,"description":570,"published":571,"category":513,"image":572,"draft":517},"\u002Fblog\u002Fapi-key-leaked-what-to-do","Sua chave de API vazou. A ordem em que agir","Uma chave de API vazou e você não sabe o que fazer primeiro. Nem toda chave no seu frontend é um vazamento, e a ordem importa mais que a pressa.","2026-10-09","\u002Fblog\u002Fapi-key-leaked-what-to-do\u002Fcard-800x500.png",{"path":574,"title":575,"description":576,"published":577,"category":513,"image":578,"draft":517},"\u002Fblog\u002Finfinite-recursion-in-policy-for-relation","\"Infinite recursion detected in policy\" sem desligar o RLS","\"Infinite recursion detected in policy for relation\" significa que a sua policy perguntou à tabela que ela protege. Veja como quebrar o círculo.","2026-10-08","\u002Fblog\u002Finfinite-recursion-in-policy-for-relation\u002Fcard-800x500.png",{"path":580,"title":581,"description":582,"published":583,"category":513,"image":584,"draft":517},"\u002Fblog\u002Fno-api-key-found-in-request","\"No API key found in request\" no Supabase, e a correção errada","\"No API key found in request\" significa que sua requisição chegou ao Supabase sem chave. Quase toda resposta aponta para as regras do seu banco.","2026-10-07","\u002Fblog\u002Fno-api-key-found-in-request\u002Fcard-800x500.png",{"path":586,"title":587,"description":588,"published":589,"category":513,"image":590,"draft":517},"\u002Fblog\u002Fis-base44-safe","O Base44 é seguro? O que vimos em 5.442 apps Base44","O Base44 é seguro? Rodamos nove verificações em 5.442 apps Base44 no ar. Quase todas tiraram B por motivos que o dono nunca escolheu.","2026-10-06","\u002Fblog\u002Fis-base44-safe\u002Fcard-800x500.png",{"path":592,"title":593,"description":594,"published":595,"category":513,"image":596,"draft":517},"\u002Fblog\u002Fmove-a-secret-to-an-edge-function","Esconder uma chave de API: mova para uma Edge Function do Supabase","Esconder uma chave de API é tirá-la do navegador, e uma Edge Function do Supabase é o menor lugar para guardá-la. Dois passos em volta pesam mais.","2026-10-05","\u002Fblog\u002Fmove-a-secret-to-an-edge-function\u002Fcard-800x500.png",{"path":598,"title":599,"description":600,"published":601,"category":513,"image":602,"draft":517},"\u002Fblog\u002Fenv-file-exposed-on-your-server","Seu arquivo .env está exposto? Os doze caminhos para testar","Seu arquivo .env está exposto no seu próprio servidor web? Doze endereços dizem isso em um minuto, e um acerto significa que tudo nele já é público.","2026-10-04","\u002Fblog\u002Fenv-file-exposed-on-your-server\u002Fcard-800x500.png",{"path":604,"title":605,"description":606,"published":607,"category":513,"image":608,"draft":517},"\u002Fblog\u002Fis-v0-safe","Segurança do v0: os 1.790 aplicativos v0 escaneados tiraram A","A segurança do v0 medida em 1.790 aplicativos v0 no ar: todos tiraram A. Só 17 citavam um banco de dados, e é sobretudo isso que esse A mede.","2026-10-03","\u002Fblog\u002Fis-v0-safe\u002Fcard-800x500.png",{"path":610,"title":611,"description":612,"published":613,"category":513,"image":614,"draft":517},"\u002Fblog\u002Fis-bolt-safe","O Bolt é seguro? O que vimos em 1.123 aplicativos Bolt","O Bolt é seguro? Passamos 1.123 aplicativos Bolt no ar por nove verificações. A hospedagem saiu limpa. Os achados: chaves e tabelas abertas nos aplicativos.","2026-10-02","\u002Fblog\u002Fis-bolt-safe\u002Fcard-800x500.png",{"path":616,"title":617,"description":618,"published":619,"category":513,"image":620,"draft":517},"\u002Fblog\u002Fis-supabase-down-or-your-app","O Supabase caiu ou o problema é o seu app? Como saber","O Supabase caiu ou o problema é o seu app? Um projeto pausado, um banco cheio e um erro seu parecem iguais. Quatro verificações separam os casos.","2026-10-01","\u002Fblog\u002Fis-supabase-down-or-your-app\u002Fcard-800x500.png",{"path":622,"title":623,"description":624,"published":625,"category":513,"image":626,"draft":517},"\u002Fblog\u002Fdoes-supabase-encrypt-my-data","O Supabase criptografa meus dados? Sim. Veja o que isso impede","O Supabase criptografa os dados? Sim: AES-256 em repouso, TLS em trânsito, SOC 2 e ISO 27001. O que cada um cobre, e o vazamento que nenhum deles impede.","2026-09-30","\u002Fblog\u002Fdoes-supabase-encrypt-my-data\u002Fcard-800x500.png",{"path":551,"title":5,"description":516,"published":552,"category":513,"image":537,"draft":517},{"path":629,"title":630,"description":631,"published":632,"category":633,"image":634,"draft":517},"\u002Fblog\u002Ftest-your-supabase-backup","Teste o backup do seu Supabase antes do dia em que precisar","Como testar o backup do seu Supabase: restaurar num projeto de teste, contar as linhas, entrar e procurar a linha que falta num arquivo cortado.","2026-09-28","Backups","\u002Fblog\u002Ftest-your-supabase-backup\u002Fcard-800x500.png",{"path":231,"title":636,"description":637,"published":638,"category":633,"image":639,"draft":517},"Backup grátis do Supabase com uma GitHub Action, e a pegadinha","Um backup do Supabase com GitHub Action é grátis e serve para muitos apps. O workflow, a connection string certa e o egress de cada execução.","2026-09-27","\u002Fblog\u002Fsupabase-backup-github-action\u002Fcard-800x500.png",{"path":641,"title":642,"description":643,"published":644,"category":633,"image":645,"draft":517},"\u002Fblog\u002Fdownload-your-supabase-backup","Por que você não consegue baixar seu backup do Supabase","Você não consegue baixar seu backup do Supabase num projeto atual, porque a cópia diária é um snapshot físico. Como conferir e como ter uma cópia só sua.","2026-09-26","\u002Fblog\u002Fdownload-your-supabase-backup\u002Fcard-800x500.png",{"path":647,"title":648,"description":649,"published":644,"category":513,"image":650,"draft":517},"\u002Fblog\u002Fsupabase-permission-denied-for-table","Supabase \"permission denied for table\": o grant que falta","A partir de 30 de outubro, uma tabela nova no Supabase responde \"permission denied for table\" até receber um grant. O e-mail mostra só metade.","\u002Fblog\u002Fsupabase-permission-denied-for-table\u002Fcard-800x500.png",{"path":652,"title":653,"description":654,"published":655,"category":513,"image":656,"draft":517},"\u002Fblog\u002Fopen-api-endpoint-exposed","Um endpoint de API aberto é um problema? Leia o JSON","Seu scan apontou um endpoint de API aberto. Se isso importa depende do que voltou, e a maioria dos que encontramos era da própria plataforma.","2026-09-25","\u002Fblog\u002Fopen-api-endpoint-exposed\u002Fcard-800x500.png",{"path":658,"title":659,"description":660,"published":661,"category":513,"image":662,"draft":517},"\u002Fblog\u002Flovable-security-scan","Escaneamento de segurança do Lovable: o que ele não prova","Escaneamento de segurança do Lovable: o que o Quick scan e o Deep scan checam, quando cada um roda, e a única coisa que nenhum escaneamento por dentro prova.","2026-09-24","\u002Fblog\u002Flovable-security-scan\u002Fcard-800x500.png",{"path":664,"title":665,"description":666,"published":667,"category":633,"image":668,"draft":517},"\u002Fblog\u002Fsupabase-backup-auth-users","Por que seu dump do Supabase não tem usuários dentro","Rode supabase db dump sozinho e você recebe a forma do seu banco e nenhuma das linhas dele, sem o schema auth onde seus usuários moram.","2026-09-23","\u002Fblog\u002Fsupabase-backup-auth-users\u002Fcard-800x500.png",{"path":670,"title":671,"description":672,"published":673,"category":513,"image":674,"draft":517},"\u002Fblog\u002Fdomain-and-certificate-expiry","Domínio expirado, site fora do ar: o que acontece agora","Seu domínio expirou e seu site está fora do ar. O relógio que começa a correr, por que o certificado é o problema menor, e como conferir os dois.","2026-09-22","\u002Fblog\u002Fdomain-and-certificate-expiry\u002Fcard-800x500.png",{"path":676,"title":677,"description":678,"published":679,"category":513,"image":680,"draft":517},"\u002Fblog\u002Fis-lovable-safe","O Lovable é seguro? O que vimos em 18.554 aplicativos Lovable","O Lovable é seguro? Passamos 18.554 aplicativos Lovable no ar por nove verificações. A plataforma foi a mais limpa de cinco. Os achados estavam nos aplicativos.","2026-09-21","\u002Fblog\u002Fis-lovable-safe\u002Fcard-800x500.png",{"path":682,"title":683,"description":684,"published":685,"category":513,"image":686,"draft":517},"\u002Fblog\u002Fvibe-coded-app-security-checklist","O checklist de segurança do vibe coding, em nove verificações","Um checklist de segurança do vibe coding com nove itens, cada um verificável no seu app de fora por qualquer pessoa, e cada um com um teste de uma linha.","2026-09-20","\u002Fblog\u002Fvibe-coded-app-security-checklist\u002Fcard-800x500.png",{"path":688,"title":689,"description":690,"published":691,"category":513,"image":692,"draft":517},"\u002Fblog\u002Fstripe-secret-key-in-frontend","Uma chave secreta da Stripe no frontend pode mover dinheiro","Uma chave secreta da Stripe exposta no seu frontend pode reembolsar, cobrar e ler cada ficha de cliente que você tem. Sua chave pk_live_ é que deve estar aí.","2026-09-19","\u002Fblog\u002Fstripe-secret-key-in-frontend\u002Fcard-800x500.png",{"path":694,"title":695,"description":696,"published":697,"category":513,"image":698,"draft":517},"\u002Fblog\u002Fvite-and-next-public-env-vars","Variáveis de ambiente do Vite expostas: o prefixo diz publique isto","Variáveis de ambiente do Vite expostas no seu app: fizeram o que o prefixo pediu. VITE_ e NEXT_PUBLIC_ significam publique isto, e a IA nunca soube o custo.","2026-09-18","\u002Fblog\u002Fvite-and-next-public-env-vars\u002Fcard-800x500.png",{"path":700,"title":701,"description":702,"published":703,"category":513,"image":704,"draft":517},"\u002Fblog\u002Fbase44-source-maps","Segurança no Base44: o que um scan aponta e o que é seu para corrigir","Segurança no Base44 em 5.438 apps escaneados: três achados em quase todos são da plataforma, o source map é o selo do Base44, e a sua parte é uma lista curta.","2026-09-17","\u002Fblog\u002Fbase44-source-maps\u002Fcard-800x500.png",{"path":706,"title":707,"description":708,"published":709,"category":513,"image":710,"draft":517},"\u002Fblog\u002Fis-cursor-ai-safe","O Cursor AI é seguro? O editor, o código e o app que você publicou","O Cursor AI é seguro? Três perguntas em uma busca: o que o Cursor guarda, o que o código que ele escreve erra, e se o app que você publicou está aberto.","2026-09-16","\u002Fblog\u002Fis-cursor-ai-safe\u002Fcard-800x500.png",{"path":712,"title":713,"description":714,"published":715,"category":513,"image":716,"draft":517},"\u002Fblog\u002Fis-replit-safe","O Replit é seguro? O que vimos em 3.042 aplicativos Replit no ar","O Replit é seguro? Passamos 3.042 aplicativos Replit no ar por nove verificações externas. Os achados estavam no aplicativo publicado, não no host.","2026-09-15","\u002Fblog\u002Fis-replit-safe\u002Fcard-800x500.png",{"path":411,"title":718,"description":719,"published":720,"category":633,"image":721,"draft":517},"Supabase storage backup: sua cópia do banco não tem nenhum arquivo","Um Supabase storage backup é uma tarefa à parte. Os backups do banco guardam a lista dos seus arquivos e nenhum deles, então cada upload fica quebrado.","2026-09-14","\u002Fblog\u002Fsupabase-storage-backup\u002Fcard-800x500.png",{"path":364,"title":723,"description":724,"published":725,"category":633,"image":726,"draft":517},"Point-in-time recovery do Supabase: preço e limites","O point-in-time recovery do Supabase rebobina seu banco para qualquer segundo da última semana. Custa $100 por mês além do Pro e cobre só o banco.","2026-09-13","\u002Fblog\u002Fsupabase-point-in-time-recovery\u002Fcard-800x500.png",{"path":252,"title":728,"description":729,"published":730,"category":633,"image":731,"draft":517},"Projeto Supabase pausado? Seus dados continuam lá","O Supabase pausou seu projeto depois de uma semana sem atividade. Nada foi apagado, Restaurar fica ao lado do nome e você tem um ano antes disso mudar.","2026-09-12","\u002Fblog\u002Fsupabase-project-paused-recover\u002Fcard-800x500.png",{"path":733,"title":734,"description":735,"published":736,"category":513,"image":737,"draft":517},"\u002Fblog\u002Fsafest-ai-app-builder","Qual builder de apps com IA é mais seguro? 30.998 apps testados","Qual builder de apps com IA é mais seguro? Escaneamos 30.998 apps no ar do Lovable, Base44, Replit, v0 e Bolt. O builder não é o que decide sua nota.","2026-09-11","\u002Fblog\u002Fsafest-ai-app-builder\u002Fcard-800x500.png",{"path":739,"title":740,"description":741,"published":742,"category":513,"image":743,"draft":517},"\u002Fblog\u002Fenable-rls-on-every-supabase-table","Ative Row Level Security em toda tabela do Supabase e comprove","Ativar Row Level Security no Supabase sem política fecha a tabela por completo. Uma política sem a chave ligada não faz nada. Aqui está o SQL, e o teste.","2026-09-10","\u002Fblog\u002Fenable-rls-on-every-supabase-table\u002Fcard-800x500.png",{"path":745,"title":746,"description":747,"published":748,"category":513,"image":749,"draft":517},"\u002Fblog\u002Fsupabase-rls-disabled-in-public","Supabase \"RLS disabled in public\": o que o aviso não vê","O Supabase marca \"RLS disabled in public\" como erro. Ele não diz nada sobre a política de leitura que deixa a sua tabela igualmente aberta.","2026-09-09","\u002Fblog\u002Fsupabase-rls-disabled-in-public\u002Fcard-800x500.png",{"path":751,"title":752,"description":753,"published":754,"category":513,"image":755,"draft":517},"\u002Fblog\u002Frotate-supabase-service-role-key","Como rotacionar uma chave service_role do Supabase vazada","O Supabase manda fechar o vazamento primeiro. Outros guias mandam rotacionar agora. O que vale depende de para onde a sua chave service_role vazou.","2026-09-08","\u002Fblog\u002Frotate-supabase-service-role-key\u002Fcard-800x500.png",{"path":757,"title":758,"description":759,"published":760,"category":513,"image":761,"draft":517},"\u002Fblog\u002Fvibe-coding-security-scanners-compared","Scanners de segurança para vibe coding comparados, o nosso incluído","O melhor scanner de segurança para vibe coding depende de três perguntas que nenhuma lista de recursos responde. Dez ferramentas comparadas, com preços.","2026-09-07","\u002Fblog\u002Fvibe-coding-security-scanners-compared\u002Fcard-800x500.png",{"path":763,"title":764,"description":765,"published":766,"category":513,"image":767,"draft":517},"\u002Fblog\u002Fsupabase-security-checker","Supabase security checker: faça você mesmo as cinco verificações","Um Supabase security checker lê o seu app publicado em vez das configurações do projeto. Aqui estão as cinco verificações e como fazer cada uma sozinho.","2026-09-06","\u002Fblog\u002Fsupabase-security-checker\u002Fcard-800x500.png",{"path":769,"title":770,"description":771,"published":772,"category":513,"image":773,"draft":517},"\u002Fblog\u002Fvibe-coding-security-scanner","Scanner de segurança para vibe coding: o que ele não vê","Um scanner de segurança para vibe coding lê seu app no ar, de fora. O que isso cobre, as quatro coisas que ele não consegue ver e como ler o resultado.","2026-09-05","\u002Fblog\u002Fvibe-coding-security-scanner\u002Fcard-800x500.png",{"path":775,"title":776,"description":777,"published":778,"category":513,"image":779,"draft":517},"\u002Fblog\u002Fmissing-security-headers","Cabeçalhos de segurança faltando: quando isso importa","Cabeçalhos de segurança faltando é o achado que nosso scanner mais imprime. Contra o que eles protegem e quando são a linha menos urgente do relatório.","2026-09-04","\u002Fblog\u002Fmissing-security-headers\u002Fcard-800x500.png",{"path":781,"title":782,"description":783,"published":784,"category":513,"image":785,"draft":517},"\u002Fblog\u002Fopenai-api-key-exposed-in-frontend","Sua chave de API da OpenAI está exposta no frontend. Troque-a.","Uma chave de API da OpenAI exposta no frontend não pode ser presa a um domínio. Troque-a hoje, mova a chamada para o seu servidor e limite o gasto.","2026-09-03","\u002Fblog\u002Fopenai-api-key-exposed-in-frontend\u002Fcard-800x500.png",{"path":787,"title":788,"description":789,"published":790,"category":513,"image":791,"draft":517},"\u002Fblog\u002Fwhat-secrets-leak-from-vibe-coded-apps","Chave de API exposta no frontend: o que 30.998 apps entregam","Uma chave de API exposta no seu frontend costuma ser uma chave do Google Maps. Escaneamos 30.998 apps vibe-coded e contamos quais segredos vazam de verdade.","2026-09-02","\u002Fblog\u002Fwhat-secrets-leak-from-vibe-coded-apps\u002Fcard-800x500.png",{"path":793,"title":794,"description":795,"published":796,"category":633,"image":797,"draft":517},"\u002Fblog\u002Fsupabase-backup-tools-compared","Ferramentas de backup do Supabase comparadas, a nossa incluída","Quatro tipos de ferramenta de backup do Supabase, o que cada uma copia de verdade e quando uma GitHub Action gratuita ganha de pagar, nós inclusive.","2026-09-01","\u002Fblog\u002Fsupabase-backup-tools-compared\u002Fcard-800x500.png",{"path":799,"title":800,"description":801,"published":802,"category":513,"image":803,"draft":517},"\u002Fblog\u002Freplit-secrets-explained","Como usar secrets no Replit, e o que ainda assim é publicado","Como usar secrets no Replit: adicionar um, ler de volta e resolver as duas causas do undefined. E as chaves que a ferramenta Secrets não consegue proteger.","2026-08-31","\u002Fblog\u002Freplit-secrets-explained\u002Fcard-800x500.png",{"path":200,"title":805,"description":806,"published":807,"category":633,"image":808,"draft":517},"Backups do plano gratuito do Supabase: como fazer sem terminal","No plano gratuito do Supabase não existe backup nenhum: a cópia é você que faz. Como fazer uma pelo painel e o que a rota do CSV deixa para trás.","2026-08-30","\u002Fblog\u002Fback-up-supabase-free-tier\u002Fcard-800x500.png",{"path":810,"title":811,"description":812,"published":813,"category":513,"image":814,"draft":517},"\u002Fblog\u002Fis-supabase-secure","O Supabase é seguro? É. Seu projeto é outra pergunta","O Supabase é seguro? A plataforma é auditada, criptografada e passa por pentests. A documentação deles diz onde isso termina e começam suas configurações.","2026-08-29","\u002Fblog\u002Fis-supabase-secure\u002Fcard-800x500.png",{"path":816,"title":817,"description":818,"published":819,"category":513,"image":820,"draft":517},"\u002Fblog\u002Fwhere-to-find-supabase-api-keys","Onde ficam as chaves de API do Supabase: anon, service_role e URL","A URL do projeto, a chave anon e a chave service_role ficam todas numa página do painel. Aqui está onde ela fica, e qual dos quatro valores vai no seu app.","2026-08-28","\u002Fblog\u002Fwhere-to-find-supabase-api-keys\u002Fcard-800x500.png",{"path":822,"title":823,"description":824,"published":825,"category":513,"image":826,"draft":517},"\u002Fblog\u002Fnew-row-violates-row-level-security-policy","New row violates row-level security policy no Supabase. E agora?","\"New row violates row-level security policy\" significa que o Supabase recusou uma escrita. O conserto rápido reabre a tabela para qualquer um.","2026-08-27","\u002Fblog\u002Fnew-row-violates-row-level-security-policy\u002Fcard-800x500.png",{"path":828,"title":829,"description":830,"published":831,"category":513,"image":832,"draft":517},"\u002Fblog\u002Fcors-wildcard-security-risk","Um curinga CORS é um risco de segurança? Quase nunca.","Um curinga CORS é um risco de segurança? Em geral é o padrão do seu builder e não entrega nada que o seu servidor já não desse a qualquer um que pedisse.","2026-08-26","\u002Fblog\u002Fcors-wildcard-security-risk\u002Fcard-800x500.png",{"path":834,"title":835,"description":836,"published":837,"category":633,"image":838,"draft":517},"\u002Fblog\u002Fsupabase-branching-is-not-a-backup","Branching do Supabase não é backup. Ele só anda para a frente.","Por que o branching do Supabase não é backup: um branch começa sem os seus dados e um merge só leva o esquema. Para que ele serve e o que usar no lugar.","2026-08-25","\u002Fblog\u002Fsupabase-branching-is-not-a-backup\u002Fcard-800x500.png",{"path":840,"title":841,"description":842,"published":843,"category":633,"image":844,"draft":517},"\u002Fblog\u002Fhow-to-restore-a-supabase-backup","Como restaurar um backup do Supabase, e o que quebra depois","Como restaurar um backup do Supabase pelo painel ou por um arquivo de dump, o que a restauração substitui e por que o seu app pode continuar quebrado no fim.","2026-08-24","\u002Fblog\u002Fhow-to-restore-a-supabase-backup\u002Fcard-800x500.png",{"path":846,"title":847,"description":848,"published":849,"category":513,"image":850,"draft":517},"\u002Fblog\u002Fsupabase-storage-bucket-public","Seu bucket do Supabase Storage é público. Isso é um problema?","Um bucket público do Supabase Storage significa que quem tem a URL de um arquivo pode abri-lo. Não significa que alguém possa listar o que está lá dentro.","2026-08-23","\u002Fblog\u002Fsupabase-storage-bucket-public\u002Fcard-800x500.png",{"path":852,"title":853,"description":854,"published":855,"category":513,"image":856,"draft":517},"\u002Fblog\u002Fgoogle-api-key-exposed-in-frontend","Uma chave de API do Google no frontend é um problema?","Uma chave de API do Google exposta no seu frontend é a chave que nosso scanner mais encontra, e quase sempre está tudo bem. Um ajuste gratuito decide isso.","2026-08-22","\u002Fblog\u002Fgoogle-api-key-exposed-in-frontend\u002Fcard-800x500.png",{"path":858,"title":859,"description":860,"published":861,"category":633,"image":862,"draft":517},"\u002Fblog\u002Fai-agent-deleted-my-database","Um agente de IA apagou meus dados do Supabase. O que eu recupero?","Um agente de IA apagou dados do seu banco. O que você recupera já estava decidido antes de ele rodar, e os próximos minutos decidem o resto.","2026-08-21","\u002Fblog\u002Fai-agent-deleted-my-database\u002Fcard-800x500.png",{"path":864,"title":865,"description":866,"published":867,"category":513,"image":868,"draft":517},"\u002Fblog\u002Fcan-anyone-read-your-supabase-database","Qualquer um consegue ler seu banco Supabase? Testamos 3.680 apps","Qualquer um consegue ler seu banco de dados Supabase sem fazer login? Escaneamos 30.998 apps no ar criadas com builders de IA e medimos quantas dizem que sim.","2026-08-18","\u002Fblog\u002Fcan-anyone-read-your-supabase-database\u002Fcard-800x500.png",{"path":870,"title":871,"description":872,"published":867,"category":513,"image":873,"draft":517},"\u002Fblog\u002Fsource-maps-exposed-in-production","Source maps expostos: seu app está publicando o código original","Um source map exposto deixa qualquer um ler o código original do seu app, comentários incluídos. A verificação de 30 segundos e o que importa de verdade.","\u002Fblog\u002Fsource-maps-exposed-in-production\u002Fcard-800x500.png",{"path":875,"title":876,"description":877,"published":878,"category":513,"image":879,"draft":517},"\u002Fblog\u002Fsupabase-new-api-keys","As novas chaves de API do Supabase: qual vai no seu app?","O Supabase trocou anon e service_role por chaves publicáveis e secretas. Qual delas pertence ao seu app e qual nunca deve estar lá?","2026-08-12","\u002Fblog\u002Fsupabase-new-api-keys\u002Fcard-800x500.png",{"path":359,"title":881,"description":882,"published":883,"category":633,"image":884,"draft":517},"O Supabase faz backup do meu banco de dados? Depende do plano.","O Supabase faz backup do seu banco de dados? Todo dia nos planos pagos, e nada no gratuito. Como descobrir o que você tem e o que essa cópia não cobre.","2026-08-11","\u002Fblog\u002Fdoes-supabase-back-up-my-database\u002Fcard-800x500.png",{"path":886,"title":887,"description":888,"published":889,"category":513,"image":890,"draft":517},"\u002Fblog\u002Fsupabase-rls-on-but-table-still-public","O Supabase Row Level Security está ligado. A tabela continua pública.","Ligar o Supabase Row Level Security não protege uma tabela. Quem protege são as políticas, e a que consertou o seu app pode deixar qualquer um entrar.","2026-08-10","\u002Fblog\u002Fsupabase-rls-on-but-table-still-public\u002Fcard-800x500.png",{"path":892,"title":893,"description":894,"published":889,"category":633,"image":895,"draft":517},"\u002Fblog\u002Fversion-history-is-not-a-backup","O histórico de versões não é backup. Ele não desfaz um delete.","Lovable e Bolt guardam um histórico de versões do seu código. Seu banco de dados é um serviço à parte, e voltar atrás não traz os seus dados de volta.","\u002Fblog\u002Fversion-history-is-not-a-backup\u002Fcard-800x500.png",{"path":897,"title":898,"description":899,"published":900,"category":633,"image":901,"draft":517},"\u002Fblog\u002Fthree-ways-to-back-up-a-supabase-database","Três formas de fazer backup de um banco Supabase, e o que falta","O painel, o pg_dump e um serviço gerenciado. O que cada um salva de verdade, o que deixa de fora sem avisar e qual sobrevive a perder a conta.","2026-08-09","\u002Fblog\u002Fthree-ways-to-back-up-a-supabase-database\u002Fcard-800x500.png",{"path":903,"title":904,"description":905,"published":900,"category":513,"image":906,"draft":517},"\u002Fblog\u002Fwhich-api-keys-are-safe-in-your-frontend","Quais chaves de API são seguras no navegador e quais não são","Sua chave anon do Supabase foi feita para ser pública. Sua chave service_role não, e ela ignora todas as regras que você criar. Como diferenciar as duas.","\u002Fblog\u002Fwhich-api-keys-are-safe-in-your-frontend\u002Fcard-800x500.png",1791618971763]