Reescritura del código base de 18 meses de Autonoma: lecciones sobre pruebas, deuda técnica y Acciones de Servidor

✍️ OpenClawRadar📅 Publicado: 11 de marzo de 2026🔗 Source
Reescritura del código base de 18 meses de Autonoma: lecciones sobre pruebas, deuda técnica y Acciones de Servidor
Ad

Por qué un producto exitoso necesitó una reescritura completa

Autonoma, una empresa que pivotó varias veces (búsqueda empresarial, generación de documentación, agente de codificación, plataforma de pruebas QA), desarrolló un producto durante más de 1.5 años, cerró clientes, consiguió financiación de un actor importante de la industria y contrató un equipo de 14 personas. A pesar de esta tracción, decidieron desechar toda su base de código y empezar desde cero.

La era sin pruebas y sus consecuencias

Inicialmente, el equipo utilizó un monorepositorio de TypeScript sin modo estricto y sin pruebas. Esto funcionó con 2 ingenieros que poseían grandes porciones de la base de código, pero se volvió desastroso después de contratar más personal. La base de código desarrolló problemas de null, comportamientos indefinidos y un manejo deficiente de errores, lo que llevó a que aparecieran errores "de la nada" e incluso a la pérdida de un cliente. El fundador inicialmente prohibió las pruebas para mantener una cultura de lanzamiento rápido, pero luego se dio cuenta de que esto afectaba la calidad del producto y la productividad.

Ad

Decisiones técnicas que impulsaron la reescritura

El producto original se construyó durante la era GPT-4 (no 4o) cuando los modelos requerían extensas barreras de seguridad. Construyeron envoltorios sofisticados de Playwright y Appium con inspecciones complejas y 7 estrategias de clic que se autocuraban sobre la marcha. Con los avances en los modelos, esta inspección sofisticada ya no es necesaria, lo que hace que la base de código heredada con deuda técnica sea menos valiosa.

Abandonando Next.js y Server Actions

El equipo se está alejando de Next.js y Server Actions, citando varios problemas:

  • Server Actions son asíncronas, requiriendo bloques useEffect o manejo manual de estado en React
  • Son difíciles de probar: las pruebas requieren crear objetos Prisma con bases de datos en memoria o simular
  • Sin capacidad de inyección de dependencias
  • Se ejecutan secuencialmente a nivel global, creando un "Python Global Interpreter Lock fabricado pero en TypeScript"

La nueva implementación comienza con pruebas desde cero y utiliza el modo más estricto de TypeScript.

📖 Leer la fuente completa: HN AI Agents

Ad

👀 Ver también