Construir un SaaS completo, listo para producción, con un agente de código IA
Cómo BlackMesa diseñó, aseguró y desplegó una plataforma completa —despliegues sin interrupción, pagos reales, inicio de sesión sin contraseña— en tándem con un agente de IA.
BlackMesa
21/09/2026
Elementos clave
- Problemática — entregar, con un equipo reducido, un SaaS de nivel empresarial (fiabilidad, seguridad, cumplimiento) sin disparar los plazos ni el presupuesto.
- Solución — desarrollo en pareja humano + agente de código IA (Claude), sobre una arquitectura Symfony / Docker pensada para producción desde el primer día.
- Resultado — plataforma en línea: despliegues sin interrupción, pagos recurrentes reales, inicio de sesión con passkeys, almacenamiento de objetos soberano.
- Próximos pasos — monitorización y alertas, copias de seguridad gestionadas, finalizar la localización FR / EN / ES.
Contexto y retos
El contexto
- La empresa — BlackMesa, estudio de ingeniería de software: equipos pequeños, proyectos de cliente exigentes, cultura de "producción de verdad".
- El proyecto — Show me the REX, una plataforma para publicar casos de éxito (REX) de datos/IA: un medio comunitario donde empresas y partners cuentan sus proyectos, con área de cliente, suscripciones y back office.
- El reto — alcanzar un nivel que la mayoría de las pequeñas estructuras nunca alcanzan (cero interrupción, pagos en producción, RGPD, rendimiento) con un equipo muy reducido.
- El equipo — un fundador-desarrollador, acompañado de forma continua por un agente de código IA que ejecuta, propone, prueba y documenta.
Elección del partner y de la solución implementada
Un tándem, no un simple proveedor
- El "partner" aquí es un dúo humano + IA: el humano decide la arquitectura y el producto; el agente acelera todo lo demás — migraciones, pruebas, refactors, documentación.
- El stack: Symfony 7.4 + FrankenPHP, todo en contenedores con Docker, PostgreSQL, Redis para las sesiones, Caddy como frontal.
- La soberanía: almacenamiento de objetos en OVHcloud (mantenerse en Francia) en lugar de un hyperscaler estadounidense.
- La decisión estructurante: una topología blue-green desde el inicio, para desplegar sin cortar nunca el servicio.
Testimonio
La IA no reemplazó la ingeniería: la multiplicó. Las decisiones difíciles siguen siendo humanas — pero en todo lo demás, avanzamos diez veces más rápido.
Desarrollo del proyecto
Cimientos dignos de producción
Todo parte de Docker: el mismo entorno en local y en producción, eliminando toda una clase de errores "funciona en mi máquina". FrankenPHP sirve la aplicación, PostgreSQL almacena los datos, Redis mantiene las sesiones. Desde los primeros días, la infraestructura se trató como un entregable, no como una tarea relegada al final.
Una arquitectura que envejece bien
El núcleo de negocio está aislado del resto: un enfoque DDD (domain-driven design) en estilo hexagonal(puertos y adaptadores), para que la lógica no dependa ni del framework ni de la base de datos. Las lecturas y escrituras pasan por CQRS (buses de comandos / consultas vía Messenger), lo que hace asíncrono el trabajo pesado y el código testeable. En concreto: añadimos una funcionalidad sin romper las demás, y la probamos sin arrancar todo el sitio.
Desplegar sin caer nunca — sin complicaciones inútiles
El despliegue sin interrupción tiene una respuesta "por defecto" en la industria: Kubernetes con ArgoCD (GitOps). Es potente — y también es un clúster que operar permanentemente, actualizaciones, una complejidad que presupone un equipo dedicado. Con un equipo reducido, tomamos una decisión asumida: un enfoque más frugal, igual de sin interrupción, el blue-green.
Dos versiones de la aplicación corren en paralelo ("azul" y "verde"); un proxy Caddy cambia el tráfico de una a otra mediante una recarga elegante, una vez que la nueva versión está sana. Como las sesiones viven en Redis, nadie se desconecta durante una actualización. Las migraciones de base de datos se escriben en expand / contract para seguir siendo compatibles durante el cambio. Resultado concreto: desplegamos en plena jornada, sin interrupción perceptible — y sin la carga operativa de un orquestador.
Un pipeline de medios asíncrono
Cuando un autor publica un vídeo o una imagen, el renderizado de la página no debe esperar nunca. Las imágenes se convierten a WebP, los vídeos se transcodifican a H.264 con una miniatura — todo en segundo plano, mediante una cola de mensajes gestionada por un worker dedicado. La página se muestra de inmediato, y el medio "limpio" reemplaza al original en cuanto está listo.
Páginas que responden al instante
La base está diseñada para la velocidad: un servidor de aplicación persistente (FrankenPHP), una caché HTTP en el frontal que sirve las páginas públicas casi al instante, medios ya optimizados y ninguna llamada bloqueante al almacenamiento en el renderizado. El visitante obtiene una visualización rápida — y, de paso, más sobria.
Seguridad y privacidad por defecto
Inicio de sesión moderno sin contraseña (passkeys / WebAuthn) y doble autenticación para la administración. Del lado de la audiencia, la analítica respeta la privacidad: ninguna sesión impuesta a los visitantes anónimos, medición ligera por baliza, y una caché HTTP en el frontal para soportar la carga.
Cobrar de verdad
La plataforma gestiona suscripciones reales: domiciliación bancaria vía GoCardless, IVA correctamente aplicado, y sincronización con la herramienta contable. Pasar los pagos a producción lo cambia todo: ya no hay "sandbox", cada detalle cuenta.
Tecnología responsable
La sobriedad fue un criterio de diseño, no un adorno. Las imágenes se optimizan sistemáticamente (WebP, redimensionadas al tamaño realmente mostrado): menos ancho de banda, menos almacenamiento, páginas más ligeras para todos. Los entornos de desarrollo se apagan cada noche, para no consumir innecesariamente de madrugada. El alojamiento es soberano (OVHcloud, en Francia). Y la infraestructura es deliberadamente frugal: el blue-green moviliza dos instancias durante un cambio, donde un orquestador funcionaría permanentemente. Decisiones que reducen la huella sin quitar nada al servicio.
El papel de la IA, sin mitos
El agente de código no "escribió el sitio solo". Multiplicó a un ingeniero: proponer implementaciones, escribir pruebas, ejecutar migraciones, documentar, detectar trampas. Las decisiones difíciles — arquitectura, compromisos de producto, lo que sale a producción — siguieron siendo humanas. Es precisamente este equilibrio lo que permitió avanzar rápido sin sacrificar la solidez.
Resultados y próximos pasos
- Antes / después — de un repositorio vacío a una plataforma de producción completa en unos meses: sitio público multilingüe, área de cliente, suscripciones, back office.
- Ganancias medibles — despliegues sin interrupción perceptible; páginas de medios mostradas sin llamada bloqueante al almacenamiento; imagen de servidor aligerada y disco saneado; puestas en producción casi diarias.
- Renderizado casi instantáneo de las páginas públicas (caché HTTP en el frontal + servidor de aplicación persistente), incluso bajo carga.
- Próximos pasos — monitorización y alertas, copias de seguridad gestionadas, supervisión de errores, y finalizar la traducción FR / EN / ES.
Buenas prácticas
- Tratar la infraestructura como un entregable desde el primer día (dev = prod con Docker).
- Escribir migraciones retrocompatibles (expand / contract) para desplegar sin cortar.
- Sacar las llamadas lentas (almacenamiento de objetos, servicios externos) de las rutas de renderizado.
- Validar cada cambio de infraestructura antes de aplicarlo — renderizar la configuración, nunca desplegar a ciegas.
- Versionar y automatizar todo: commit → integración continua → despliegue.
- Tratar la observabilidad — registro, trazas, alertas — como un entregable, nunca como una opción.
- Hacer de la sobriedad digital un criterio de diseño (peso de los medios, recursos movilizados), no un argumento de marketing.
- Aislar el núcleo de negocio (DDD / hexagonal) y separar lecturas de escrituras (CQRS): funcionalidades que se añaden sin romper lo existente.
Puntos de atención
- Un agente de IA puede proponer una acción arriesgada: los guardarraíles son indispensables — revisión humana sistemática en todo lo que toca producción, copia de seguridad antes de cualquier modificación.
- El almacenamiento de objetos es un punto de fallo: timeouts cortos y degradación elegante, nunca una llamada bloqueante en el renderizado.
- La deuda de explotación se paga: la limpieza (disco, volúmenes, imágenes sin usar) debe preverse desde el principio, no descubrirse un día de saturación.
- Soberanía ≠ simplicidad gratuita: un almacenamiento soberano tiene sus particularidades (permisos por objeto) que hay que absorber en el código.
Comentarios
Aún no hay comentarios. ¡Sé el primero en comentar!
Debes iniciar sesión para añadir un comentario.
Fechado a nivel del modelo
- Modelo
- Claude Opus · v4.8
- Revisar antes del
- 22/03/2027
Etiquetas
REX producido por