[{"data":1,"prerenderedAt":794},["ShallowReactive",2],{"blog-es-supabase-point-in-time-recovery":3,"blog-index-es":444},{"id":4,"title":5,"body":6,"category":401,"cover":402,"coverAlt":403,"description":404,"draft":405,"extension":406,"faq":407,"image":422,"keywords":423,"meta":431,"navigation":432,"ogTitle":433,"path":434,"published":435,"seo":436,"stem":437,"tldr":438,"updated":435,"__hash__":443},"blog_es\u002Fblog\u002Fsupabase-point-in-time-recovery.md","Point-in-time recovery de Supabase: precio y límites",{"type":7,"value":8,"toc":387},"minimark",[9,13,16,19,24,27,30,33,44,48,51,54,98,101,109,112,116,119,127,130,136,143,147,150,157,166,170,173,176,184,188,191,194,199,202,205,209,212,291,294,298,320,324,327,332,364,372,379],[10,11,12],"p",{},"Estás en el plan Pro de Supabase, algo salió mal a una hora que podrías anotar,\ny la copia de anoche es más vieja que el error. En alguna parte del panel hay un\ninterruptor llamado Point in Time Recovery con un precio al lado, y la pregunta\nes si ese precio compra lo que tú crees.",[10,14,15],{},"Aquí está la parte que todos los resúmenes aplanan: el point-in-time recovery y\nuna copia que tú guardas son dos productos distintos, y encender el primero no\ncambia nada de aquello para lo que sirve el segundo. Los dos aparecen bajo\nBackups en el panel, y de ahí viene la mayor parte de la confusión.",[10,17,18],{},"Ayuda pensar en uno como una grabación y en el otro como una fotografía. Una\ncopia diaria es una fotografía: un fotograma al día, tomado a una hora fija, y\npuedes sacarlo del edificio. El point-in-time recovery es la cámara del propio\nedificio, funcionando sin parar, que te deja detenerte en el fotograma que\nquieras. Las cintas están en el sótano y llegan una semana atrás.",[20,21,23],"h2",{"id":22},"qué-es-el-point-in-time-recovery-en-supabase","¿Qué es el point-in-time recovery en Supabase?",[10,25,26],{},"Es una manera de devolver tu base de datos a un momento concreto en vez de a una\ncopia concreta.",[10,28,29],{},"Supabase lo construye con dos cosas que funcionan juntas. La primera es una\ncopia física, una instantánea diaria de los archivos de la base. La segunda es\nel archivado del Write Ahead Log: Postgres lleva un registro continuo de cada\ncambio que hace, y Supabase se lleva esos archivos cada dos minutos, o de\ninmediato cuando uno pasa cierto tamaño. Una restauración carga la instantánea y\nluego reproduce el registro hacia delante hasta llegar al momento que pediste.",[10,31,32],{},"De ese mecanismo viene la precisión. Supabase describe el resultado como una\ngranularidad de hasta segundos, con un peor caso que cifra en un Recovery Point\nObjective de dos minutos, es decir, lo máximo que podrías perder al final del\nmomento que elegiste.",[10,34,35,36,43],{},"Su\n",[37,38,42],"a",{"href":39,"rel":40},"https:\u002F\u002Fsupabase.com\u002Fdocs\u002Fguides\u002Fplatform\u002Fbackups",[41],"nofollow","documentación de copias"," es\nla página donde está la forma actual de todo esto. Todo lo que sigue aquí\ndepende de cifras que les pertenecen.",[20,45,47],{"id":46},"cuánto-cuesta-el-point-in-time-recovery-de-supabase","¿Cuánto cuesta el point-in-time recovery de Supabase?",[10,49,50],{},"$100 al mes por una ventana de siete días, sobre el plan Pro, que por sí solo\ncuesta $25 al mes.",[10,52,53],{},"Supabase factura el complemento por hora y vende tres tamaños de ventana:",[55,56,57,70],"table",{},[58,59,60],"thead",{},[61,62,63,67],"tr",{},[64,65,66],"th",{},"Ventana de recuperación",[64,68,69],{},"Lo que cobra Supabase",[71,72,73,82,90],"tbody",{},[61,74,75,79],{},[76,77,78],"td",{},"7 días",[76,80,81],{},"$0.137 la hora, unos $100 al mes",[61,83,84,87],{},[76,85,86],{},"14 días",[76,88,89],{},"$0.274 la hora",[61,91,92,95],{},[76,93,94],{},"28 días",[76,96,97],{},"$0.55 la hora",[10,99,100],{},"Hay una segunda línea en la factura, y es la que pilla a la gente por sorpresa.\nEl point-in-time recovery exige al menos la instancia de cómputo Small. Un\nproyecto Pro corre por defecto en Micro, que los $10 de crédito de cómputo\nincluidos en el plan cubren por completo; Small ronda los $15 al mes, así que el\ncrédito deja de cubrir tu cómputo y el resto empieza a aparecer en tu factura.\nEl complemento sale, por tanto, algo más caro que la cifra impresa a su lado.",[10,102,103,104,108],{},"Está disponible en Pro, Team y Enterprise. En el plan gratuito no hay nada a lo\nque añadirlo, porque\n",[37,105,107],{"href":106},"\u002Fblog\u002Fdoes-supabase-back-up-my-database","el plan gratuito no toma ninguna copia automática",".",[10,110,111],{},"Comprueba las dos cifras en la página de precios de Supabase el día que decidas,\ny no en esta. Son suyas y pueden cambiarlas, y esta página no se dará cuenta\ncuando lo hagan.",[20,113,115],{"id":114},"cuándo-compensa-el-point-in-time-recovery","¿Cuándo compensa el point-in-time recovery?",[10,117,118],{},"Cuando puedes nombrar el minuto, y cuando el trabajo a ambos lados importa.",[10,120,121,122,126],{},"Una migración corrió a las 14:32 y se llevó una columna. Un script que\narrancaste a mediodía escribió el valor equivocado en cada fila. A un\n",[37,123,125],{"href":124},"\u002Fblog\u002Fai-agent-deleted-my-database","agente de IA le diste permiso de escritura y lo usó",".\nEn los tres casos sabes cuándo, y ese cuándo es toda la entrada. Eliges las\n14:31, y la base de datos vuelve tal como estaba un minuto antes del daño.",[10,128,129],{},"Lo que cuesta dinero es el resto de esa mañana. Restaurar la copia de\nmedianoche también borra cada registro, cada pedido y cada mensaje que tus\nusuarios crearon desde medianoche, así que deshacer un error significa aceptar\nuna segunda pérdida, más pequeña. Con point-in-time recovery el trabajo de la\nmañana se queda.",[131,132],"diagram",{"alt":133,"caption":134,"src":135},"Dos líneas de tiempo con el mismo fallo, marcado con una cruz. En la de arriba, una hilera continua de marcas pequeñas permite que un marcador se plante justo antes del fallo, y el corchete entre ambos es corto. En la de abajo, el marcador se planta sobre el último de cinco documentos muy separados, y el corchete hasta el fallo es varias veces más largo.","El mismo accidente en dos líneas de tiempo. El corchete es lo que vuelves a teclear.","\u002Fblog\u002Fsupabase-point-in-time-recovery\u002Fto-the-second-or-to-the-night-1600x560.png",[10,137,138,139,108],{},"Ya que estás en el panel pensando en lo que podría salir mal, también vale la\npena saber qué muestra tu app a un desconocido. Nuestro escaneo gratuito lee tu\nsitio en vivo desde fuera y te dice lo que ve. Tarda unos 20 segundos y no pide\ncuenta: ",[37,140,142],{"href":141},"\u002Fsecurity-scanner","escanea tu app",[20,144,146],{"id":145},"lo-que-el-point-in-time-recovery-no-alcanza","Lo que el point-in-time recovery no alcanza",[10,148,149],{},"Dos cosas: un error que descubres cuando la ventana ya ha pasado, y la cuenta en\nla que vive todo el montaje.",[10,151,152,156],{},[153,154,155],"strong",{},"Un error que descubres tarde."," La ventana se mueve con el día de hoy, así que\nuna ventana de siete días son siempre los últimos siete días y nunca una semana\nfija. Para un borrado es generosa, porque un borrado suele anunciarse en\nminutos. Con los silenciosos no ayuda nada: un formulario que lleva guardando el\nvalor equivocado desde el martes de la semana pasada, una columna que\ndesapareció en una migración que nadie leyó con calma, un campo que un script\nlleva un mes sobrescribiendo. Esos salen cuando escribe un cliente, y un cliente\nque escribe rara vez lo hace dentro de los siete días siguientes a la causa.",[10,158,159,162,163,108],{},[153,160,161],{},"La cuenta donde vive la recuperación."," Las instantáneas y el registro\narchivado están dentro de tu proyecto de Supabase, y eso es justo lo que las\nhace rápidas y las convierte en un clic. También significa que un proyecto\nsuspendido, una tarjeta caducada o un acceso que no puedes recuperar se llevan\nla recuperación junto con aquello que protegía. Es un trato justo y no un\ndefecto, y es la razón por la que\n",[37,164,165],{"href":106},"una copia dentro de tu cuenta es solo media red de seguridad",[20,167,169],{"id":168},"el-point-in-time-recovery-cubre-mis-archivos-de-storage","¿El point-in-time recovery cubre mis archivos de Storage?",[10,171,172],{},"No. Las palabras de Supabase son que las copias de la base de datos no incluyen\nlos objetos que guardas a través de la Storage API, y el point-in-time recovery\nes una función de la base.",[10,174,175],{},"Cada avatar, cada PDF subido y cada foto de producto que añadieron tus usuarios\nvive en Storage, que es un servicio aparte. Tu base de datos guarda la ruta a\ncada archivo y nada de su contenido. Así que una base rebobinada al martes\napunta a lo que haya hoy en tus buckets, y un archivo borrado el miércoles sigue\nborrado después de una recuperación que funcionó a la perfección.",[10,177,178,179,183],{},"Decidas lo que decidas en esta página, tus archivos necesitan su propia\nrespuesta.\n",[37,180,182],{"href":181},"\u002Fblog\u002Fthree-ways-to-back-up-a-supabase-database","Tres formas de respaldar una base Supabase","\ncuenta dónde los deja cada ruta.",[20,185,187],{"id":186},"puede-una-herramienta-externa-darme-point-in-time-recovery","¿Puede una herramienta externa darme point-in-time recovery?",[10,189,190],{},"No, y esta es la afirmación del tema que más merece mirarse con calma, porque\nsuena a comparación de funciones y es una diferencia de categoría.",[10,192,193],{},"El point-in-time recovery reproduce el write-ahead log, y ese registro es un\narchivo en el disco donde corre tu base de datos. Leerlo significa estar de pie\nsobre esa máquina. Toda herramienta de backup externa, la nuestra incluida, se\nconecta a tu base igual que lo hace tu app, le pide su contenido y anota la\nrespuesta. Lo que sale es un volcado lógico: una copia completa y portátil de\ntodo lo que había en la base en el momento en que corrió.",[131,195],{"alt":196,"caption":197,"src":198},"Un borde discontinuo alrededor de una base de datos. Dentro, una hilera continua de marcas pequeñas alimenta un archivo guardado. Una línea discontinua que intenta llevar esa hilera hacia fuera aparece tachada. Una segunda línea sale de la base, cruza el borde y llega como un archivo guardado que se relee con una lupa y se marca con un visto.","Una herramienta fuera del borde puede pedirle a la base su contenido. El registro vivo que queda detrás del borde no es algo que se le pueda entregar.","\u002Fblog\u002Fsupabase-point-in-time-recovery\u002Fthe-log-stays-inside-1600x600.png",[10,200,201],{},"Un volcado es otra vez la fotografía. Puedes llevártelo a cualquier parte,\ncargarlo en un proyecto recién creado de otra cuenta y leerlo con herramientas\ncorrientes de Postgres que nunca han oído hablar de Supabase. Lo que no puedes\nhacer es detenerte entre dos volcados, porque entre medias no había nada\ngrabando.",[10,203,204],{},"Así que la versión honesta de la comparación. Si lo que necesitas es caer en las\n14:31, compra el complemento de Supabase; nadie fuera de la plataforma está en\ncondiciones de vendértelo. Un proveedor que anuncia point-in-time recovery a\ntravés de una conexión está describiendo un horario, y una pregunta separa a los\ndos: ¿su restauración cae en un minuto que tú tecleas, o en la última vez que\ncorrió su copia?",[20,206,208],{"id":207},"point-in-time-recovery-o-una-copia-que-tú-guardas","¿Point-in-time recovery o una copia que tú guardas?",[10,210,211],{},"Pregúntate contra qué desastre te estás asegurando, porque estos dos responden a\ndesastres distintos.",[55,213,214,226],{},[58,215,216],{},[61,217,218,220,223],{},[64,219],{},[64,221,222],{},"Point-in-time recovery",[64,224,225],{},"Una copia que tú guardas",[71,227,228,239,250,259,269,280],{},[61,229,230,233,236],{},[76,231,232],{},"Te devuelve a un minuto concreto",[76,234,235],{},"Sí",[76,237,238],{},"Al momento en que corrió una copia",[61,240,241,244,247],{},[76,242,243],{},"Llega más allá de la ventana",[76,245,246],{},"No",[76,248,249],{},"Hasta donde guardes copias",[61,251,252,255,257],{},[76,253,254],{},"Sobrevive a perder la cuenta",[76,256,246],{},[76,258,235],{},[61,260,261,264,266],{},[76,262,263],{},"Incluye archivos de Storage",[76,265,246],{},[76,267,268],{},"Solo si se le pidió que los tomara",[61,270,271,274,277],{},[76,272,273],{},"Dónde vive",[76,275,276],{},"Dentro de tu proyecto",[76,278,279],{},"Donde tú lo pongas",[61,281,282,285,288],{},[76,283,284],{},"Qué cuesta",[76,286,287],{},"Desde $100 al mes, más el cómputo",[76,289,290],{},"Gratis a mano, o una suscripción",[10,292,293],{},"La mayoría de apps con clientes de verdad quieren las dos, y el orden es lo que\nconviene decidir a conciencia. La copia que tú guardas es la que sobrevive a\ntodo, incluida la cuenta, así que es la primera que hay que montar. El\ncomplemento se compra cuando has calculado que perder una mañana de pedidos te\ncuesta más que él.",[20,295,297],{"id":296},"qué-hacer-esta-semana","Qué hacer esta semana",[299,300,301],"key-takeaways",{},[302,303,304,308,311,314,317],"ul",{},[305,306,307],"li",{},"Averigua si el complemento ya está encendido, en Database y luego Backups en tu panel de Supabase. Se puede estar pagando por él sin saberlo.",[305,309,310],{},"Anota cuánto tiempo podría pasar un error silencioso sin que nadie lo note en tu app. Si ese número es mayor que siete días, una ventana más ancha te compra menos de lo que parece.",[305,312,313],{},"Monta una copia de tu base de datos que viva fuera de tu cuenta de Supabase, por la vía que prefieras. El point-in-time recovery no hace ese trabajo ni lo pretende.",[305,315,316],{},"Respalda tus archivos de Storage por separado, porque ninguna recuperación de base de datos de ningún plan los incluye.",[305,318,319],{},"Restaura algo una vez en un proyecto desechable, para que la primera vez que leas una de esas copias no sea en mitad de un incidente.",[20,321,323],{"id":322},"dónde-encaja-reeve-care","Dónde encaja Reeve Care",[10,325,326],{},"Care es la copia que tú guardas, montada por nosotros, con una restauración que\npulsas en vez de armar.",[131,328],{"alt":329,"caption":330,"src":331},"Un panel de Reeve Care con dos filas. En la primera, una base de datos y una imagen salen de un contorno de cuenta discontinuo como un archivo guardado que se cierra con llave, se relee con una lupa y se marca con un visto. En la segunda, primero sale de la cuenta una copia del estado actual, numerada uno, y después la copia elegida viaja de vuelta hacia dentro desde una tarjeta con un botón, numerada dos.","Las copias quedan fuera de la cuenta de la que salieron. Devolver una empieza por tomar otra.","\u002Fblog\u002Fsupabase-point-in-time-recovery\u002Fcare-copy-out-and-button-back-1600x560.png",[302,333,334,340,346,352,358],{},[305,335,336,339],{},[153,337,338],{},"Las copias corren con un horario que no tienes que recordar",", cada seis horas en los planes altos, y una que falla te manda un correo en lugar de un silencio.",[305,341,342,345],{},[153,343,344],{},"Cada copia vive fuera de tu cuenta de Supabase."," Cifrada, en almacenamiento nuestro, para que un proyecto suspendido o un acceso perdido no se lleve tus copias con él.",[305,347,348,351],{},[153,349,350],{},"Cada copia se relee antes de contar."," La fecha de tu panel es la última copia que pasó esa comprobación, nunca el último intento.",[305,353,354,357],{},[153,355,356],{},"Restaurar es un botón",", y antes de empezar toma una instantánea del estado actual, así que la propia restauración tiene su deshacer.",[305,359,360,363],{},[153,361,362],{},"Los archivos que subieron tus usuarios también se copian",", en cuanto conectas tus buckets de Storage. Esa es una segunda clave, pedida aparte, porque la clave que Supabase emite para Storage puede escribir además de leer y preferimos preguntar antes que mezclarla con una que no puede.",[10,365,366,367,371],{},"Care y el complemento se complementan, y así están puestos los precios también.\nCare empieza en $49 al mes para una app, frente a $100 del complemento, y\nmuchas apps deberían tener lo primero antes de plantearse lo segundo. Los\nnuestros son precios de lista, y la ",[37,368,370],{"href":369},"\u002Fpricing","página de precios"," a veces está\npor debajo de la cifra de aquí y nunca por encima. Cada cifra de Supabase en\nesta página está citada de sus propias páginas, sin convertir y sin estimar.",[10,373,374,375,108],{},"Cómo se toma, se comprueba y se devuelve una copia está dibujado paso a paso en\nla ",[37,376,378],{"href":377},"\u002Fsupabase-backups","página de copias de Supabase",[10,380,381,382,386],{},"Antes de cerrar esta pestaña, calcula el número del que depende toda esta\ndecisión: cuánto tiempo podría estar un error en tu app antes de que alguien lo\nnotara. Por debajo de siete días, el complemento te compra precisión de verdad\nel día que la necesites. Por encima, una ventana más ancha no es el sitio para\nel dinero, porque lo que llega más atrás es una copia propia. La\n",[37,383,385],{"href":384},"\u002Fchecklist","lista de seguridad de 10 minutos"," cubre las copias junto al resto\nde lo que conviene confirmar en una app ya lanzada.",{"title":388,"searchDepth":389,"depth":389,"links":390},"",3,[391,393,394,395,396,397,398,399,400],{"id":22,"depth":392,"text":23},2,{"id":46,"depth":392,"text":47},{"id":114,"depth":392,"text":115},{"id":145,"depth":392,"text":146},{"id":168,"depth":392,"text":169},{"id":186,"depth":392,"text":187},{"id":207,"depth":392,"text":208},{"id":296,"depth":392,"text":297},{"id":322,"depth":392,"text":323},"Backups","\u002Fblog\u002Fsupabase-point-in-time-recovery\u002Fcover-1200x630.png","Una base de datos junto a una línea de tiempo, con un marcador sobre un punto dentro del tramo que queda grabado.","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.",false,"md",[408,410,413,416,419],{"q":47,"a":409},"Supabase lo cobra a $100 al mes por una ventana de recuperación de siete días, sobre tu plan Pro. Hay un segundo coste que la cifra grande deja fuera: el complemento exige al menos la instancia de cómputo Small, que ronda los $15 al mes, y un proyecto Pro corre por defecto en la instancia Micro, más pequeña. Lee las dos cifras en su página de precios el día que decidas, porque son suyas y pueden cambiarlas.",{"q":411,"a":412},"¿El plan Pro de Supabase incluye point-in-time recovery?","No. Pro incluye copias diarias que llegan siete días atrás, y el point-in-time recovery es un complemento de pago encima de eso. Supabase lo ofrece en los planes Pro, Team y Enterprise. El plan gratuito no tiene ninguna copia automática, así que allí no hay nada a lo que añadirlo.",{"q":414,"a":415},"¿Una herramienta de backup externa puede darme point-in-time recovery?","No, y una herramienta que insinúe lo contrario está describiendo otra cosa. El point-in-time recovery reproduce el write-ahead log, un archivo en el disco donde corre tu base de datos, así que solo puede leerlo la plataforma que opera ese disco. Toda herramienta externa se conecta igual que lo hace tu app y le pide a la base su contenido, lo que produce una copia portátil de un momento. Esa copia sirve de verdad, y es otro objeto distinto.",{"q":417,"a":418},"¿El point-in-time recovery respalda mis archivos de Supabase Storage?","No. Supabase dice con todas las letras que las copias de la base de datos no incluyen los objetos que guardas a través de la Storage API, y el point-in-time recovery es una función de la base. Cada avatar, PDF e imagen que subieron tus usuarios vive en un servicio aparte, y rebobinar la base al martes deja esos archivos exactamente como están hoy. Respaldarlos es un trabajo propio, tomes la ruta que tomes.",{"q":420,"a":421},"¿Hasta dónde llega hacia atrás el point-in-time recovery de Supabase?","Hasta donde llegue la ventana que pagas, y ni un día más. Supabase vende la retención en tres tamaños: siete días, catorce días y veintiocho días, a $0.137, $0.274 y $0.55 la hora respectivamente. La ventana se mueve con el día de hoy, así que cada hora que pasa empuja la hora más vieja por el otro extremo. Un error de hace cinco semanas queda fuera de las tres.","\u002Fblog\u002Fsupabase-point-in-time-recovery\u002Fcard-800x500.png",[424,425,426,427,428,429,430],"point in time recovery supabase","supabase pitr","precio pitr supabase","recuperacion a un punto en el tiempo supabase","supabase pitr o backups diarios","supabase archivado wal","necesito pitr supabase",{},true,"Cuánto cuesta el point-in-time recovery de Supabase","\u002Fblog\u002Fsupabase-point-in-time-recovery","2026-09-13",{"title":5,"description":404},"blog\u002Fsupabase-point-in-time-recovery",[439,440,441,442],"El point-in-time recovery de Supabase devuelve tu base de datos a un momento que tú eliges, en lugar de a la copia de anoche. Es un complemento del plan Pro en adelante.","Cuesta $100 al mes por una ventana de siete días, y activarlo también mueve tu proyecto a una instancia de cómputo mayor, que se factura aparte.","Ninguna herramienta de backup externa puede ofrecer lo mismo. El point-in-time recovery se apoya en el registro de escritura de la base, que solo puede leer la plataforma que tiene el disco.","Cubre tu base de datos. Tus archivos de Storage quedan fuera, y también un error que descubres cuando la ventana ya ha pasado.","9cW1Vd62ZFv9H8ifNq-tBIMYXvR-lRth0ywMdbZDEOQ",[445,452,458,464,470,476,482,488,494,500,506,512,518,524,530,536,541,547,553,559,565,571,577,583,589,595,601,607,613,614,620,626,632,638,644,650,656,662,668,674,680,686,692,698,704,710,716,722,728,734,740,746,751,757,762,768,773,779,784,789],{"path":446,"title":447,"description":448,"published":449,"category":450,"image":451,"draft":405},"\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","Fundamentos de seguridad","\u002Fblog\u002Fbase44-security-scan\u002Fcard-800x500.png",{"path":453,"title":454,"description":455,"published":456,"category":450,"image":457,"draft":405},"\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":459,"title":460,"description":461,"published":462,"category":450,"image":463,"draft":405},"\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":465,"title":466,"description":467,"published":468,"category":450,"image":469,"draft":405},"\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":471,"title":472,"description":473,"published":474,"category":450,"image":475,"draft":405},"\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":477,"title":478,"description":479,"published":480,"category":450,"image":481,"draft":405},"\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":483,"title":484,"description":485,"published":486,"category":450,"image":487,"draft":405},"\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":489,"title":490,"description":491,"published":492,"category":450,"image":493,"draft":405},"\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":495,"title":496,"description":497,"published":498,"category":450,"image":499,"draft":405},"\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":501,"title":502,"description":503,"published":504,"category":450,"image":505,"draft":405},"\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":507,"title":508,"description":509,"published":510,"category":450,"image":511,"draft":405},"\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":513,"title":514,"description":515,"published":516,"category":450,"image":517,"draft":405},"\u002Fblog\u002Fsupabase-free-plan-limits","¿Cuánto cuesta Supabase? Los límites del plan gratuito","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.","2026-09-29","\u002Fblog\u002Fsupabase-free-plan-limits\u002Fcard-800x500.png",{"path":519,"title":520,"description":521,"published":522,"category":401,"image":523,"draft":405},"\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","\u002Fblog\u002Ftest-your-supabase-backup\u002Fcard-800x500.png",{"path":525,"title":526,"description":527,"published":528,"category":401,"image":529,"draft":405},"\u002Fblog\u002Fsupabase-backup-github-action","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":531,"title":532,"description":533,"published":534,"category":401,"image":535,"draft":405},"\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":537,"title":538,"description":539,"published":534,"category":450,"image":540,"draft":405},"\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":542,"title":543,"description":544,"published":545,"category":450,"image":546,"draft":405},"\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":548,"title":549,"description":550,"published":551,"category":450,"image":552,"draft":405},"\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":554,"title":555,"description":556,"published":557,"category":401,"image":558,"draft":405},"\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":560,"title":561,"description":562,"published":563,"category":450,"image":564,"draft":405},"\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":566,"title":567,"description":568,"published":569,"category":450,"image":570,"draft":405},"\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":572,"title":573,"description":574,"published":575,"category":450,"image":576,"draft":405},"\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":578,"title":579,"description":580,"published":581,"category":450,"image":582,"draft":405},"\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":584,"title":585,"description":586,"published":587,"category":450,"image":588,"draft":405},"\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":590,"title":591,"description":592,"published":593,"category":450,"image":594,"draft":405},"\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":596,"title":597,"description":598,"published":599,"category":450,"image":600,"draft":405},"\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":602,"title":603,"description":604,"published":605,"category":450,"image":606,"draft":405},"\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":608,"title":609,"description":610,"published":611,"category":401,"image":612,"draft":405},"\u002Fblog\u002Fsupabase-storage-backup","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":434,"title":5,"description":404,"published":435,"category":401,"image":422,"draft":405},{"path":615,"title":616,"description":617,"published":618,"category":401,"image":619,"draft":405},"\u002Fblog\u002Fsupabase-project-paused-recover","¿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":621,"title":622,"description":623,"published":624,"category":450,"image":625,"draft":405},"\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":627,"title":628,"description":629,"published":630,"category":450,"image":631,"draft":405},"\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":633,"title":634,"description":635,"published":636,"category":450,"image":637,"draft":405},"\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":639,"title":640,"description":641,"published":642,"category":450,"image":643,"draft":405},"\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":645,"title":646,"description":647,"published":648,"category":450,"image":649,"draft":405},"\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":651,"title":652,"description":653,"published":654,"category":450,"image":655,"draft":405},"\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":657,"title":658,"description":659,"published":660,"category":450,"image":661,"draft":405},"\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":663,"title":664,"description":665,"published":666,"category":450,"image":667,"draft":405},"\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":669,"title":670,"description":671,"published":672,"category":450,"image":673,"draft":405},"\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":675,"title":676,"description":677,"published":678,"category":450,"image":679,"draft":405},"\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":681,"title":682,"description":683,"published":684,"category":401,"image":685,"draft":405},"\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":687,"title":688,"description":689,"published":690,"category":450,"image":691,"draft":405},"\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":693,"title":694,"description":695,"published":696,"category":401,"image":697,"draft":405},"\u002Fblog\u002Fback-up-supabase-free-tier","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":699,"title":700,"description":701,"published":702,"category":450,"image":703,"draft":405},"\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":705,"title":706,"description":707,"published":708,"category":450,"image":709,"draft":405},"\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":711,"title":712,"description":713,"published":714,"category":450,"image":715,"draft":405},"\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":717,"title":718,"description":719,"published":720,"category":450,"image":721,"draft":405},"\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":723,"title":724,"description":725,"published":726,"category":401,"image":727,"draft":405},"\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":729,"title":730,"description":731,"published":732,"category":401,"image":733,"draft":405},"\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":735,"title":736,"description":737,"published":738,"category":450,"image":739,"draft":405},"\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":741,"title":742,"description":743,"published":744,"category":450,"image":745,"draft":405},"\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":124,"title":747,"description":748,"published":749,"category":401,"image":750,"draft":405},"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":752,"title":753,"description":754,"published":755,"category":450,"image":756,"draft":405},"\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":758,"title":759,"description":760,"published":755,"category":450,"image":761,"draft":405},"\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":763,"title":764,"description":765,"published":766,"category":450,"image":767,"draft":405},"\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":106,"title":769,"description":770,"published":771,"category":401,"image":772,"draft":405},"¿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":774,"title":775,"description":776,"published":777,"category":450,"image":778,"draft":405},"\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":780,"title":781,"description":782,"published":777,"category":401,"image":783,"draft":405},"\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":181,"title":785,"description":786,"published":787,"category":401,"image":788,"draft":405},"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":790,"title":791,"description":792,"published":787,"category":450,"image":793,"draft":405},"\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",1791618971543]