Pipeline de publicación headless
Una plataforma de contenido donde el equipo editorial escribe en un panel propio y un flujo automatizado también puede publicar por su cuenta. Los metadatos del artículo viven en Postgres y el contenido vive en Git.
La publicación estaba atada a un solo sitio, así que cada artículo quedaba amarrado a una presentación y a un ciclo de despliegue. Redacción, revisión y publicación vivían en herramientas distintas, y cuando un proceso automático fallaba no dejaba rastro: el equipo se enteraba solo porque el artículo nunca aparecía.
El sistema separa el almacenamiento según la fortaleza de cada parte. El cuerpo de los artículos se versiona en un repositorio de contenido en Git, de modo que cualquier generador de sitios puede consumirlo y el historial de cada edición sale gratis. Todo lo que el panel necesita para filtrar, ordenar y reportar se queda en Postgres. Quien escribe trabaja en un editor enriquecido con asistencia de IA en línea, y las imágenes suben directo al almacenamiento de objetos con URLs prefirmadas.
La vía automática arranca en un formulario de solicitud. La solicitud se guarda primero y luego pasa a un flujo de orquestación que arma el prompt, llama al modelo de lenguaje y valida el resultado contra un esquema antes de escribir nada. Si la salida es inválida, se devuelve al modelo con los errores puntuales de validación en lugar de fallar en silencio. El flujo reporta su resultado por un callback autenticado, así una corrida rechazada aparece en el panel con sus errores y se puede reintentar desde el payload guardado.
Una capa de medición aparte reúne sesiones de analítica, desempeño en buscadores, eventos propios de clic y datos de pedidos en un solo tablero, para que las decisiones editoriales se tomen contra comportamiento real de lectura.
Stack
- Next.js
- TypeScript
- Postgres
- n8n
- Zod
- TipTap
- Octokit
- Tailwind CSS
Integraciones
- GitHub API
- Gemini
- GA4 Data API
- Search Console API
- VTEX OMS
- AWS S3
Usar Git como almacén de contenido fue la decisión de la que se desprende todo lo demás. Desacopla el contenido de cualquier sitio, regala versionado y revisión, y significa que un rediseño futuro nunca tendrá que migrar contenido. El costo es que actualizar exige el hash actual del archivo, algo que el publicador maneja de forma explícita para que dos ediciones simultáneas no se pisen en silencio.
La validación por esquema va entre el modelo y el repositorio, no después. Que un modelo devuelva JSON casi válido es el caso normal, no la excepción, así que el reintento lleva los errores de validación de vuelta al prompt. Dos intentos y la corrida queda marcada como rechazada y visible para una persona. Fallar fuerte y conservar el payload valía más que cualquier automatización adicional.
02 — Próximo proyecto
Tracemos la ruta.
santiagovalenciavera@gmail.com · Abierto a roles senior y proyectos seleccionados