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

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.
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
👀 Ver también

Claude Code v2.1.129: Flag de URL de plugin, salida de sincronización forzada y más de 20 correcciones
Añade la bandera --plugin-url para cargar zips de complementos desde URL, CLAUDE_CODE_FORCE_SYNC_OUTPUT para Emacs eat, y corrige el desperdicio de tokens en /context, la degradación del TTL de caché y la condición de carrera en OAuth.

El libibverbs de Apple oculta los símbolos de GPUDirect RDMA; el búfer Metal de copia cero RDMA funciona en macOS
Un desarrollador descubrió que el subsistema RDMA de Apple acepta búferes de Metal GPU para transferencias de red de copia cero y encontró símbolos ocultos de ibv_reg_dmabuf_mr que sugieren que GPUDirect RDMA es posible en macOS sin modificación del kernel.

Fable 5 gana en la detección de fraudes del mundo real: la familia Claude 4.x comparada con GPT-5.5
Cinco modelos frontera (Fable 5, Opus 4.8, Sonnet 4.6, Haiku 4.5, GPT-5.5-high) recibieron la misma instrucción en frío para auditar campañas de crowdfunding en vivo en zooid.fund. Solo Fable 5 verificó afirmaciones contra la web abierta, detectando creadores duplicados y eventos del mundo real.

Escáner de IA analiza 400K publicaciones de Reddit y descubre efectos secundarios ocultos de Ozempic como cambios menstruales
Investigadores de la Universidad de Pensilvania usaron LLMs para analizar 400,000 publicaciones de Reddit sobre fármacos GLP-1, descubriendo síntomas subestimados como irregularidades menstruales y escalofríos.