> For the complete documentation index, see [llms.txt](https://weekly-essay.mikey.wang/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://weekly-essay.mikey.wang/es/2026/w02-rethinking-complex-abstractions.md).

# W02-Repensar las abstracciones complejas

A medida que mejora la capacidad de la IA para programar, conviene repensar las abstracciones complejas.

Durante la última década hemos construido muchos sistemas complejos de ingeniería frontend: bibliotecas de componentes, soluciones de actualización dinámica y sistemas basados en configuración. Todo ello partía de una premisa: el código de calidad es caro, el tiempo de los desarrolladores es escaso y la capacidad cognitiva humana es limitada. Por eso seguimos el principio Don't Repeat Yourself (DRY), para evitar trabajo repetido, reducir los costos de mantenimiento y construir grandes sistemas con recursos humanos limitados. Podemos llamarlo un modelo económico de escasez.

Pero las abstracciones complejas que crean los humanos también ponen obstáculos a la IA. Ante un proyecto con muchas capas de encapsulación, componentes de orden superior (HOC) y hooks personalizados, la IA tiende a alucinar si no está claramente definido qué contienen esas cajas negras. En cambio, puede manejar mejor código Write Everything Twice (WET): directo, explícito e incluso redundante. Hoy podemos hacer una aproximación: si dispusiéramos de un número ilimitado de becarios, ¿qué nuevas soluciones tendrían los problemas técnicos del pasado? Podemos llamarlo un modelo económico de abundancia.

La semana pasada vi precisamente una noticia sobre Tailwind, la conocida biblioteca frontend de código abierto. El caso es interesante y merece detenerse en él.

Todo empezó en el repositorio de GitHub de Tailwind CSS. Un desarrollador presentó un [PR](https://github.com/tailwindlabs/tailwindcss.com/pull/2388) que proponía añadir un endpoint /llms.txt al sitio oficial. Es un estándar de texto plano dirigido a los grandes modelos de lenguaje (LLM), pensado para que la IA asimile la documentación técnica con más eficiencia y precisión y pueda ofrecer mejores sugerencias de código. Desde el punto de vista técnico, era una propuesta sumamente «correcta». Hoy, cuando programar con ayuda de IA se ha vuelto habitual, adoptar los LLM parece casi una obligación para los proyectos de código abierto.

Sin embargo, Adam Wathan, creador de Tailwind, cerró personalmente el PR el 6 de enero por razones de sostenibilidad comercial. Si la IA puede leer la documentación con demasiada facilidad y ofrecer las respuestas directamente, los desarrolladores dejarán de visitar el sitio oficial. Menos tráfico significa menos exposición para productos de pago como Tailwind UI, lo que amenaza directamente los ingresos de la empresa.

La decisión de Adam recibió críticas de la comunidad, que la consideraba contraria al espíritu del código abierto. Para explicarla, [Adam publicó una grabación de 33 minutos](https://x.com/adamwathan/status/2008909129591443925), un monólogo que grabó con el teléfono durante un paseo matutino. Solo les quedaba dinero para seis meses y acababan de despedir al 75 % del equipo de ingeniería: tres de cuatro personas, todas muy buenas. Recomiendo escucharla si hay tiempo. En su voz se perciben el desánimo y la impotencia.

Un poco de historia de Tailwind. Apareció en 2017 y creo que alcanzó su apogeo en 2020. Ese año, Adam Wathan anunció entusiasmado que su [primer producto comercial, Tailwind UI, había superado los dos millones de dólares de ingresos en menos de cinco meses desde su lanzamiento](https://adamwathan.me/tailwindcss-from-side-project-byproduct-to-multi-mullion-dollar-business/). Mirando atrás, si hubiera que fijar un momento culminante para el sector frontend, creo que en buena medida sería 2020.

Antes de Tailwind, la biblioteca de componentes más popular del frontend era Bootstrap. Tailwind logró desplazarla porque abordó el costo de mantenimiento del CSS. Su filosofía es Utility-First. No ofrece componentes predefinidos, sino piezas básicas como p-4, flex y text-red-500. En esencia, es la victoria de «composición sobre herencia» en CSS. Bootstrap parte de la herencia: se heredan componentes predefinidos. Tailwind parte de la composición: se combinan clases atómicas para construir estilos nuevos.

Por último, el código abierto. Alguien en la comunidad lo expresó así: «Al final solo quedarán dos tipos de software de código abierto: proyectos con una cuenta atrás hasta su abandono, a la espera de que los voluntarios no remunerados agoten sus fuerzas, y proyectos respaldados por grandes empresas».

Por lo que vemos ahora, Tailwind pertenece al primer grupo y Bun al segundo. La raíz es el problema del polizón. Antes de la era de la IA, aunque la mayoría de los usuarios no pagaba, al menos aportaba tráfico, reputación y posibles oportunidades de contratación. En la era de la IA, los agentes se han convertido en los polizones definitivos. Extraen conocimiento del código abierto con enorme eficiencia y lo convierten en valor para servicios comerciales, sin que sus mantenedores reciban nada a cambio.

Tailwind nos muestra, al menos, que el modelo clásico de intercambiar software de código abierto por atención y convertir esa atención en ingresos necesita transformarse.

Pero el mundo no puede reducirse a dos opciones inamovibles. Pensemos en Stack Overflow, una plataforma con espíritu de código abierto. Otra noticia de la semana pasada: después de la aparición de ChatGPT, las preguntas mensuales pasaron de 300 000 a casi cero. Sin embargo, gracias a las licencias de contenido y a los productos de IA para empresas, sus ingresos anuales se duplicaron hasta los 115 millones de dólares.
