Hay días en que construyes una feature. Y hay días en que tu producto cambia de naturaleza.

Ayer fue de los segundos. NIDO — el life coach AI que estoy construyendo en público — llevaba semanas viviendo detrás de un login: una app privada, funcional, esperando a su primera persona usuaria. Al final del día tenía puerta de calle: una landing pública en nido.olaveruiz.cl, un quiz de perfilamiento con lista de espera, un correo de bienvenida, y un consentimiento digital dentro del producto.

Veintidós commits. Seis agentes creativos. Y — porque así es esto de verdad — cuatro cosas rotas que no vimos venir.

La landing que diseñaron seis agentes

No partí abriendo un editor de código. Partí invocando un proceso.

En la corporación existe un pipeline que se llama taste-engine, y funciona como una línea de producción creativa: Saul destiló el brand book de Nido desde Notion — arquetipo, paleta, esa frase que define todo: “una sala de estar al atardecer en Santiago, con una planta grande junto a la ventana”. Cialdini diseñó un quiz de perfilamiento de seis preguntas con tres segmentos que no etiquetan, reconocen: En Busca de Rumbo, Claridad sin Plano, Siembra en Pausa. Godin escribió los ganchos de conversión sin una gota de urgencia falsa — porque la escasez de Nido es real: crece de a poco, por invitación. Ive especificó todo, hasta la regla de que el terracota aparece una sola vez por pantalla.

Con esos insumos, Stitch — la herramienta de diseño generativo de Google, con Gemini 3.1 Pro — produjo los screens. Los revisé, dije “me encanta”, y ahí empezó el trabajo de verdad: traducir ese diseño a código sin traicionarlo.

¿Cómo sabes que tu implementación es fiel al diseño? No con fe. Con Playwright: rendericé los HTML de Stitch y mi landing en producción, ambos a 1440 píxeles, y comparé las capturas lado a lado. La primera versión tenía siete diferencias. Las corregí todas.

Las palabras importan

A mitad del día me di cuenta de algo incómodo: Nido asumía que su usuario era mujer.

No solo en la landing. En los prompts del modelo — el system prompt decía “ella” en los siete bloques. En los tags de la bitácora: “inspirada”, “cansada”. En el generador del plan. El caso central de Nido es una mujer en transición vital, sí. Pero un caso central no es una suposición universal.

La decisión tomó una conversación: neutro por defecto, en todo. Y en Ajustes, un selector para quien prefiera tratamiento femenino o masculino. El detalle que más me gusta: los tags de ánimo ahora tienen tres formas — “inspiración” en neutro, “inspirada” o “inspirado” si lo eliges. Las entradas guardadas no se tocaron; el género pasó a ser presentación, no dato.

Lo más revelador fue lo técnico: el modelo escribía en femenino porque se lo estábamos ordenando. La IA no asume género — obedece al prompt. Si tu producto suena sesgado, el sesgo está en tu código.

El consentimiento se volvió digital

El plan original para el piloto incluía una sesión presencial: sentarme con la primera usuaria, explicarle qué guarda Nido y qué no, y firmar un papel.

Lo reemplazamos por algo mejor: un flujo de consentimiento dentro del producto. Tras el primer login, Nido te muestra — antes que cualquier otra cosa — qué guarda (notas destiladas, tu plan, tu bitácora), qué no guarda jamás (la conversación en bruto), y el control que tienes (borrar todo en menos de un minuto). Sin aceptar, puedes mirar Ajustes y salir; el chat, el plan y la bitácora esperan. La aceptación queda registrada con versión y fecha.

Es más honesto con cómo se usa software en 2026. Y escala: cuando Nido abra sus puertas de verdad, cada persona pasará por el mismo umbral.

Lo que se rompió (la mejor parte)

Cuatro historias, cuatro lecciones.

El token fantasma. La conexión con Google Calendar se guardaba perfecta — y era imposible de leer. La librería de base de datos serializa los datos binarios como JSON al escribir, y devuelve hexadecimal al leer; nuestro código asumía otra cosa en ambas direcciones. ¿Por qué los tests pasaban? Porque usaban mocks — y los mocks validaban un contrato que nosotros habíamos inventado, no el real. Lección: la capa de persistencia se prueba contra la base de datos de verdad, al menos una vez.

La hora de gloria. El permiso de calendario funcionó exactamente sesenta minutos. Clerk, nuestro broker de autenticación, refresca los tokens con los permisos configurados a nivel de conexión — no con los que el usuario concedió después. El “permiso incremental” se degradaba en silencio al primer refresh. Lección: verifica los permisos una hora después del consentimiento, no solo inmediatamente.

El 404 con destino. La URL de login devolvía 404 — con la redirección correcta escrita en los headers de la misma respuesta. Un quirk del adapter de Vercel con rutas inventadas desde middleware. La solución fue humilde: crear la ruta de verdad. Lección: para URLs que importan, páginas reales; el middleware no es un router.

Los cien deploys. Cerca de medianoche, los pushes dejaron de generar deployments. Sin error, sin aviso. Parecía un webhook roto; era el límite diario de Vercel: cien deployments, y los habíamos usado todos. Hasta el límite cuenta una historia — la de un día en que se construyó mucho, quizás demasiado rápido. Lección: los límites silenciosos existen; pregúntale a la API antes de sospechar de la infraestructura.

Lo que falta

Nido está técnicamente listo: landing, quiz, correo de bienvenida, consentimiento, calendario, privacidad auditada. La fase del pipeline dice PILOT_READY.

Falta una sola cosa. La más importante. Que su primera persona usuaria cruce la puerta.

Eso no lo puede hacer ningún agente por mí.