[{"data":1,"prerenderedAt":863},["ShallowReactive",2],{"blog-pt-supabase-backup-tools-compared":3,"blog-index-pt":516},{"id":4,"title":5,"body":6,"category":475,"cover":476,"coverAlt":477,"description":478,"draft":479,"extension":480,"faq":481,"image":497,"keywords":498,"meta":504,"navigation":505,"ogTitle":506,"path":507,"published":508,"seo":509,"stem":510,"tldr":511,"updated":508,"__hash__":515},"blog_pt\u002Fblog\u002Fsupabase-backup-tools-compared.md","Ferramentas de backup do Supabase comparadas, a nossa incluída",{"type":7,"value":8,"toc":462},"minimark",[9,13,21,24,29,32,163,166,170,173,210,216,220,223,232,235,239,242,249,255,258,285,290,298,302,305,308,311,319,323,326,329,367,372,375,382,386,389,420,424,444],[10,11,12],"p",{},"Você foi procurar uma ferramenta de backup do Supabase por um de dois motivos. Ou\ndescobriu que o seu projeto está no plano gratuito e nunca nada foi copiado para\nlugar nenhum, ou está em um plano pago, leu até onde a janela dele volta, e não\npareceu suficiente para um app com clientes de verdade dentro.",[10,14,15,16,20],{},"Aqui está a parte que esses comparativos erram, e os escritos pelas próprias\nferramentas erram com mais força: eles ordenam as opções por recurso. ",[17,18,19],"strong",{},"Uma\nferramenta de backup é algo que você paga para cobrir um trabalho que já decidiu\nque não vai fazer."," Se você fosse mesmo fazer, o caminho gratuito produz o mesmo\narquivo.",[10,22,23],{},"Nós vendemos um dos quatro abaixo, então leia o resto com isso na mão. Para um\nbom número de apps o caminho gratuito é a resposta certa, e a seção sobre ele é a\nmais longa daqui.",[25,26,28],"h2",{"id":27},"qual-ferramenta-de-backup-do-supabase-eu-devo-usar","Qual ferramenta de backup do Supabase eu devo usar?",[10,30,31],{},"Escolha por qual parte do trabalho você quer parar de pensar. Os quatro caminhos\nproduzem uma cópia do seu banco de dados. O que os separa é quanto do que vem\ndepois continua sendo seu.",[33,34,35],"comparison-table",{},[36,37,38,59],"table",{},[39,40,41],"thead",{},[42,43,44,47,50,53,56],"tr",{},[45,46],"th",{},[45,48,49],{},"O próprio Supabase",[45,51,52],{},"Uma GitHub Action",[45,54,55],{},"Um serviço de backup",[45,57,58],{},"Cuidado gerenciado",[60,61,62,77,91,104,119,132,146],"tbody",{},[42,63,64,68,71,73,75],{},[65,66,67],"td",{},"Roda no horário sem você",[65,69,70],{},"Sim",[65,72,70],{},[65,74,70],{},[65,76,70],{},[42,78,79,82,85,87,89],{},[65,80,81],{},"A cópia sai da sua conta",[65,83,84],{},"Não",[65,86,70],{},[65,88,70],{},[65,90,70],{},[42,92,93,96,98,100,102],{},[65,94,95],{},"Sobrevive à perda da conta",[65,97,84],{},[65,99,70],{},[65,101,70],{},[65,103,70],{},[42,105,106,109,111,114,117],{},[65,107,108],{},"Seus arquivos enviados entram",[65,110,84],{},[65,112,113],{},"Um segundo trabalho",[65,115,116],{},"Em geral não",[65,118,70],{},[42,120,121,124,126,128,130],{},[65,122,123],{},"Algo lê a cópia de volta",[65,125,84],{},[65,127,84],{},[65,129,84],{},[65,131,70],{},[42,133,134,137,140,142,144],{},[65,135,136],{},"Restaurar é um botão",[65,138,139],{},"Sim, dentro do projeto",[65,141,84],{},[65,143,84],{},[65,145,70],{},[42,147,148,151,154,157,160],{},[65,149,150],{},"Custo",[65,152,153],{},"Só nos planos pagos",[65,155,156],{},"Grátis",[65,158,159],{},"Plano gratuito, depois pago",[65,161,162],{},"Uma assinatura",[10,164,165],{},"A coluna sombreada é a nossa, e as linhas quatro a seis são o que ela vende.\nGuarde isso para tudo o que vem abaixo.",[25,167,169],{"id":168},"pelo-que-você-está-pagando-de-verdade","Pelo que você está pagando de verdade",[10,171,172],{},"Quatro coisas precisam acontecer para um backup valer alguma coisa, e cada\nferramenta de backup do Supabase daqui faz algumas delas.",[174,175,176,188,194,200],"ol",{},[177,178,179,182,183,187],"li",{},[17,180,181],{},"Tirar uma cópia."," Ninguém nesta página cobra por isso. O ",[184,185,186],"code",{},"pg_dump"," vem\njunto com o Postgres e a CLI do Supabase o embrulha.",[177,189,190,193],{},[17,191,192],{},"Levá-la para um lugar que o original não consiga arrastar junto."," Uma cópia\ndentro da conta que ela protege cobre você no dia em que quebrar os seus\npróprios dados. No dia em que perder o acesso, ela está atrás da mesma porta.",[177,195,196,199],{},[17,197,198],{},"Lê-la de volta."," Um dump escrito enquanto a conexão caía parece exatamente\num bom até a hora em que você tenta usá-lo.",[177,201,202,205,206,209],{},[17,203,204],{},"Colocá-la de volta."," No pior dia da vida do seu app, no estado em que você\nestiver naquele dia, com o que por acaso souber de ",[184,207,208],{},"psql",".",[211,212],"diagram",{"alt":213,"caption":214,"src":215},"Quatro painéis numerados. Um: um banco de dados com uma seta indo para um arquivo. Dois: um arquivo cruzando para fora de uma borda tracejada. Três: uma lupa sobre o arquivo, com um visto. Quatro: uma seta levando o arquivo de volta para dentro do banco de dados.","Os quatro passos dos quais cada caminho desta página é uma fatia diferente. A maioria das ferramentas vende os dois do meio.","\u002Fblog\u002Fsupabase-backup-tools-compared\u002Ffour-jobs-1600x560.png",[25,217,219],{"id":218},"preciso-de-uma-ferramenta-se-já-estou-em-um-plano-pago-do-supabase","Preciso de uma ferramenta se já estou em um plano pago do Supabase?",[10,221,222],{},"Para o desastre comum, não. O Supabase tira cópias diárias nos planos pagos e\nrestaurar uma são alguns cliques dentro do painel, que é o caminho de volta mais\nrápido depois de uma migração que rodou duas vezes.",[10,224,225,226,231],{},"O que isso não cobre é a conta. Toda cópia que o Supabase tira mora dentro do\nprojeto que ela protege, então uma cobrança que falhou, um projeto suspenso ou um\nacesso que você não recupera colocam os backups atrás da mesma porta que a coisa\npara a qual eles existiam.\n",[227,228,230],"a",{"href":229},"\u002Fblog\u002Fdoes-supabase-back-up-my-database","Em qual plano você está, e até onde a janela dele volta","\nleva uns dois minutos para conferir.",[10,233,234],{},"Então ligue esses, e depois decida à parte se uma cópia em um lugar só é onde\nvocê quer parar.",[25,236,238],{"id":237},"quando-uma-github-action-ganha-de-pagar-para-qualquer-um","Quando uma GitHub Action ganha de pagar para qualquer um",[10,240,241],{},"Quando o seu app já mora em um repositório do GitHub, você consegue editar um\narquivo YAML sem pavor e o seu banco é pequeno. Nesse caso o caminho gratuito é\numa resposta de verdade. Ele produz o mesmo dump que um serviço pago produz, na\nmesma frequência, e ninguém está te cobrando.",[10,243,244,245,248],{},"Este aqui o próprio Supabase documenta. Um arquivo de fluxo em\n",[184,246,247],{},".github\u002Fworkflows"," chama a CLI do Supabase três vezes e despeja os seus papéis,\no seu esquema e os seus dados como arquivos separados, em um cron que dispara à\nmeia-noite, e depois comita os resultados de volta no repositório. A página deles\ntraz um único aviso e traz duas vezes: nunca faça backup dos seus dados em um\nrepositório público.",[10,250,251,252,254],{},"Esse também é o caminho que conserta aquilo que mata a versão na mão. Um\n",[184,253,186],{}," no seu notebook tem a data da última vez em que você pensou nisso, e o\ndia em que você precisa dele nunca é um dia em que você estava pensando nisso. Um\nfluxo agendado roda tendo você lembrado ou não, e o arquivo cai nos servidores de\numa empresa diferente da que segura o seu banco.",[10,256,257],{},"Quatro coisas que ele deixa com você:",[259,260,261,267,273,279],"ul",{},[177,262,263,266],{},[17,264,265],{},"Os dumps se empilham em um repositório",", que é um lugar feito para código.\nUm histórico binário que cresce é chato de lidar, e se um segredo de verdade\ncair ali algum dia, tirá-lo significa reescrever o histórico.",[177,268,269,272],{},[17,270,271],{},"A sua string de conexão fica no CI."," É uma credencial com permissão de\nescrita completa no seu banco, guardada em um sistema que também roda código\nvindo de pull requests.",[177,274,275,278],{},[17,276,277],{},"Ninguém lê a cópia de volta."," Uma execução verde quer dizer que o trabalho\nterminou sem erro, o que é uma afirmação menor do que a de o arquivo restaurar.",[177,280,281,284],{},[17,282,283],{},"Arquivos enviados pedem um segundo trabalho."," O dump guarda a linha que\naponta para cada arquivo. Os arquivos moram no Storage e saem à parte, em todos\nos caminhos daqui.",[211,286],{"alt":287,"caption":288,"src":289},"Um trabalho concluído marcado com um visto verde. Uma linha sai dele e se bifurca para dois painéis de arquivo idênticos. O arquivo de cima tem todas as linhas cheias. O de baixo para depois de duas linhas e o resto são contornos tracejados vazios.","Os dois saíram de uma execução que terminou sem erro. Nada na execução diz qual dos dois você tem.","\u002Fblog\u002Fsupabase-backup-tools-compared\u002Fgreen-run-short-file-1600x740.png",[10,291,292,293,297],{},"Se você consegue conviver com essas quatro, pare de ler aqui e ",[227,294,296],{"href":295},"\u002Fblog\u002Fsupabase-backup-github-action","vá\nconfigurar",", com a connection string que o\nGitHub alcança e o horário que a sua cota de egress consegue pagar. Não custa\nnada, e o arquivo que ele escreve é o mesmo que os caminhos pagos escrevem.",[25,299,301],{"id":300},"o-que-um-serviço-de-backup-pago-acrescenta","O que um serviço de backup pago acrescenta",[10,303,304],{},"Ele tira a manutenção do seu colo. Um serviço pequeno se conecta ao seu banco,\nroda na frequência que você escolhe, deposita o arquivo em um armazenamento que\njá é seu e coloca na frente de tudo uma tela que diz quando uma execução falhou.",[10,306,307],{},"O Supabackup é o que as pessoas procuram pelo nome. Ele pega a sua string de\nconexão, envia os dumps para uma conta do Google Drive que você conecta, e guarda\num número fixo deles antes de apagar os mais antigos. A página de preços dele\ndescreve um plano gratuito com frequência semanal e um pago com frequência\ndiária; leia o preço atual lá e não aqui, porque ele é deles e podem mudar.",[10,309,310],{},"O que isso compra em relação ao arquivo de fluxo é algo que não apodrece. Nada de\nYAML, nenhum repositório enchendo de dumps, nenhum segredo no CI, e um painel\ndizendo que a última execução falhou em vez de um e-mail que você aprendeu a\npular.",[10,312,313,314,318],{},"O que isso não muda é a segunda metade do trabalho. A cópia é o seu banco, o\narquivo é um dump, e no dia em que precisar é você quem vai reproduzi-lo. Confira\nse o serviço que escolher cobre o Storage também, porque boa parte dessa\ncategoria é o banco sozinho.\n",[227,315,317],{"href":316},"\u002Fblog\u002Fhow-to-restore-a-supabase-backup","Restaurar um dump tem os passos dele",",\ne vale ler antes de precisar.",[25,320,322],{"id":321},"o-que-o-cuidado-gerenciado-acrescenta-e-pelo-que-você-paga","O que o cuidado gerenciado acrescenta, e pelo que você paga",[10,324,325],{},"Ele acrescenta as duas partes que os outros três caminhos deixam com você: a\nconferência e a restauração.",[10,327,328],{},"Isso é o Reeve Care, e backups são uma linha dele.",[259,330,331,337,343,349,355,361],{},[177,332,333,336],{},[17,334,335],{},"Várias cópias por dia",", na frequência que o seu plano define e nada que você\nprecise lembrar de disparar.",[177,338,339,342],{},[17,340,341],{},"Guardadas fora da sua conta do Supabase",", criptografadas, para que um\nprojeto suspenso ou um acesso que você não recupera deixem as cópias onde elas\nestão.",[177,344,345,348],{},[17,346,347],{},"Lidas de volta antes de contar."," Cada cópia é aberta e contada contra o que\nentrou, e é por isso que a data no seu painel é a da última cópia verificada em\nvez da última tentativa.",[177,350,351,354],{},[17,352,353],{},"Seus arquivos enviados junto com as suas linhas",", assim que você conecta uma\ncredencial de Storage, e os dois voltam juntos.",[177,356,357,360],{},[17,358,359],{},"Mais de um ponto de restauração."," Quantos depende do plano, e os mais\nantigos saem à medida que novos chegam.",[177,362,363,366],{},[17,364,365],{},"Colocar de volta é um botão",", e antes disso é tirada uma cópia do estado\natual, antes de qualquer coisa ser substituída.",[211,368],{"alt":369,"caption":370,"src":371},"Três faixas numeradas ao lado da marca do Reeve Care. Um: uma conta do Supabase com um banco de dados e uma imagem enviada, um símbolo de repetição sobre a seta que sai, e a cópia do lado de fora com um cadeado, uma lupa e um visto. Dois: uma fileira de sete cópias salvas, a mais antiga desenhada tracejada e a mais nova destacada. Três: uma seta levando uma cópia salva de volta para a conta, saindo de um cartão com um botão.","O que a assinatura está fazendo enquanto você não pensa nisso. O banco de dados e os arquivos enviados viajam juntos, nos dois sentidos.","\u002Fblog\u002Fsupabase-backup-tools-compared\u002Fcare-in-one-frame-1600x700.png",[10,373,374],{},"Pelo que você paga é disponibilidade. Dá para começar uma restauração a qualquer\nhora, a partir de qualquer noite que o seu plano ainda guarde, sem esperar até\nter uma tarde livre. Toda cópia é criptografada antes de sair do seu projeto e\nfica assim. O Care Max acrescenta suporte prioritário, e alguém para te ajudar a\naplicar uma correção.",[10,376,377,378,209],{},"A cópia saindo do Supabase, a conferência que vem atrás dela e o botão que a\ncoloca de volta estão desenhados na\n",[227,379,381],{"href":380},"\u002Fsupabase-backups","página de backups do Supabase",[25,383,385],{"id":384},"como-escolher-em-cerca-de-um-minuto","Como escolher, em cerca de um minuto",[10,387,388],{},"Quatro ramos, e a maioria das pessoas cai nos dois primeiros.",[259,390,391,397,408,414],{},[177,392,393,396],{},[17,394,395],{},"Plano gratuito, e editar um arquivo YAML não te assusta."," A GitHub Action.\nGrátis, completa e sua.",[177,398,399,402,403,407],{},[17,400,401],{},"Plano gratuito, e assusta sim."," Um serviço de backup pequeno, ou\n",[227,404,406],{"href":405},"\u002Fblog\u002Fback-up-supabase-free-tier","uma cópia feita na mão pelo painel","\naté você estar pronto para algo agendado.",[177,409,410,413],{},[17,411,412],{},"Plano pago, e você quer uma cópia fora da conta."," Qualquer um dos dois, em\ncima do que o Supabase já tira.",[177,415,416,419],{},[17,417,418],{},"Clientes de verdade, arquivos enviados e ninguém que vá rodar uma restauração\nsob pressão."," Gerenciado.",[25,421,423],{"id":422},"o-que-fazer-esta-semana","O que fazer esta semana",[425,426,427],"key-takeaways",{},[259,428,429,432,435,438,441],{},[177,430,431],{},"Ligue o que o seu plano do Supabase já inclui. Não custa nada a mais e é o caminho de volta mais rápido dos seus próprios erros.",[177,433,434],{},"Escolha um caminho desta página que ponha uma cópia fora da sua conta do Supabase, e configure hoje.",[177,436,437],{},"Seja qual for, restaure a partir dele uma vez em um projeto descartável. Até você fazer isso, o que você tem é um arquivo de qualidade desconhecida.",[177,439,440],{},"Copie os seus arquivos do Storage em um trabalho só deles. Nenhum caminho daqui os inclui sozinho.",[177,442,443],{},"Anote onde as cópias caem e qual acesso chega até elas. Uma linha no README do seu projeto basta, e é a anotação que você vai caçar à meia-noite.",[10,445,446,447,451,452,456,457,461],{},"Se alguma tabela já ficou vazia por um motivo que ninguém soube explicar, leia\nprimeiro\n",[227,448,450],{"href":449},"\u002Fblog\u002Fversion-history-is-not-a-backup","o que um rollback realmente restaura","\ne depois\n",[227,453,455],{"href":454},"\u002Fblog\u002Fthree-ways-to-back-up-a-supabase-database","três formas de fazer backup de um banco de dados Supabase","\npara o que uma cópia guarda e o que ela deixa de fora. E se você prefere ver o\nque mais está aberto no seu app antes de decidir onde gastar,\n",[227,458,460],{"href":459},"\u002Fsecurity-scanner","o scan gratuito"," lê o seu site no ar em uns 20 segundos.",{"title":463,"searchDepth":464,"depth":464,"links":465},"",3,[466,468,469,470,471,472,473,474],{"id":27,"depth":467,"text":28},2,{"id":168,"depth":467,"text":169},{"id":218,"depth":467,"text":219},{"id":237,"depth":467,"text":238},{"id":300,"depth":467,"text":301},{"id":321,"depth":467,"text":322},{"id":384,"depth":467,"text":385},{"id":422,"depth":467,"text":423},"Backups","\u002Fblog\u002Fsupabase-backup-tools-compared\u002Fcover-1200x630.png","Um banco de dados ao lado de quatro cópias salvas dele em fila, com a terceira das quatro erguida acima das outras.","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.",false,"md",[482,485,488,491,494],{"q":483,"a":484},"Qual é a melhor ferramenta de backup do Supabase?","Não existe uma resposta só, porque os quatro caminhos cobrem partes diferentes do mesmo trabalho. Os backups do próprio Supabase são os mais rápidos de ligar e moram dentro da conta que protegem. Uma GitHub Action é gratuita e completa, e deixa a conferência e a restauração com você. Um serviço de backup pequeno tira a manutenção do seu colo. Um serviço gerenciado acrescenta a verificação, os seus arquivos enviados e uma restauração que outra pessoa consegue rodar. Escolha por qual dessas partes você quer parar de segurar.",{"q":486,"a":487},"Existe alguma ferramenta de backup do Supabase gratuita?","Sim, mais de uma. A CLI do Supabase despeja o seu banco em um arquivo na sua própria máquina e não custa nada. Uma GitHub Action rodando essa mesma CLI de forma agendada também não custa nada, desde que o repositório em que ela escreve seja privado. Vários serviços pagos ainda têm um plano gratuito, em geral um trabalho com frequência semanal. O que nenhum caminho gratuito inclui é alguém conferindo se o arquivo abre.",{"q":489,"a":490},"Dá para fazer backup do Supabase com uma GitHub Action?","Dá, e o próprio Supabase documenta esse fluxo. Ele chama a CLI três vezes para despejar os seus papéis, o seu esquema e os seus dados separadamente, em um cron que dispara à meia-noite, e comita os arquivos de volta no repositório. A página deles traz um único aviso e traz duas vezes: nunca faça backup dos seus dados em um repositório público. Vale decidir cedo se uma pilha crescente de dumps cabe em um repositório de código, ou se o mesmo fluxo deveria enviá-los para outro lugar.",{"q":492,"a":493},"As ferramentas de backup do Supabase incluem os arquivos do Storage?","Algumas sim e muitas não, então descubra antes de supor. Um dump do banco guarda a linha que anota onde cada arquivo estava e nada do arquivo em si, e é assim que uma restauração termina limpinha e deixa um app cheio de imagens quebradas. Seja qual for o caminho, confira se os arquivos enviados fazem parte dele, e se não fizerem, copie-os em um trabalho só deles.",{"q":495,"a":496},"O que eu devo olhar em uma ferramenta de backup do Supabase?","Quatro perguntas, nesta ordem. A cópia sai da sua conta do Supabase, ou fica dentro daquilo que ela protege? Alguma coisa lê a cópia de volta, ou uma execução verde já conta como sucesso? Os seus arquivos enviados fazem parte? E no dia em que precisar, quem roda a restauração? O preço vem por último em vez de primeiro, porque os caminhos que não custam nada são realmente bons na primeira metade dessa lista.","\u002Fblog\u002Fsupabase-backup-tools-compared\u002Fcard-800x500.png",[499,500,501,502,503],"ferramenta de backup supabase","supabackup","backup automatico supabase","servico de backup supabase","comparativo ferramentas backup supabase",{},true,"Ferramentas de backup do Supabase comparadas","\u002Fblog\u002Fsupabase-backup-tools-compared","2026-09-01",{"title":5,"description":478},"blog\u002Fsupabase-backup-tools-compared",[512,513,514],"Uma ferramenta de backup do Supabase vale o que custa quando a parte que falha é você lembrar. Todos os caminhos desta página produzem o mesmo arquivo.","São quatro: os backups do próprio Supabase, uma GitHub Action agendada, um serviço de backup pequeno e o cuidado gerenciado. Eles se diferenciam em quanto do trabalho continua sendo seu.","Nenhum deles conta enquanto ninguém tiver lido uma cópia de volta, e essa é justamente a linha que falta em toda lista de recursos.","Jm3xvn9wo_moZLyTeFT4AtWIkzY94gRwonttLRvT730",[517,524,530,536,542,548,554,560,566,572,578,584,590,596,601,607,612,618,624,630,636,642,648,654,660,666,672,678,684,690,696,702,708,714,720,726,732,738,744,750,756,757,763,768,774,780,786,792,798,803,809,815,821,827,832,838,843,849,853,858],{"path":518,"title":519,"description":520,"published":521,"category":522,"image":523,"draft":479},"\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","Noções de segurança","\u002Fblog\u002Fbase44-security-scan\u002Fcard-800x500.png",{"path":525,"title":526,"description":527,"published":528,"category":522,"image":529,"draft":479},"\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":531,"title":532,"description":533,"published":534,"category":522,"image":535,"draft":479},"\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":537,"title":538,"description":539,"published":540,"category":522,"image":541,"draft":479},"\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":543,"title":544,"description":545,"published":546,"category":522,"image":547,"draft":479},"\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":549,"title":550,"description":551,"published":552,"category":522,"image":553,"draft":479},"\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":555,"title":556,"description":557,"published":558,"category":522,"image":559,"draft":479},"\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":561,"title":562,"description":563,"published":564,"category":522,"image":565,"draft":479},"\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":567,"title":568,"description":569,"published":570,"category":522,"image":571,"draft":479},"\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":573,"title":574,"description":575,"published":576,"category":522,"image":577,"draft":479},"\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":579,"title":580,"description":581,"published":582,"category":522,"image":583,"draft":479},"\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":585,"title":586,"description":587,"published":588,"category":522,"image":589,"draft":479},"\u002Fblog\u002Fsupabase-free-plan-limits","Quanto custa o Supabase? Os limites do plano gratuito","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.","2026-09-29","\u002Fblog\u002Fsupabase-free-plan-limits\u002Fcard-800x500.png",{"path":591,"title":592,"description":593,"published":594,"category":475,"image":595,"draft":479},"\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","\u002Fblog\u002Ftest-your-supabase-backup\u002Fcard-800x500.png",{"path":295,"title":597,"description":598,"published":599,"category":475,"image":600,"draft":479},"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":602,"title":603,"description":604,"published":605,"category":475,"image":606,"draft":479},"\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":608,"title":609,"description":610,"published":605,"category":522,"image":611,"draft":479},"\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":613,"title":614,"description":615,"published":616,"category":522,"image":617,"draft":479},"\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":619,"title":620,"description":621,"published":622,"category":522,"image":623,"draft":479},"\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":625,"title":626,"description":627,"published":628,"category":475,"image":629,"draft":479},"\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":631,"title":632,"description":633,"published":634,"category":522,"image":635,"draft":479},"\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":637,"title":638,"description":639,"published":640,"category":522,"image":641,"draft":479},"\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":643,"title":644,"description":645,"published":646,"category":522,"image":647,"draft":479},"\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":649,"title":650,"description":651,"published":652,"category":522,"image":653,"draft":479},"\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":655,"title":656,"description":657,"published":658,"category":522,"image":659,"draft":479},"\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":661,"title":662,"description":663,"published":664,"category":522,"image":665,"draft":479},"\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":667,"title":668,"description":669,"published":670,"category":522,"image":671,"draft":479},"\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":673,"title":674,"description":675,"published":676,"category":522,"image":677,"draft":479},"\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":679,"title":680,"description":681,"published":682,"category":475,"image":683,"draft":479},"\u002Fblog\u002Fsupabase-storage-backup","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":685,"title":686,"description":687,"published":688,"category":475,"image":689,"draft":479},"\u002Fblog\u002Fsupabase-point-in-time-recovery","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":691,"title":692,"description":693,"published":694,"category":475,"image":695,"draft":479},"\u002Fblog\u002Fsupabase-project-paused-recover","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":697,"title":698,"description":699,"published":700,"category":522,"image":701,"draft":479},"\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":703,"title":704,"description":705,"published":706,"category":522,"image":707,"draft":479},"\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":709,"title":710,"description":711,"published":712,"category":522,"image":713,"draft":479},"\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":715,"title":716,"description":717,"published":718,"category":522,"image":719,"draft":479},"\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":721,"title":722,"description":723,"published":724,"category":522,"image":725,"draft":479},"\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":727,"title":728,"description":729,"published":730,"category":522,"image":731,"draft":479},"\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":733,"title":734,"description":735,"published":736,"category":522,"image":737,"draft":479},"\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":739,"title":740,"description":741,"published":742,"category":522,"image":743,"draft":479},"\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":745,"title":746,"description":747,"published":748,"category":522,"image":749,"draft":479},"\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":751,"title":752,"description":753,"published":754,"category":522,"image":755,"draft":479},"\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":507,"title":5,"description":478,"published":508,"category":475,"image":497,"draft":479},{"path":758,"title":759,"description":760,"published":761,"category":522,"image":762,"draft":479},"\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":405,"title":764,"description":765,"published":766,"category":475,"image":767,"draft":479},"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":769,"title":770,"description":771,"published":772,"category":522,"image":773,"draft":479},"\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":775,"title":776,"description":777,"published":778,"category":522,"image":779,"draft":479},"\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":781,"title":782,"description":783,"published":784,"category":522,"image":785,"draft":479},"\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":787,"title":788,"description":789,"published":790,"category":522,"image":791,"draft":479},"\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":793,"title":794,"description":795,"published":796,"category":475,"image":797,"draft":479},"\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":316,"title":799,"description":800,"published":801,"category":475,"image":802,"draft":479},"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":804,"title":805,"description":806,"published":807,"category":522,"image":808,"draft":479},"\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":810,"title":811,"description":812,"published":813,"category":522,"image":814,"draft":479},"\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":816,"title":817,"description":818,"published":819,"category":475,"image":820,"draft":479},"\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":822,"title":823,"description":824,"published":825,"category":522,"image":826,"draft":479},"\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":828,"title":829,"description":830,"published":825,"category":522,"image":831,"draft":479},"\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":833,"title":834,"description":835,"published":836,"category":522,"image":837,"draft":479},"\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":229,"title":839,"description":840,"published":841,"category":475,"image":842,"draft":479},"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":844,"title":845,"description":846,"published":847,"category":522,"image":848,"draft":479},"\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":449,"title":850,"description":851,"published":847,"category":475,"image":852,"draft":479},"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":454,"title":854,"description":855,"published":856,"category":475,"image":857,"draft":479},"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":859,"title":860,"description":861,"published":856,"category":522,"image":862,"draft":479},"\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",1791618971891]