[{"data":1,"prerenderedAt":907},["ShallowReactive",2],{"blog-es-supabase-free-plan-limits":3,"blog-index-es":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_es\u002Fblog\u002Fsupabase-free-plan-limits.md","¿Cuánto cuesta Supabase? Los límites del plan 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",{},"Tu app funciona sobre un proyecto de Supabase, seguramente uno creado en el\nplan gratuito el día en que Lovable o Bolt te pidió conectar una base de datos.\nLleva meses funcionando. Entonces llega un correo diciendo que tu organización\nha superado su cupo de uso, o un cliente escribe para contarte que el botón de\nregistro no hace nada, y te pones a buscar qué permite de verdad el plan\ngratuito y cuánto cuesta Supabase cuando deja de serlo.",[10,14,15],{},"Los límites del plan gratuito de Supabase son fáciles de encontrar. Lo que pasa\ncuando cruzas cada uno es mucho más difícil de encontrar, y es distinto en cada\nlínea. Uno impide que tu app guarde nada mientras sus páginas siguen cargando.\nOtro puede apagar todos los proyectos que tienes. Otro salta cuando nadie ha\nentrado en una semana.",[10,17,18],{},"Aquí es donde la comparación habitual se equivoca. Trata Pro como el plan\ngratuito con números más grandes, y te aconseja cambiar cuando se acaba alguno\nde esos números. En una app con usuarios reales, el motivo para pagar suele\nllegar antes, y no aparece en ningún gráfico de uso: el plan gratuito no guarda\nninguna copia de tu base de datos, y los $25 que acaban con la pausa son los\nmismos $25 que ponen en marcha los backups diarios.",[10,20,21],{},"Piensa en el plan gratuito como en una caja de fusibles. Cada límite es un\ninterruptor, y la pregunta que vale la pena hacerse sobre cada uno es qué\ncircuito corta cuando salta.",[10,23,24,25,32],{},"Todas las cifras de abajo salen de la\n",[26,27,31],"a",{"href":28,"rel":29},"https:\u002F\u002Fsupabase.com\u002Fpricing",[30],"nofollow","página de precios"," y la documentación de\nSupabase, leídas el 29 de septiembre de 2026. Son cifras de Supabase y cambian,\nasí que vuelve a leerlas allí el día que decidas.",[34,35,37],"h2",{"id":36},"cuáles-son-los-límites-del-plan-gratuito-de-supabase","¿Cuáles son los límites del plan gratuito de Supabase?",[10,39,40],{},"Cinco límites de uso, una regla sobre la inactividad, un tope de proyectos y una\ncosa que falta por completo. Este es el plan gratuito tal como lo presenta\nSupabase, con lo que hace cada línea cuando la cruzas.",[42,43,44,60],"table",{},[45,46,47],"thead",{},[48,49,50,54,57],"tr",{},[51,52,53],"th",{},"Límite",[51,55,56],{},"Plan gratuito",[51,58,59],{},"Cuando lo pasas",[61,62,63,75,86,96,106,117,128],"tbody",{},[48,64,65,69,72],{},[66,67,68],"td",{},"Tamaño de la base de datos",[66,70,71],{},"500 MB por proyecto",[66,73,74],{},"Ese proyecto pasa a solo lectura: las páginas cargan, nada se guarda",[48,76,77,80,83],{},[66,78,79],{},"Egress",[66,81,82],{},"5 GB al mes, más 5 GB desde caché",[66,84,85],{},"Un aviso, un período de gracia y después restricciones",[48,87,88,91,94],{},[66,89,90],{},"Almacenamiento de archivos",[66,92,93],{},"1 GB",[66,95,85],{},[48,97,98,101,104],{},[66,99,100],{},"Usuarios activos mensuales",[66,102,103],{},"50.000",[66,105,85],{},[48,107,108,111,114],{},[66,109,110],{},"Inactividad",[66,112,113],{},"7 días",[66,115,116],{},"El proyecto se pausa",[48,118,119,122,125],{},[66,120,121],{},"Proyectos activos",[66,123,124],{},"2",[66,126,127],{},"No puedes crear un tercero",[48,129,130,133,136],{},[66,131,132],{},"Backups automáticos",[66,134,135],{},"Ninguno",[66,137,138],{},"No existe ninguna copia desde la que restaurar",[10,140,141],{},"Las filas dependen de dos tipos de interruptor. El límite de la base de datos\ncorta un circuito en un proyecto, en el momento en que salta. El egress, el\nalmacenamiento y los usuarios dependen del interruptor general. Supabase lo\nllama su Fair Use Policy, cubre todos los proyectos de la organización y salta\ndespacio: primero llegan un correo a tu dirección de facturación y un período\nde gracia.",[34,143,145],{"id":144},"qué-pasa-cuando-llegas-al-límite-de-500-mb","¿Qué pasa cuando llegas al límite de 500 MB?",[10,147,148],{},"Tu base de datos entra en modo de solo lectura. Los visitantes pueden seguir\nnavegando, porque la lectura sigue funcionando, y todo lo que guarda algo falla.",[10,150,151,152,156],{},"Un registro es una escritura. También lo son un pedido nuevo, un perfil editado,\nun mensaje enviado y un formulario completado. En modo de solo lectura Postgres\nrechaza cada una de ellas, y las peticiones de tu app vuelven con el error\n",[153,154,155],"code",{},"cannot execute INSERT in a read-only transaction",". En una app hecha con un\nconstructor de IA, la persona que hace clic puede verlo como un indicador de\ncarga, o como nada en absoluto. Las páginas que siguen cargando son lo que lo\nvuelve difícil de notar. Desde fuera la app parece estar bien, y ha dejado de\nrecibir nada nuevo.",[158,159],"diagram",{"alt":160,"caption":161,"src":162},"Una base de datos llena hasta su línea de límite. Las lecturas salen por la derecha y llegan a una pantalla, con una marca de visto. Las filas nuevas que llegan por la izquierda se detienen contra una barrera en la pared de la base de datos, cada una tachada.","A los 500 MB la base de datos sigue respondiendo y deja de aceptar. Todo lo que guarda un visitante es una escritura.","\u002Fblog\u002Fsupabase-free-plan-limits\u002Freads-out-writes-refused-1600x620.png",[10,164,165],{},"Tres cosas de los 500 MB pillan desprevenida a la gente:",[167,168,169,177,183],"ul",{},[170,171,172,176],"li",{},[173,174,175],"strong",{},"Cuenta tus datos, no el disco."," Supabase mide tus tablas, índices y vistas\nmaterializadas. El proyecto gratuito está sobre 1 GB de disco, y el espacio\npor encima de 500 MB no está a tu disposición.",[170,178,179,182],{},[173,180,181],{},"Una parte ya está ocupada antes de empezar."," Un proyecto nuevo ya ronda los\n40 a 60 MB antes de tu primera fila, algo que Supabase atribuye a las\nextensiones y esquemas que instala.",[170,184,185,188],{},[173,186,187],{},"Borrar filas no devuelve el espacio de inmediato."," Postgres marca las filas\nborradas como eliminadas y recupera el sitio cuando se ejecuta un vacuum, así\nque una limpieza puede parecer que no sirvió de nada.",[10,190,191,192,197,198,202],{},"Hay dos salidas. Pasar a Pro, donde cada proyecto tiene 8 GB de disco y puede\ncrecer por encima una vez que el Spend Cap está desactivado. O hacer sitio: la\n",[26,193,196],{"href":194,"rel":195},"https:\u002F\u002Fsupabase.com\u002Fdocs\u002Fguides\u002Fplatform\u002Fdatabase-size",[30],"guía sobre el tamaño de la base de datos","\nde Supabase explica cómo desactivar el modo de solo lectura durante una sesión\nen el SQL Editor, borrar lo que ya no necesitas, ejecutar un vacuum y volver a\nactivar las escrituras. Haz una copia antes de borrar nada, porque en el plan\ngratuito nadie más tiene una.\n",[26,199,201],{"href":200},"\u002Fblog\u002Fback-up-supabase-free-tier","Hacer una desde el panel"," no necesita\nterminal.",[10,204,205,206,209],{},"Hay también un segundo interruptor, más lento, sobre el tamaño de la base de\ndatos. Supabase vigila el tamaño de la base de datos de la organización como\npromedio del mes de facturación, y una organización por encima de ese cupo\npuede quedar restringida, con cada petición respondida con ",[153,207,208],{},"402",". Como es un\npromedio, reducir la base de datos hoy no levanta la restricción. Lo hace el siguiente mes\nde facturación, y también un cambio de plan.",[34,211,213],{"id":212},"qué-cuenta-como-egress-en-el-plan-gratuito-de-supabase","¿Qué cuenta como egress en el plan gratuito de Supabase?",[10,215,216],{},"Cada byte que tus proyectos envían hacia fuera. Los 5 GB al mes del plan\ngratuito se comparten entre toda la organización, y es un límite al que puedes\nllegar sin hacer nada fuera de lo normal.",[10,218,219],{},"Supabase lo cuenta en todos sus servicios: las filas que tu app lee a través de\nsu API, los inicios de sesión, los archivos que tus usuarios descargan de\nStorage, las respuestas de las Edge Functions y las actualizaciones de Realtime.\nLos archivos servidos desde la caché de Supabase cuentan contra otros 5 GB\npropios, y esos solo se aplican a Storage.",[10,221,222,223,228,229,233],{},"Los backups también cuentan. Cada copia sacada desde fuera de Supabase es una\ndescarga, la haga la herramienta que la haga, incluida la nuestra, y los\n",[26,224,227],{"href":225,"rel":226},"https:\u002F\u002Fsupabase.com\u002Fdocs\u002Fguides\u002Fplatform\u002Fmanage-your-usage\u002Fegress",[30],"propios consejos de Supabase para reducir el egress","\nmencionan respaldar menos tablas, o con menos frecuencia. Una copia diaria de\nuna base de datos en el límite de 500 MB mueve unos 15 GB al mes. Eso es tres\nveces el cupo gratuito antes de que un solo visitante haya cargado una página.\n",[26,230,232],{"href":231},"\u002Fblog\u002Fsupabase-backup-github-action","El egress que gasta un backup programado","\nestá desglosado allí por tamaño de base de datos, si estás eligiendo cada cuánto\nhacer uno.",[10,235,236,237,239],{},"Pasarte no corta nada ese día. Supabase envía un correo a tu dirección de\nfacturación y abre un período de gracia. Si sigues por encima, las restricciones\nque enumera su FAQ de facturación son pausar proyectos, pasar bases de datos a\nsolo lectura y responder a cada petición de API con un código de estado ",[153,238,208],{},", y\nen general se aplican a todos los proyectos de la organización. Se levantan\ncuando empieza el siguiente ciclo de facturación, o al momento si cambias de\nplan. El período de gracia, además, se da una sola vez. Después, un segundo\nexceso se restringe de inmediato, hasta que te hayas mantenido por debajo de los\nlímites durante varios ciclos de facturación.",[34,241,243],{"id":242},"por-qué-el-plan-gratuito-pausa-un-proyecto-tranquilo","¿Por qué el plan gratuito pausa un proyecto tranquilo?",[10,245,246],{},"Porque nadie lo usó. Un proyecto gratuito con muy poca actividad en la base de\ndatos durante siete días se pausa, lo que lo convierte en el único interruptor\nde la caja que salta cuando no pasa nada.",[10,248,249,250,254],{},"Supabase envía un aviso por correo alrededor de una semana antes y una\nconfirmación cuando lo pausa. Tus páginas suelen seguir cargando, porque las\nsirve tu constructor, mientras todo lo que hay detrás deja de responder. Una\ntienda de temporada, una app entre dos lanzamientos, una herramienta que un\ncliente abre una vez al mes: todas parecen inactivas para esta regla. Tienes un\naño para pulsar Resume, y\n",[26,251,253],{"href":252},"\u002Fblog\u002Fsupabase-project-paused-recover","qué hacer cuando un proyecto ya está pausado","\ntiene su propio artículo.",[10,256,257],{},"Los proyectos en un plan de pago nunca se pausan por inactividad.",[34,259,261],{"id":260},"cuánto-cuesta-supabase-pro-y-qué-añade","¿Cuánto cuesta Supabase Pro y qué añade?",[10,263,264],{},"$25 al mes por organización, que incluyen $10 de créditos de cómputo para cubrir\nun proyecto en la instancia Micro que Supabase usa por defecto.",[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],{},"Base de datos",[66,287,288],{},"500 MB, luego solo lectura",[66,290,291],{},"8 GB de disco, más con el Spend Cap desactivado",[48,293,294,296,299],{},[66,295,79],{},[66,297,298],{},"5 GB al mes",[66,300,301],{},"250 GB al mes",[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],{},"Tras una semana tranquila",[66,329,330],{},"Nunca",[48,332,333,335,337],{},[66,334,132],{},[66,336,135],{},[66,338,339],{},"Diarios, guardados 7 días",[48,341,342,345,348],{},[66,343,344],{},"Soporte",[66,346,347],{},"Comunidad",[66,349,350],{},"Correo electrónico",[10,352,353],{},"En una app pequeña con usuarios reales, dos filas de esa tabla son las que\ndeciden. La pausa se acaba y empiezan los backups diarios, por los mismos $25.\nUna app con unos cientos de usuarios puede estar muy por debajo de todos los\nlímites del plan gratuito y aun así perder una semana de trabajo por una\nmigración que sale mal, sin ninguna copia a la que volver.",[10,355,356,357,361,362,366],{},"Los backups que activa Pro se guardan dentro de tu cuenta de Supabase, cubren la\nbase de datos y llegan siete días atrás.\n",[26,358,360],{"href":359},"\u002Fblog\u002Fdoes-supabase-back-up-my-database","¿Supabase hace backup de mi base de datos?","\nrepasa qué sobrevive esa copia. Para volver a un minuto concreto en lugar de a\nanoche, Supabase vende la recuperación a un punto en el tiempo como complemento\na $100 al mes además de Pro, y\n",[26,363,365],{"href":364},"\u002Fblog\u002Fsupabase-point-in-time-recovery","lo que compra ese complemento"," tiene el\ndetalle.",[10,368,369],{},"Pro también cambia lo que hace un límite. Viene con un Spend Cap, activado por\ndefecto, y con el tope activado Pro funciona como el plan gratuito con un techo\nmás alto: si pasas un cupo, recibes el mismo período de gracia y las mismas\nrestricciones. Desactiva el tope y los interruptores se convierten en\nmedidores. Nada se detiene, y el exceso se factura a las tarifas de la página de\nprecios de Supabase. Elige según qué te dolería más, una factura más alta o una\napp que se para.",[158,371],{"alt":372,"caption":373,"src":374},"Dos flujos cruzan el mismo límite punteado. En la línea de arriba hay un interruptor saltado en el límite y nada pasa de él. En la de abajo hay un medidor en el límite, el flujo sigue a través de él y a su lado se apilan monedas.","Con el Spend Cap activado, pasar un cupo lo detiene todo. Sin él, pasarlo suma a la factura.","\u002Fblog\u002Fsupabase-free-plan-limits\u002Fbreaker-or-meter-1600x620.png",[34,376,378],{"id":377},"cambiar-de-plan-un-proyecto-de-supabase-cambia-todos-los-demás","¿Cambiar de plan un proyecto de Supabase cambia todos los demás?",[10,380,381],{},"Sí. El plan pertenece a la organización, y todos los proyectos que tiene se\nmueven juntos.",[10,383,384],{},"Supabase no deja mezclar proyectos gratuitos y de pago en una misma\norganización. Si tu app en producción comparte una con un proyecto de pruebas\nque olvidaste, el cambio de plan pone los dos en Pro, y el segundo suma unos\n$10 al mes de cómputo a los $25, porque los créditos incluidos cubren un\nproyecto.",[10,386,387],{},"El arreglo no cuesta nada. Antes de cambiar de plan, mueve el proyecto que debe\nseguir gratis a una organización propia. Supabase llama a esto una\ntransferencia de proyecto, y se inicia desde los ajustes General de ese\nproyecto.",[158,389],{"alt":390,"caption":391,"src":392},"El contorno de una organización con dos proyectos, ambos iluminados en el color de pago, con una moneda sobre cada uno. Al lado, la misma pareja tras una transferencia: el proyecto en producción solo en una organización iluminada con una moneda, y el de pruebas en otra organización apagada, sin ninguna.","El plan se fija en la organización. Un proyecto que debe seguir gratis necesita una organización propia.","\u002Fblog\u002Fsupabase-free-plan-limits\u002Fone-organization-one-plan-1600x620.png",[34,394,396],{"id":395},"qué-no-copia-ningún-plan-de-supabase","¿Qué no copia ningún plan de Supabase?",[10,398,399,400,405],{},"Los archivos que subieron tus usuarios, tus Edge Functions y los ajustes de tu\nproyecto. Los backups de todos los planes son una copia de la base de datos, y\nla ",[26,401,404],{"href":402,"rel":403},"https:\u002F\u002Fsupabase.com\u002Fdocs\u002Fguides\u002Fplatform\u002Fbackups",[30],"documentación de backups","\nde Supabase dice claramente que no incluyen los objetos guardados a través de la\nStorage API.",[10,407,408,409,413],{},"Cuando Supabase restaura un backup en un proyecto nuevo, su lista de lo que hay\nque volver a configurar a mano incluye los archivos de Storage y los ajustes de\nlos buckets, las Edge Functions, los ajustes de Auth y las claves de API. Eso\nvale en el plan gratuito, en Pro y en todo lo que está por encima. Los avatares\ny PDF de tus buckets necesitan su propia copia, y\n",[26,410,412],{"href":411},"\u002Fblog\u002Fsupabase-storage-backup","cómo hacer backup de Supabase Storage"," repasa\nlas formas de sacarla.",[34,415,417],{"id":416},"dónde-encaja-reeve-care","Dónde encaja Reeve Care",[10,419,420],{},[173,421,422],{},"Care guarda una copia de tu base de datos de Supabase fuera de tu cuenta de\nSupabase, de forma programada, estés en el plan de Supabase que estés.",[167,424,425,431,437,443,449],{},[170,426,427,430],{},[173,428,429],{},"Diaria en Care, y más frecuente en los planes superiores."," Una copia que\nfalla te envía un correo, y así un proyecto pausado se nota la misma noche en\nque deja de responder.",[170,432,433,436],{},[173,434,435],{},"La copia vive fuera de tu cuenta de Supabase."," Cifrada, en almacenamiento\nque gestionamos nosotros, así que una pausa, una restricción o un acceso\nperdido dejan tus backups donde estaban.",[170,438,439,442],{},[173,440,441],{},"Cada copia se vuelve a leer antes de contar."," La fecha de tu panel es la de\nla última copia que pasó esa comprobación.",[170,444,445,448],{},[173,446,447],{},"Restaurar es un botón",", y antes de empezar toma una instantánea del estado\nactual, así que la restauración tiene su propio deshacer.",[170,450,451,454],{},[173,452,453],{},"Los archivos que subieron tus usuarios también vienen",", en cuanto conectas\nuna credencial de Storage. Es una segunda clave, que se pide por separado,\nporque la clave que Supabase emite para Storage puede escribir además de leer.",[10,456,457,458,461,462,466],{},"Care empieza en $49 al mes para una app. Es un precio de lista, y la\n",[26,459,31],{"href":460},"\u002Fpricing"," a veces está por debajo y nunca por encima. En\nPro, mantén activados también los backups diarios de Supabase, para que haya dos\ncopias en dos sitios. La copia, la comprobación y la restauración están\ndibujadas paso a paso en la\n",[26,463,465],{"href":464},"\u002Fsupabase-backups","página de backups de Supabase",".",[34,468,470],{"id":469},"qué-hacer-esta-semana","Qué hacer esta semana",[472,473,474],"key-takeaways",{},[167,475,476,479,482,485,488],{},[170,477,478],{},"Abre la página Usage de tu organización en el panel de Supabase y lee tres cifras: el tamaño de la base de datos, el egress del mes pasado y el almacenamiento de archivos. Cada una es una fila de la primera tabla de arriba.",[170,480,481],{},"Si la base de datos se acerca a los 500 MB, elige ya entre cambiar de plan y hacer limpieza, antes de que el modo de solo lectura elija por ti.",[170,483,484],{},"Antes de cambiar de plan, revisa qué proyectos comparten la organización y mueve los que deban seguir gratis a una organización propia.",[170,486,487],{},"Si te quedas en el plan gratuito, guarda tu propia copia de la base de datos en algún lugar fuera de Supabase, como recomienda la propia documentación de Supabase.",[170,489,490],{},"Si pasas a Pro, mira al día siguiente en Database y luego Backups y confirma que la primera copia diaria está ahí.",[10,492,493,494,498],{},"Antes de cerrar esta pestaña, abre la página Usage y busca la cifra que está más\ncerca de su límite. Ese es el interruptor que está más cerca de saltar. La\n",[26,495,497],{"href":496},"\u002Fchecklist","lista de seguridad de 10 minutos"," cubre los backups junto con el\nresto de lo que conviene confirmar en una app de la que depende gente.",{"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},"Fundamentos de seguridad","\u002Fblog\u002Fsupabase-free-plan-limits\u002Fcover-1200x630.png","Un cuadro eléctrico con todos los interruptores arriba salvo uno, que ha saltado y queda sobre una franja ámbar.","Los límites del plan gratuito de Supabase: 500 MB de base de datos, 5 GB de egress y ningún backup. Qué pasa en cada uno y qué cambia Pro por $25.",false,"md",[520,523,525,528,531,534],{"q":521,"a":522},"¿Cuánto cuesta Supabase?","El plan gratuito no cuesta nada. Pro empieza en $25 al mes por organización, e incluye $10 de créditos de cómputo, suficientes para un proyecto en la instancia Micro por defecto. Cada proyecto adicional en un plan de pago suma unos $10 al mes de cómputo. Team y Enterprise están por encima de Pro, para empresas que necesitan cosas como inicio de sesión único e informes de cumplimiento. Consulta las cifras en la página de precios de Supabase el día que decidas, porque son suyas y pueden cambiar.",{"q":37,"a":524},"El 29 de septiembre de 2026 Supabase indicaba 500 MB de base de datos por proyecto, 1 GB de almacenamiento de archivos, 5 GB de egress al mes más 5 GB de egress desde caché, 50.000 usuarios activos mensuales y dos proyectos activos. Un proyecto con muy poca actividad durante una semana se pausa, y el plan gratuito no hace ningún backup automático.",{"q":526,"a":527},"¿Qué pasa cuando llego al límite de 500 MB?","El proyecto entra en modo de solo lectura. Las páginas que solo leen datos siguen funcionando, y todo lo que escribe falla con el error cannot execute INSERT in a read-only transaction: registros, pedidos, formularios guardados. O pasas a Pro, o desactivas el modo de solo lectura durante una sesión en el SQL Editor, borras lo que no necesitas y ejecutas un vacuum para que el espacio se libere de verdad. Haz una copia antes de borrar nada.",{"q":529,"a":530},"¿El plan gratuito de Supabase incluye backups?","No. Supabase marca los backups automáticos como no incluidos en el plan gratuito, y su documentación recomienda a los proyectos gratuitos exportar sus datos con regularidad con la CLI de Supabase y guardar esa copia en otro lugar. Los backups diarios empiezan con Pro, que conserva los últimos siete.",{"q":532,"a":533},"¿Vale la pena Supabase Pro para una app pequeña?","Si hay personas reales que dependen de ella, casi siempre sí, y rara vez por el espacio. Pro acaba con la pausa semanal y activa los backups diarios. Una app con unos cientos de usuarios puede estar muy por debajo de todos los límites gratuitos y aun así perder una semana de trabajo por una migración que sale mal, y en el plan gratuito no hay ninguna copia a la que volver.",{"q":535,"a":536},"¿Los backups cuentan para mi egress de Supabase?","Sí, cuando la copia se saca desde fuera de Supabase. El egress es cada byte que tus proyectos envían hacia fuera, y un backup es una descarga. Los propios consejos de Supabase para reducir el egress incluyen respaldar menos tablas o con menos frecuencia. Una copia diaria de una base de datos en el límite de 500 MB mueve unos 15 GB al mes, tres veces el cupo gratuito, y el tráfico de tu propia app sale de los mismos 5 GB.","\u002Fblog\u002Fsupabase-free-plan-limits\u002Fcard-800x500.png",[539,540,541,542,543,544,545,546,547,548],"cuánto cuesta supabase","supabase precio","límites plan gratuito supabase","supabase es gratis","supabase precios","supabase límite 500 mb","supabase límite egress","supabase plan pro precio","supabase modo solo lectura","cuándo pasar a supabase pro",{},true,"\u002Fblog\u002Fsupabase-free-plan-limits","2026-09-29",{"title":5,"description":516},"blog\u002Fsupabase-free-plan-limits",[556,557,558],"Los límites del plan gratuito de Supabase son 500 MB de base de datos, 1 GB de archivos, 5 GB de egress al mes y 50.000 usuarios activos mensuales, y no guarda ningún backup automático de tu base de datos.","Cada límite detiene algo distinto. A los 500 MB tu base de datos pasa a solo lectura y los registros fallan. Por encima del cupo de egress, tras un período de gracia, todos los proyectos de tu organización pueden quedar restringidos.","Pro cuesta $25 al mes. El mismo pago que acaba con la pausa semanal activa también los backups diarios, y en una app con usuarios reales ese suele ser el motivo para cambiar.","hkMDBMtwxuD7M9T3dSzw8_7EZ7-qxa-MfwINYn3IDEo",[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","Escaneo de seguridad de Base44: lo que solo él ve","El escaneo de seguridad de Base44 revisa siete tipos de problema desde dentro. Esta es la mitad que lee y nadie más puede leer, y la mitad que nunca mira.","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","Tu clave API se filtró. El orden en el que hay que actuar","Una clave API se filtró y no sabes por dónde empezar. No todas las claves de tu frontend lo son, y el orden importa más que la velocidad.","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\" sin desactivar RLS","\"Infinite recursion detected in policy for relation\" significa que tu policy preguntó a la tabla que protege. Así se rompe el 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\" en Supabase, y el arreglo equivocado","\"No API key found in request\" significa que tu petición llegó a Supabase sin clave. Casi todas las respuestas apuntan a las reglas de tu base de datos.","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","¿Es seguro Base44? Lo que vimos en 5.442 apps Base44","¿Es seguro Base44? Pasamos nueve comprobaciones a 5.442 apps Base44 en producción. Casi todas sacaron B por motivos que su dueño nunca eligió.","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","Ocultar una clave API: muévela a una Edge Function de Supabase","Ocultar una clave API significa sacarla del navegador, y una Edge Function de Supabase es el sitio más pequeño donde ponerla. Dos pasos importan más.","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","¿Tu archivo .env está expuesto? Las doce rutas a revisar","¿Tu archivo .env está expuesto en tu propio servidor web? Doce direcciones te lo dicen, y un acierto significa que todo lo que contiene ya es 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","Seguridad de v0: las 1.790 aplicaciones escaneadas sacaron una A","Seguridad de v0, medida en 1.790 aplicaciones v0 en vivo: todas sacaron A. Solo 17 nombraban una base de datos, y eso es casi todo lo que mide la A.","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","¿Es seguro Bolt? Lo que vimos en 1.123 aplicaciones Bolt","¿Es seguro Bolt? Pasamos 1.123 aplicaciones Bolt en vivo por nueve comprobaciones. El hosting salió limpio. Los hallazgos eran claves y tablas abiertas dentro.","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","¿Supabase está caído o es tu app? Cómo distinguirlo","¿Supabase está caído o es tu app? Un proyecto pausado, una base de datos llena y un fallo tuyo parecen lo mismo. Cuatro comprobaciones los separan.","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","¿Supabase cifra mis datos? Sí. Esto es lo que detiene","¿Supabase cifra los datos? Sí: AES-256 en reposo, TLS en tránsito, SOC 2 e ISO 27001. Qué cubre cada uno, y la fuga que ninguno de ellos detiene.","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","Prueba tu backup de Supabase antes del día que lo necesites","Cómo probar tu backup de Supabase: restaurarlo en un proyecto de prueba, contar filas, iniciar sesión y buscar la línea que le falta a un archivo 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 gratis de Supabase con una GitHub Action, y la trampa","Un backup de Supabase con GitHub Action es gratis y sirve a muchas apps. El workflow, el connection string correcto y el egress de cada ejecución.","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 qué no puedes descargar tu backup de Supabase","No puedes descargar tu backup de Supabase en un proyecto actual: la copia diaria es una instantánea física. Cómo comprobarlo y tener tu propia copia.","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\": el grant que falta","Desde el 30 de octubre, una tabla nueva de Supabase responde \"permission denied for table\" hasta que le das acceso. El grant del email es la mitad del arreglo.","\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","¿Un endpoint de API abierto es un problema? Mira el JSON","Tu escaneo señaló un endpoint de API abierto. Que importe depende de lo que devolvió, y la mayoría de los que encontramos eran de la 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","Escaneo de seguridad de Lovable: lo que no puede probar","Escaneo de seguridad de Lovable: qué revisan el Quick scan y el Deep scan, cuándo corre cada uno, y lo único que ningún escaneo desde dentro puede probar.","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 qué tu dump de Supabase no tiene usuarios dentro","Ejecuta supabase db dump por sí solo y obtienes la forma de tu base de datos y ninguna de sus filas, sin el esquema auth donde viven tus usuarios.","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","Dominio caducado, web caída: qué pasa a partir de ahora","Tu dominio caducó y tu web está caída. Aquí tienes el reloj que acaba de arrancar, por qué el certificado es el menor problema, y cómo comprobar ambos.","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","¿Es seguro Lovable? Lo que vimos en 18.554 aplicaciones Lovable","¿Es seguro Lovable? Pasamos 18.554 aplicaciones Lovable por nueve comprobaciones. La plataforma fue la más limpia de cinco. Los hallazgos estaban dentro.","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","La lista de seguridad del vibe coding, en nueve comprobaciones","Una lista de seguridad del vibe coding con nueve puntos, cada uno verificable en tu app desde fuera por cualquiera, y cada uno con una prueba de una línea.","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","Una clave secreta de Stripe en tu frontend puede mover dinero","Una clave secreta de Stripe expuesta en tu frontend puede reembolsar, cobrar y leer cada ficha de cliente que tienes. Tu clave pk_live_ sí debe estar ahí.","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","Variables de entorno de Vite expuestas: el prefijo dice publica esto","Variables de entorno de Vite expuestas en tu app: hicieron lo que pedía el prefijo. VITE_ y NEXT_PUBLIC_ significan publica esto, y la IA nunca supo el coste.","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","Seguridad en Base44: qué marca un escaneo y qué te toca arreglar a ti","Seguridad en Base44 en 5.438 apps escaneadas: tres hallazgos en casi todas son de la plataforma, el source map es la insignia de Base44 y lo tuyo es poco.","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","¿Es seguro Cursor AI? El editor, el código y la app que publicaste","¿Es seguro Cursor AI? Tres preguntas en una búsqueda: qué guarda Cursor, en qué falla el código que escribe y si la app que publicaste está abierta.","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","¿Es seguro Replit? Lo que vimos en 3.042 aplicaciones Replit en vivo","¿Es seguro Replit? Pasamos 3.042 aplicaciones Replit en vivo por nueve comprobaciones externas. Los hallazgos estaban en la aplicación publicada, no en el 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: tu copia de la base no tiene archivos","Un Supabase storage backup es una tarea aparte. Las copias de la base guardan la lista de tus archivos y ninguno de ellos, así que cada upload queda roto.","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 de Supabase: precio y límites","El point-in-time recovery de Supabase rebobina tu base de datos a cualquier segundo de la última semana. Cuesta $100 al mes sobre Pro y solo cubre la base.","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},"¿Proyecto de Supabase pausado? Tus datos siguen ahí","Supabase pausó tu proyecto tras una semana sin actividad. No se ha borrado nada, Restaurar está junto al nombre y tienes un año antes de que eso cambie.","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","¿Qué builder de apps con IA es más seguro? 30.998 apps escaneadas","¿Qué builder de apps con IA es más seguro? Escaneamos 30.998 apps activas de Lovable, Base44, Replit, v0 y Bolt. El builder no es lo que decide tu 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","Activa Row Level Security en cada tabla de Supabase y compruébalo","Activar Row Level Security en Supabase sin política cierra la tabla del todo. Una política sin el interruptor no hace nada. Aquí tienes el SQL y la prueba.","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\": lo que el aviso no ve","Supabase marca \"RLS disabled in public\" como error. No dice nada de la política de lectura que deja tu tabla igual de abierta a cualquiera.","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","Cómo rotar una clave service_role de Supabase filtrada","Supabase dice que primero cierres la fuga. Otras guías dicen que rotes ya. Cuál es lo correcto depende de dónde se filtró tu clave service_role.","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","Escáneres de seguridad vibe coding comparados, el nuestro incluido","El mejor escáner de seguridad para vibe coding depende de tres preguntas que ninguna lista de funciones responde. Diez herramientas, con precios.","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: haz tú mismo las cinco comprobaciones","Un Supabase security checker lee tu app publicada en lugar de la configuración de tu proyecto. Estas son las cinco comprobaciones y cómo hacer cada una.","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","Escáner de seguridad para vibe coding: qué se le escapa","Un escáner de seguridad para vibe coding lee tu app en vivo desde fuera. Qué cubre eso, las cuatro cosas que no puede ver y cómo leer el 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","Faltan cabeceras de seguridad: cuándo importa de verdad","Que falten cabeceras de seguridad es el hallazgo que más imprime nuestro escáner. Contra qué protegen y cuándo son la línea menos urgente de tu informe.","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","Tu clave de API de OpenAI está expuesta en tu frontend. Rótala.","Una clave de API de OpenAI expuesta en tu frontend no se puede atar a un dominio. Rótala hoy, mueve la llamada a tu servidor y limita el 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","Clave de API expuesta en el frontend: qué llevan 30.998 apps","Una clave de API expuesta en tu frontend suele ser una clave de Google Maps. Escaneamos 30.998 apps vibe-coded y contamos qué secretos se filtran de verdad.","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","Herramientas de backup de Supabase comparadas, la nuestra incluida","Cuatro tipos de herramienta de backup de Supabase, qué copia cada una y cuándo una GitHub Action gratuita le gana a pagar a cualquiera, nosotros incluidos.","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","Cómo usar secrets en Replit, y qué se publica de todos modos","Cómo usar secrets en Replit: añadir uno, leerlo y arreglar las dos causas del undefined. Y las claves que la herramienta Secrets no puede mantener privadas.","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 del plan gratuito de Supabase: cómo hacer uno sin terminal","No hay backups en el plan gratuito de Supabase: la copia tienes que hacerla tú. Cómo sacarla desde el panel y qué deja fuera la vía CSV.","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","¿Supabase es seguro? Sí. Tu proyecto es otra pregunta","¿Supabase es seguro? La plataforma está auditada, cifrada y sometida a pentests. Su propia documentación dice dónde termina eso y empiezan tus ajustes.","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","Dónde están tus claves API de Supabase: anon, service_role y URL","La URL del proyecto, la clave anon y la clave service_role están en una sola página del panel. Aquí tienes dónde está, y cuál de los cuatro va en tu 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 en Supabase. ¿Y ahora?","\"New row violates row-level security policy\" significa que Supabase rechazó una escritura. El arreglo rápido vuelve a abrir la tabla para cualquiera.","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","¿Es un comodín CORS un riesgo de seguridad? Casi nunca.","¿Es un comodín CORS un riesgo de seguridad? Casi siempre es el ajuste por defecto de tu builder y no entrega nada que tu servidor no diera ya a cualquiera.","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","Supabase branching no es un backup. Solo va hacia adelante.","Por qué el branching de Supabase no es un backup: una rama arranca sin tus datos y un merge solo mueve el esquema. Para qué sirve y qué usar en su 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","Cómo restaurar un backup de Supabase, y qué se rompe después","Cómo restaurar un backup de Supabase desde el panel o desde un archivo de volcado, qué reemplaza la restauración y por qué tu app puede seguir rota al terminar.","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","Tu bucket de Supabase Storage es público. ¿Es un problema?","Un bucket público de Supabase Storage significa que quien tenga la URL de un archivo puede abrirlo. No significa que alguien pueda listar lo que hay 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","¿Es un problema una clave de API de Google en tu frontend?","Una clave de API de Google en tu frontend es la clave que más encuentra nuestro escáner, y casi siempre no pasa nada. Un ajuste gratuito decide cuál es cuál.","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","Un agente de IA borró mis datos de Supabase. ¿Qué puedo recuperar?","Un agente de IA borró datos de tu base. Lo que puedes recuperar ya estaba decidido antes de que se ejecutara, y los próximos minutos deciden el 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","¿Puede cualquiera leer tu base de datos Supabase? 3.680 apps","¿Puede cualquiera leer tu base de datos Supabase sin iniciar sesión? Escaneamos 30.998 apps activas hechas con builders de IA y medimos cuántas dicen que sí.","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 expuestos: tu app está publicando su código original","Un source map expuesto deja que cualquiera lea el código original de tu app, comentarios incluidos. La comprobación de 30 segundos y lo que de verdad importa.","\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","Las nuevas claves de API de Supabase: ¿cuál va en tu app?","Supabase sustituyó anon y service_role por claves publicables y secretas. ¿Cuál pertenece a tu app y cuál no debe estar nunca?","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},"¿Supabase respalda mi base de datos? Depende de tu plan.","¿Supabase respalda tu base de datos? A diario en los planes de pago, y nada en el gratuito. Cómo saber cuál tienes y qué es lo que esa copia no cubre.","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","Supabase Row Level Security está activado. Tu tabla sigue pública.","Activar Supabase Row Level Security no protege una tabla. Lo hacen tus políticas, y la que arregló tu app rota puede dejar entrar a cualquiera.","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","El historial de versiones no es un backup. No recupera una tabla.","Lovable y Bolt guardan un historial de versiones de tu código. Tu base de datos es un servicio aparte, y volver atrás no te devuelve tus datos.","\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","Tres formas de respaldar una base Supabase, y qué falta en cada una","El panel, pg_dump y un servicio gestionado. Qué guarda de verdad cada uno, qué deja fuera sin avisar y cuál sobrevive a perder la cuenta.","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","Qué claves de API son seguras en el navegador y cuáles no","Tu clave anon de Supabase está pensada para ser pública. Tu clave service_role no, y se salta todas las reglas que pongas. Cómo distinguirlas.","\u002Fblog\u002Fwhich-api-keys-are-safe-in-your-frontend\u002Fcard-800x500.png",1791618971467]