Crear posts reales con Supabase y Next.js
Clase 14 de 17 • Curso de Supabase
Contenido del curso
Base de Datos y API Automatizada
Storage en Supabase
Conectando el Frontend con Supabase
- 12

Conecta Supabase con frontend real
10:10 min - 13

Supabase JS: de mocks a datos reales
11:03 min - 14

Crear posts reales con Supabase y Next.js
Viendo ahora - 15

Cómo conectar un feed cronológico con Supabase
07:11 min - 16

Deploy en Vercel con variables Supabase
06:00 min - 17

Qué hacer tras completar Supabase básico
00:42 min
Crear posts reales con Supabase es directo cuando comprendes el flujo completo: subir la imagen al storage, obtener su URL pública y guardar el registro en la tabla. Aquí verás cómo hacerlo desde la API, el dashboard y el front end con Supabase JS y Next.js, además de cómo resolver errores de seguridad con row level security.
¿Cómo crear posts reales con Supabase desde API, dashboard y front end?
La prioridad es entender que todo lo que insertes por API se refleja en el dashboard y luego se renderiza en el front end como un feed con imagen y caption. Las barras verdes del dashboard muestran actividad reciente, útil para seguir las analíticas.
- Desde el dashboard: subir la imagen al storage y obtener su URL.
- Con HTTPie: enviar un POST con headers API key y authorization.
- Body mínimo: objeto con user ID e image URL.
- Respuesta esperada: 201 creado al ejecutar el request.
- Verificación: en el editor de tabla, el nuevo registro aparece con caption vacío, likes en 0 y timestamps de creado/actualizado automáticos.
- Diferencia del nombre de imagen: puede venir del nombre del archivo, no del patrón numerado previo.
- Conteo de posts: ahora hay uno más que antes, listo para ser consumido por la API o el front end.
¿Qué aporta Supabase JS en el front end?
- Automatiza el flujo: subir al storage, obtener URL y hacer el insert en la tabla en un solo proceso.
- Permite publicar desde una interfaz real: carga de imagen, caption y botón de publicar.
- Renderiza el feed: muestra imagen y caption en la vista existente.
¿Qué flujo sigue la imagen en el storage hasta la tabla de posts?
El código prepara el archivo, lo sube y luego construye el post con todos los campos necesarios. La librería simplifica cada paso y centraliza errores.
- user ID: hardcodeado solo para la demostración.
- Nombre del archivo: extrae la extensión, compone nombre + stamp de tiempo.
- Ubicación: dentro del bucket “imágenes”, carpeta “post”, se concatena el path.
- Subida al storage: define file path y usa cache control de 3600 por defecto.
- URL pública: se obtiene desde el storage tras subir el archivo.
- Insert en tabla: “post_new” con user ID, image URL, caption y likes en 0.
- Selección: se pide devolver todos los campos para confirmar la creación.
- Validación visual: el objeto resultante incluye caption, fecha de creación, ID, URL de imagen, likes y user ID.
¿Cómo se muestra en el front end como feed?
- Imagen: se toma desde la URL pública.
- Caption: se usa el texto ingresado en el formulario.
- Estado inicial: likes en 0, listo para futuras interacciones.
¿Cómo resolver errores de row level security y validar la integración?
Al publicar desde el front end puede aparecer un error de row level security. Ocurre cuando el storage permite lecturas públicas pero las políticas no cubren inserciones o actualizaciones.
- Política temporal para la práctica: habilitar permisos de leer, insertar, actualizar y borrar para cualquier usuario.
- Ejecución: aplicar “permisos básicos” y guardar los cambios en SQL.
- Reintento: publicar de nuevo desde el front end; ahora devuelve “post creado exitosamente” con el objeto del post.
- Confirmación de arquitectura: storage + base de datos + front end quedan verificados y conectados.
- Próximos pasos posibles: subir múltiples imágenes, editar captions y crear vistas más complejas.
¿Qué habilidades y conceptos refuerzas aquí?
- Uso de HTTPie para requests POST con API key y authorization.
- Gestión de storage: subida de archivos, path, bucket y URL pública.
- Modelado de datos del post: caption, likes en 0, user ID, timestamps automáticos.
- Manejo de errores y políticas con row level security.
- Integración con Supabase JS en Next.js para orquestar storage y base de datos.
¿Te gustaría que profundicemos en políticas seguras de row level security o en cargas múltiples optimizadas? Cuéntalo en los comentarios y qué construirías a partir de aquí.