Supabase para no programadores: la base de datos de tu app
Todas las apps que genera la IA acaban pidiendo Supabase. Aquí está explicado en cristiano y con el mínimo imprescindible para arrancar.
Le pides una app a la IA y llega un momento en el que te dice: "para esto vas a necesitar Supabase".
Y tú te quedas mirando la pantalla pensando qué narices es Supabase y por qué de repente el proyecto se ha complicado.
Me pasó. Y luego me pasó otras cinco veces, porque resulta que casi cualquier aplicación que hagas con IA acaba en el mismo sitio. En cuanto tu app tiene que recordar algo entre visitas, necesitas una base de datos. Y Supabase es la que todas las IAs recomiendan por defecto.
Te lo explico sin jerga, que es como me habría gustado que me lo explicaran a mí.
¿Para qué sirve Supabase en una app hecha con IA?
Para guardar lo que tu app tiene que recordar cuando el usuario cierra la pestaña.
Esa es la definición entera. Todo lo demás son consecuencias de esa.
Piensa en una aplicación cualquiera que hayas usado. Guarda tus datos, guarda quién eres para no pedirte la contraseña cada vez, guarda las fotos que subes. Todo eso vive en un ordenador que no es el tuyo, y hace falta algo que lo organice y que lo sirva cuando se pide.
Una base de datos, que son tablas con filas y columnas. Como una hoja de cálculo, pero rápida y ordenada.
Un sistema de usuarios, para que la gente se registre y entre. Esto solo ya vale el precio, porque montar registro y contraseñas bien hecho es de lo más pesado que existe.
Un almacén de archivos, para las imágenes y los documentos que suba tu gente.
Una forma de que tu app hable con todo eso, que se genera sola. No tienes que construir el puente, el puente viene hecho.
Por qué la IA siempre lo elige
Tres motivos, y ninguno es marketing.
El primero es que tiene un plan gratuito que aguanta de sobra un proyecto personal. Puedes montar algo real y no pagar hasta que tengas usuarios de verdad.
El segundo es que por debajo es PostgreSQL, que es la base de datos más usada del mundo desde hace décadas. Eso significa que la IA ha visto millones de ejemplos y sabe escribir para ella sin equivocarse casi nunca.
El tercero es que su documentación es buena y está muy presente en internet. Y una IA es mucho más fiable con las herramientas de las que ha leído mucho.
Si te interesa el contraste con la alternativa fácil, que sería montar el almacén en una hoja tipo Airtable, lo tengo desarrollado en Supabase frente a Airtable como base de tu app. Resumen: Airtable si el que va a mirar los datos eres tú, Supabase si los datos son de la aplicación.
Paso 1: crear el proyecto
Entras en la web, te registras con GitHub o con correo, y le das a nuevo proyecto.
Te pide tres cosas. Un nombre, que da igual. Una contraseña para la base de datos, que tienes que guardar porque no se recupera. Y una región, que es dónde va a estar físicamente el servidor.
La región sí importa. Elige la más cercana a donde vaya a estar tu gente. Si tus usuarios están en España, Fráncfort o Irlanda. Poner el servidor en Estados Unidos porque venía por defecto añade retraso a cada consulta y se nota.
Le das a crear y espera un par de minutos mientras te monta la infraestructura. Cuando termina tienes un panel con menús a la izquierda que dan un poco de vértigo. Tranquilo, vas a usar tres.
Paso 2: las dos llaves que necesitas (y la que no debes tocar)
En la configuración del proyecto, apartado de API, hay dos datos que vas a necesitar para todo.
La URL del proyecto, que es la dirección de tu base de datos. Esta es pública, no pasa nada si se ve.
La clave anónima o anon key. Es la que usa tu app desde el navegador. También es pública por diseño, y esto confunde a todo el mundo: sí, va escrita en el código que cualquiera puede ver, y no pasa nada, porque la seguridad no se apoya en ocultarla.
Y luego está la clave de servicio, la service role. Esa se salta todas las reglas de seguridad. Esa no va nunca en el navegador, nunca en el código que se publica, nunca en una captura de pantalla. Si la filtras, cualquiera puede leer y borrar toda tu base de datos.
Cuando la IA te pida las claves, dale la URL y la anónima. Si te pide la de servicio para algo que va a correr en el navegador, párate y pregúntale por qué.
Paso 3: crear tu primera tabla
En el menú de la izquierda, editor de tablas, nueva tabla.
Le pones nombre en plural y en minúsculas: tareas, clientes, notas. Es la convención y te va a evitar líos.
Vienen tres columnas por defecto que no debes borrar: id, que es el número único de cada fila; created_at, que guarda cuándo se creó, y que agradecerás tener; y a veces alguna más.
Tú añades las tuyas. Para una tabla de tareas serían: titulo de tipo texto, completada de tipo booleano (verdadero o falso), fecha_limite de tipo fecha.
Y hay una casilla arriba, activada por defecto, que dice algo de Row Level Security. Déjala activada. Esto es lo más importante de todo el post y viene ahora.
Paso 4: la seguridad a nivel de fila, o cómo no filtrar los datos de todos
Aquí es donde se rompen la mitad de los proyectos hechos con IA. Y donde salen esas noticias de aplicaciones que exponían los datos de sus usuarios.
Recuerda que la clave anónima es pública. Entonces, ¿qué impide que alguien coja esa clave y se descargue tu tabla entera?
Las políticas de seguridad a nivel de fila. Son reglas que dicen quién puede ver y tocar qué. Sin políticas, con la seguridad activada, nadie puede leer nada, ni siquiera tú desde la app. Y ahí llega el momento crítico: la IA, al ver el error, muchas veces te propone desactivar la seguridad para que funcione.
No lo hagas. Eso arregla el síntoma abriendo la puerta de par en par.
Lo correcto es pedirle la política. Con una frase basta: "créame una política de seguridad a nivel de fila para esta tabla que permita a cada usuario ver y modificar únicamente sus propias filas". Te da el código, lo pegas en el editor SQL del panel, lo ejecutas, y ya está bien montado.
Y antes de publicar cualquier cosa, haz esta pregunta: "revisa las políticas de seguridad de todas mis tablas y dime si alguna permite a un usuario ver datos de otro". Es la revisión más barata y más rentable que vas a hacer.
Paso 5: conectar tu app
Esto lo hace la IA sola. Le pasas la URL y la clave anónima y le dices que conecte la aplicación a Supabase.
Lo que va a hacer es instalar la librería oficial, crear un archivo de configuración con tus claves y escribir las funciones para leer y escribir. Es la parte que antes llevaba una tarde y ahora lleva un minuto.
Dos cosas que sí tienes que vigilar: que las claves acaben en un archivo de variables de entorno y no escritas en medio del código, y que ese archivo no se suba a ningún sitio público.
Lo que se te va a atascar
"No aparecen los datos" y no da error. Casi siempre es una política de seguridad que bloquea la lectura. Está funcionando bien, simplemente no te deja. Revisa las políticas antes de tocar nada más.
El correo de confirmación de registro. Supabase manda correos de verificación, pero desde una dirección compartida y con un límite bajo de envíos al día. Para probar va bien. Para algo real hay que conectar un servicio de correo propio. Si estás probando y no te llegan, en la configuración de autenticación puedes desactivar temporalmente la confirmación.
El proyecto se pausa. En el plan gratuito, si no lo tocas durante una semana, se pausa. No pierdes nada, se reactiva con un botón. Pero si vuelves al mes y ves tu app rota, es esto.
Los nombres con mayúsculas y tildes. Si llamas a una columna Título, luego tendrás que escribirla entre comillas en cada consulta y se va a liar todo. Minúsculas, sin tildes, con guión bajo. Siempre.
Y ahora qué
Monta una tabla sola y haz que tu app guarde y lea una cosa. Solo una. Una lista de notas, lo que sea.
Ese primer viaje completo, escribir algo en la app, verlo aparecer en la tabla del panel, recargar la página y que siga ahí, es el momento en el que esto deja de ser abstracto. A partir de ahí todo lo demás es más de lo mismo con más tablas.
Si te has quedado atrás con los conceptos, tengo la explicación desde cero en qué es una base de datos sin código, y el recorrido completo de construir una aplicación sin ser programador en crear apps sin programar.
Si quieres saber por dónde empezar a construir con IA según lo que ya sabes y lo que quieres montar, tengo un test corto que te lo aterriza.
Sigue leyendo
Cómo montar un portal privado para clientes sin programar
Cada cliente entra con su acceso y ve solo lo suyo. Cómo montar un portal privado de clientes sin programar, paso a paso y sin liarte.
Cómo conectar tu web con una base de datos con Claude Code
El momento en que tu web deja de ser un folleto y empieza a guardar cosas de verdad. Paso a paso, sin saber programar y sin liarla.
No-code vs vibe coding: en qué se diferencian de verdad
No-code y vibe coding se han metido en el mismo saco y no son lo mismo. Uno te da piezas, el otro te da código. Cuándo usar cada uno.
Cómo publicar tu app con dominio propio en Netlify
Tu app funciona en tu ordenador y no sabes cómo sacarla al mundo. Con Netlify la pones online con tu dominio en diez minutos.