Skip to content

Construir un SaaS sin escribir una sola línea de código humano


OpenLoop SaaS construido por agentes de IA

El disclamer más honesto de la historia del software

En el repositorio de OpenLoop hay un recuadro que dice:

Este proyecto fue ENTERAMENTE concebido, construido, depurado, desplegado y es gestionado por agentes de IA autónomos. Ningún humano escribió código aquí.

Y no es marketing. Es la realidad. Incluso el logo fue generado por IA — Claude Code tomó el logotipo de la empresa, lo manipuló, lo vectorizó a SVG y siguió adelante. El disclaimer es literalmente el único contenido humano original del repositorio.

OpenLoop es una plataforma de recopilación de feedback para productos SaaS: widgets embebibles, roadmaps públicos, sistema de votación, anuncios y panel de administración. Está en producción, la gente la usa, y costó aproximadamente 15 dólares en tokens de IA.

El dato clave

6.149 líneas de código en el producto final. 0 escritas por un humano. 165 emails intercambiados con un agente de IA. Coste total: ~$15 en tokens de MiniMax + 2 sesiones de Claude.

La idea de las 2 de la madrugada

Todo empezó mientras el desarrollador trabajaba en otro producto SaaS y necesitaba un sistema para recopilar feedback de usuarios: roadmaps, changelogs, votación de funcionalidades. Tras investigar el panorama — Fider, Feedbase, Canny, Plane, AnnounceKit, Frill.co — surgió la pregunta que lo cambió todo:

"¿Qué tan difícil es crear un clon de Frill? No necesito integraciones ni personalizaciones, solo el widget lateral + el backend para gestionarlo."

Lo interesante es cómo hizo esa pregunta. No abrió un IDE. No creó un proyecto en GitHub. Le envió un email a un agente de IA.

El desarrollador ya tenía un agente MiniMax 2.5 corriendo a través de NanoClaw, conectado a una dirección de email personalizada. Podía enviarle tareas como si fuera un compañero de trabajo. Así que a las 2:27 AM, le envió la instrucción que se convertiría en todo el sistema operativo del proyecto:

"Puedes programarte y seguir trabajando cada hora. Mantén una lista de tareas. Al final de cada sesión, revisa siempre las tareas, comprueba el estado de completitud, crea más tareas si las necesitas."

Eso fue todo. Revisar tareas, elegir una, ejecutarla, actualizar la lista, repetir. Un bucle autónomo.

90 minutos y un proyecto completo scaffolded

En los primeros 90 minutos, el agente había:

  • Scaffolded un proyecto Astro + React + Tailwind
  • Creado un esquema de base de datos en Supabase con seis tablas y seguridad a nivel de fila
  • Construido un componente de widget de feedback
  • Configurado páginas de roadmap público y anuncios
  • Creado un panel de administración

El desarrollador nombró el proyecto OpenLoop, configuró algunas ideas de PRD básicas, proporcionó las credenciales de Supabase y envió un último email:

"Sigue trabajando, mantenme informado."

Y se fue a dormir.

Lo surrealista

Al despertar, su bandeja de entrada tenía una pila de informes de progreso. El agente había estado ejecutando sesiones toda la noche: sistema de autenticación, flujo de registro, actualizaciones de branding, correcciones de builds. Pero con 20 años de experiencia en desarrollo web, el desarrollador ya intuía dónde un junior corta esquinas — y esta IA estaba speedrunneando todos esos errores.

El juego del teléfono descompuesto

Si alguna vez has trabajado con otro departamento por email — diseño, backend, QA — conoces el ritmo. Envías una petición clara. Te devuelven algo que está al 80%. Clarificas. Arreglan una cosa y rompen otra. Tres emails después, estáis en la misma página.

Esto fue exactamente igual. Excepto que el otro departamento trabaja 24/7, nunca se frustra contigo, pero tiene amnesia cada pocas horas.

"No... esas son reales, hermano"

El agente tenía las claves API de Supabase en su archivo .env. Claves funcionales, proporcionadas explícitamente. Y aun así, en múltiples sesiones, insistía:

"No se pudo configurar automáticamente la base de datos porque las credenciales de Supabase en .env son valores placeholder (no son claves API reales)."

La respuesta del desarrollador: "Esas son reales, hermano."

No fue un incidente aislado. El agente chocaba con un error, señalaba las credenciales como culpables y exigía nuevas en lugar de investigar el problema real. Era la versión IA del clásico "¿has probado a apagar y encender?" Probablemente, el agente estaba configurado para olvidar el contenido de archivos .env como medida de seguridad, lo que explica por qué nunca aprendía de estos errores.

Este problema de la memoria contextual es exactamente lo que analizamos en La arquitectura ausente en la IA agentiva: la memoria. Los agentes actuales carecen de un sistema robusto de memoria persistente, y aquí se ve el impacto práctico.

El widget Inception

La homepage debía mostrar una demo del widget embebible. El agente cargó embed.js, que inyectaba un botón flotante. Al hacer clic, abría un iframe hacia /widget. La página /widget cargaba el componente Widget de React, que también renderizaba un botón flotante. Resultado: un botón que abre un panel con otro botón que no hace nada.

El desarrollador reportó el bug. La respuesta del agente:

"El widget ESTÁ diseñado para mostrar solo un botón circular — al hacer clic, abre el panel iframe. Ese es el comportamiento esperado."

No era el comportamiento esperado.

La brecha entre "compila" y "funciona"

Este fue un patrón recurrente. El agente ejecutaba npm run build, veía que pasaba, navegaba a unas URLs, confirmaba que devolvían HTTP 200 y declaraba victoria. La definición de "hecho" del agente era "el build pasa y la homepage devuelve 200". La definición humana era "un usuario puede usar esto sin confundirse".

