Eleventy

En el post anterior mencioné de paso que ahora este nuevo sitio es un sitio estático generado mediante Eleventy, el cual es un nuevo framework que sin ser el más popular, va tomando fuerza en la comunidad. En esta nueva entrada me gustaría elaborar un poco sobre por qué me decidí por ésta de entre todas las opciones que uno tiene para hacer un blog y quizá sea de utilidad para alguien.

¿WordPress? Fuchi, guácala #

El principal problema de tener un sitio con WordPress es que significa mucho, mucho, mucho trabajo. Por cuestiones de seguridad hay que estar constantemente actualizándolo todo: el core, los plugins, los temas y aún así nunca es cien por ciento seguro que mi instalación no vaya a ser hackeada. ¿Quién tiene tiempo para eso?

¿Es posible tener una instalación de WordPress segura? Claro, si estás dispuesto a aventarle mucho tiempo y mucho dinero. Lo que me lleva a…

Debido a que WP requiere un servidor capaz de correr PHP y MySQL los costos terminan elevándose por encima de lo que me resulta cómodo para una cosa que se actualiza en promedio una vez al año. Los $5 dólares mensuales que me cobraba Digital Ocean por hospedar mi blog no suenan como mucho pero tras varios años cuando pienso cuántos taquitos pude haberme comprado con eso me dan ganas de llorar.

Siempre quiero un sitio dinámico, cuando en realidad permanezco estático #

Siéntense niños, para que su tío Armando les cuente una de sus historias. Antes de que WordPress dominara el mercado, la herramienta de los bloggers profesionales era MovableType, que utilizaba Perl y magia negra para generar html estático. Cada que uno escribía un post nuevo, MT se ponía a regenerar todo el blog página por página. Luego resultó que si tienes miles y miles de posts y varios escritorres, esto puede resultar una no tan buena idea. Así que la industría decidió que lo que realmente quería era páginas generadas dinámicamente y se movió toda a WordPress.

Recientemente, mientras colectivamente nos dabamos cuenta de lo tonto que es dejarle nuestro contenido a las redes sociales, los sitios estáticos comenzaron a ponerse otra vez de moda y con ello surgieron por todos lados herramientas dedicadas a hacerlo más facil. Por que seamos sinceros: solo los más hippies querría escribir a mano todo el HTML y CSS de cada página desde cero.

Una buena rebanada de este movimiento —la que prefiere Javascript y le gustan los acrónimos techie— es lo que se conoce como Jamstack, (Javascript, APIs y markup) que se basicamente se trata de utilizar Node para generar sitios estáticos que no requieren un servidor.

(Sí, el subtítulo es una referencia a una rola de Zurdok)

¿Por qué Eleventy? #

La herramienta más popular dentro del mundillo del Jamstack es Gatsby. ¿Qué tan popular? Popular como en casi 50 Millones de dólares de inversión levantados. Gatsby emplea todo lo que es hipster y cool en el mundo del front-end: MDX, React, CSS-in-JS, GraphQL, Serverless, para generar sitios que son estáticos cuando tu navegador los recibe del CDN pero que se llenan de dinámica energía reactiva cuando son hidratados con Javascript. Mi otro blog, donde me hago pasar por bilingüe, está hecho con Gatsby.

Eleventy, comparado con Gatsby, es aburrido y muy poco cool. Básicamente es un preprocesador omnívoro al que le alimentas por un lado con plantillas y datos y por el otro lado –voila– obtienes un html 100% estático y aburrido.

Ya se que no suena emocionante, pero esa es la idea y aunque conceptualmente es muy simple, una vez que lo pones a prueba es verdaderamente poderoso.

La clave reside en que Eleventy soporta un gran numero de formatos de plantillas, incluyendo Markdown, y los datos para popularlas pueden venir de cualquier lado: un CMS headless, un AirTable, o como en mi caso: un directorio gigante con mas de 500 archivos de Markdown.

¿El resultado? Un directorio lleno de archivos de texto con extensión .html que pueden servirse desde el más aburrido de los hosts o, en mi caso, desde Netlify que compila todo cuando hago git push origin master por la modica cantidad de $0. Es ganar-ganar. Yo ahora muevo mi presupuesto de hosting a mi presupuesto de taquitos y ustedes, mis queridos lectores, pueden leerme sin necesidad de ejecutar ningún runtime de JavaScript.