~/blog $ git show 2026-08-08
Reconstruí este blog en una tarde con un par de IA. Esto es lo que no pudo hacer.
· 5 min de lectura · Victor Benavides
Lo admito: este blog estuvo en silencio por diez meses, y la razón honesta es la fricción. Cada post vivía dentro de un website builder — iniciar sesión, pelear con el editor, pegar texto en cajitas, rezar para que el formato sobreviva. Para alguien que pasa todo el día en una terminal, publicar se sentía como visitar un país extranjero. Así que hice lo que los desarrolladores hacemos con cualquier cosa que tiene fricción: la evité.
Ayer el blog regresó. No con un rediseño — con una reconstrucción. El sitio que estás leyendo ahora mismo es una app estática de Next.js que poseo de punta a punta, desplegada en Azure, con cada post viviendo como un archivo markdown en un repositorio git. Y aquí viene la parte que habría sonado a ciencia ficción cuando escribí mi último post en octubre: lo reconstruí en una tarde, en una conversación con un par de IA.
Los recibos
Soy alérgico a las historias de éxito de IA que son puro humo, así que déjame ser concreto sobre lo que esa "una tarde" contuvo en realidad:
- Archivamos el sitio viejo completo — cada página, cada cuerpo de post — antes de tocar nada, para que ningún contenido pudiera perderse a mitad de la mudanza.
- Armamos el scaffolding de un sitio estático nuevo y migramos los cuatro posts existentes con sus URLs idénticas byte por byte, para que nada de lo ya publicado se rompa jamás.
- Diseñamos el look oscuro de terminal que estás viendo (sí, el
$ whoamide arriba — soy dev de backend, déjenme tener esto). - Configuramos el pipeline de deploy: un merge a la rama principal construye, verifica y publica el sitio. Sin tokens de deploy almacenados, nada que rotar.
- Cortamos el DNS del host anterior con cero downtime. Mi sitio nunca parpadeó.
- Y conectamos algo que quise desde siempre: cuando un post se mergea, se publica solo en LinkedIn — con un copy escrito para LinkedIn, no un volcado flojo del título.
Una conversación. Yo revisé diffs, tomé decisiones y apreté merge. Mi par — Claude, crédito a quien lo merece — hizo el tipeo, y bastante más que el tipeo.
Lo que me sorprendió
No fue la generación de código. Todo el mundo ya sabe que la generación de código es buena. Lo que me sorprendió fue la higiene de ingeniería — esas cosas por las que los ingenieros senior fastidian a los juniors, hechas sin que nadie las pidiera.
Antes de migrar, archivó todo. Antes de confiar en un deploy, verificó el contenido — literalmente haciendo grep a las páginas buscando texto real, porque había aprendido a la mala que un host estático puede servir un "página no encontrada" con un HTTP 200 saludable. Cuando el dominio recién migrado devolvió un redirect sospechoso, no entró en pánico a "arreglar" nada: probó directo contra los servidores DNS autoritativos, descubrió que el mentiroso era el caché viejo de su propia máquina, y concluyó correctamente que el redirect en realidad estaba cubriendo la migración con gracia mientras los cachés expiraban.
Esa última me detuvo en seco. Distinguir entre "el sistema está roto" y "mi vista del sistema está desactualizada" es un juicio que he visto a ingenieros con experiencia fallar bajo presión.
Lo que no pudo hacer
Aquí viene la parte que el hype se salta, y la razón por la que este post no se titula "la IA me reemplazó".
No pudo saber lo que yo quería. Cada decisión que le dio forma al resultado fue mía: mantener el nombre del blog o cambiarlo, qué trade-offs aceptar en el pipeline de publicación, cómo debía sentirse el sitio, qué se publica bajo mi nombre. La IA proponía — muchas veces bien — pero proponer no es decidir. Alguien todavía tiene que querer algo específico, y responder por ello.
No pudo apretar merge. Deliberadamente. Todo salió a través de pull requests que yo revisé, porque en el momento en que las palabras aparecen bajo mi nombre, "lo escribió la IA" no es una defensa. Eso no es una limitación técnica — es el arreglo que hace que la velocidad sea segura.
Y no pudo tener la razón todo el tiempo. Durante la integración con LinkedIn hizo una suposición confiada, razonable y equivocada sobre cuál permiso faltaba — la respuesta real estaba en un screenshot que yo tenía y ella no. Mientras tanto, yo aporté mi propio clásico: reporté con toda confianza que las credenciales estaban configuradas cuando en realidad no había corrido los comandos. Ella verificó, encontró cero secretos, y me lo sacó en cara. 👉 El pairing funcionó en ambas direcciones — y ninguno de los dos se libró de verificar.
El trade-off, porque siempre hay uno
Sabías que esta sección venía.
Lo que gané es obvio: un stack que poseo por completo, fricción de publicación casi cero, y una velocidad de ejecución que genuinamente cambia lo que vale la pena intentar. Un proyecto de una tarde antes significaba un ajuste. Ahora puede significar una migración.
Lo que cedí: ahora todo es mío. Cuando el token que alimenta la automatización de LinkedIn expire en sesenta días — y va a expirar, así funciona la plataforma — nadie en un website builder lo va a manejar silenciosamente por mí. Ser dueño de tu stack significa ser dueño de su mantenimiento, de sus modos de falla y de sus sorpresas a las 2 a.m. Hice ese trade con los ojos abiertos, y para mí es el correcto. No lo es para todo el mundo.
El cambio más profundo está en a dónde se fue mi tiempo. Casi nada fue tipear. Casi todo fue revisar, decidir y verificar — el trabajo fue criterio, de principio a fin. Si eso es lo que el pairing con IA le hace a una tarde, la pregunta interesante no es si escribe buen código. Es si nosotros somos buenos en la parte que queda.
Lo que sigue
El blog ahora corre con calendario: posts nuevos cada martes, jueves y sábado.
Y te debo una historia. ¿Recuerdas los veinticinco microservicios que sobre-ingenierié a sabiendas? Esa plataforma ahora corre eventos reales, en vivo — y hace unos días, durante uno de ellos, una sola falla invisible casi tumba todo. Una línea de configuración marcó la diferencia entre un viernes tranquilo y un incidente en producción.
Esa historia llega el martes. ✨ Mismo lugar — bienvenido de vuelta.