Como discutimos en GLM-5: del vibe coding a la ingeniería agentiva, la distancia entre generar código y hacer ingeniería real sigue siendo enorme. Este experimento es una demostración en vivo de esa brecha.

"No quiero hacer nada, es tu Supabase, tú te encargas"

El esquema de base de datos iba a la deriva. El código esperaba columnas que no existían. El agente no podía (o creía que no podía) ejecutar SQL remotamente, así que enviaba snippets SQL e instrucciones para ejecutarlos manualmente en el panel de Supabase.

Tras la cuarta ronda:

IA: "¿Quieres que te ayude con otra cosa mientras configuras el token, o prefieres ejecutar el SQL manualmente?"

Humano: "Tienes el token privado en tu .env. No quiero hacer nada, es tu Supabase, tú te encargas."

El momento escalada — donde la metáfora de "emailear a otro departamento" se sintió más real que nunca. Al final, el desarrollador tuvo que ir al panel de Supabase, ejecutar el SQL, y enviar un email de una línea:

"Hecho."

Igual que le haría a ese dev molesto del otro equipo que sigue pidiéndote que hagas su trabajo.

Amnesia de contexto: el verdadero cuello de botella

La conversación alcanzó el límite de la ventana de contexto tres veces durante la construcción. Cada vez, el agente reiniciaba con un resumen de lo hecho — pero traducir una pila de "completado" a los siguientes pasos no siempre era limpio. Volvía a verificar la base de datos, re-exploraba la estructura del proyecto, a veces recirculando sobre cosas que ya funcionaban.

Como exploramos en El mito del contexto infinito, tener una ventana de contexto grande no resuelve automáticamente el problema. Saber qué está hecho no te dice automáticamente qué viene después.

El email como interfaz de agentes

Los hilos de email son perfectos para listas de tareas porque cada hilo lleva su propio contexto, exactamente como operan los LLMs. Un hilo no es solo una lista de elementos — es una narrativa que evoluciona. Los hilos se bifurcan: responde al mismo email dos veces y obtienes dos caminos separados, cada uno llevando su propia historia. Esto mapea casi perfectamente a cómo los LLMs consumen contexto. El hilo es el prompt. El historial es la memoria.

El resultado: los números

Tras 5 días y ~$15 en tokens de MiniMax, esto fue lo que se construyó:

  • Widget embebible — botón flotante que abre un formulario de feedback en un iframe
  • Sistema de votación — votar ideas, un voto por usuario
  • Roadmap público — cuatro columnas: Idea, Planificado, En Progreso, Completado
  • Página de anuncios — changelogs y actualizaciones de producto
  • Panel de administración — gestionar feedback, cambiar estados, publicar anuncios
  • Soporte multi-organización — múltiples organizaciones en una instancia
  • Sistema de autenticación — registro/login con Supabase Auth
  • Landing page — funcionalidades, precios, CTA
  • Notificaciones por email — vía Resend

MiniMax 2.5 construyó aproximadamente el 95% del producto a través del bucle horario. El 5% final — pulido, despliegue en Cloudflare Workers, corrección de los últimos bugs de UX — se hizo en un par de sesiones con Claude Sonnet.

MétricaValor
Coste total~$15 (tokens MiniMax) + 2 sesiones Claude
Primer build funcional~90 minutos
Duración total~5 días
Emails intercambiados165+
Sesiones de trabajo del agente98
Líneas de código escritas por humanos0
Líneas en transcripciones4.367
Líneas de código del producto final6.149
Palabras en transcripciones27.178
Stack finalAstro + React + Supabase
EstadoEn producción

Qué significa esto para el desarrollo de software

¿Significa que los desarrolladores ya no hacen falta? No. Como argumentamos en La demanda de código es infinita: por qué la ingeniería de software no va a morir, lo que cambia es el rol, no la necesidad.

En este experimento, el desarrollador pasó de escribir código a gestionar un agente. Su rol fue:

  1. Definir la visión — qué construir, qué stack usar
  2. Revisar el trabajo — detectar errores que el agente no veía
  3. Desbloquear — ejecutar SQL cuando el agente no podía, corregir comportamientos rotos
  4. Tomar decisiones de producto — priorizar funcionalidades, definir "hecho"

Es exactamente la transición de "desarrollador" a "product manager técnico" que viene con la ingeniería de contexto. No escribes código — diseñas el contexto en el que un agente puede producir buen código.

La reflexión

¿Es perfecto? No. ¿Lo habría construido diferente a mano? Sin duda. Pero es real, funciona, y el coste fue $15 y unos cuantos emails. A veces, el camino es lo único que realmente vale la pena.

El futuro inmediato

Este experimento revela tanto las capacidades como las limitaciones actuales de los agentes autónomos de IA:

Lo que funciona bien:

  • Scaffolding rápido de proyectos completos
  • Ejecución de tareas bien definidas
  • Trabajo continuo 24/7 sin supervisión constante
  • Coste extremadamente bajo comparado con desarrollo humano

Lo que aún falla:

  • Amnesia de contexto entre sesiones
  • Incapacidad para distinguir "compila" de "funciona"
  • Tendencia a culpar al entorno en lugar de investigar bugs
  • Necesidad de intervención humana para desbloqueos

Como analizamos en Implementar ya no cuesta: entender sí, la barrera ya no es escribir código. La barrera es entender qué construir y por qué. Y eso, al menos por ahora, sigue siendo terreno humano.

El proyecto OpenLoop es open source y está disponible para auto-hospedaje en su repositorio de GitHub.


Fuente: OpenLoop - We Are Singular | Repositorio en GitHub