Qué es Ehundu y por qué lo usamos en Idenautas

Ehundu es el generador de sitios estáticos en PHP de Juanjo Marcos (Paigar) que hemos adoptado en Idenautas, y con el que ya está construida esta web. Qué es, por qué lo hemos elegido y qué significa para ti.

Si has leído los dos artículos anteriores de esta serie — qué es Eleventy y qué es Lume — ya sabes que no tenemos ningún apego sentimental a una herramienta concreta. Lo que nos importa es el resultado: webs rápidas, seguras y que no dependan de nadie más de lo necesario. Esta vez, en lugar de migrar a otra herramienta de adopción masiva, hemos adoptado una construida a medida para resolver justo lo que nos faltaba: Ehundu, un generador de sitios estáticos en PHP desarrollado por Juanjo Marcos, de Paigar. Se llama así porque significa tejer en euskera — una web, al fin y al cabo, es un tejido de contenido y plantillas.

Lo que no ha cambiado

Ehundu sigue siendo, en esencia, lo mismo que Eleventy y Lume: un generador de sitios estáticos. Le das una carpeta con el contenido en Markdown, los datos en YAML y las plantillas en Twig, y te devuelve HTML, CSS y JavaScript ya generados, listos para servir sin ningún procesamiento en cada visita. Sin base de datos, sin PHP montando la página en cada petición, sin nada que un fin de semana cualquiera se quede sin actualizar y acabe comprometido.

Entonces, ¿qué es Ehundu?

Ehundu es un generador de sitios estáticos escrito en PHP. Eso en sí mismo no es ninguna novedad — hay una docena de herramientas que hacen lo mismo y lo hacen bien. Lo distinto está en dónde puede ejecutarse: los generadores que conocíamos están pensados para la línea de comandos, lanzados desde tu ordenador o desde un servicio de integración continua. Ehundu también funciona así, pero además puede compilar un sitio desde un proceso web, dentro de un alojamiento PHP corriente, con sus límites de tiempo y de memoria. Dicho sin rodeos: una página puede pedirle a Ehundu que rehaga el sitio y lo publique, sin que nadie tenga que abrir una terminal.

Por qué hemos adoptado Ehundu

Llevamos años construyendo webs para clientes, y el mismo problema aparecía siempre en el mismo punto: el día en que el cliente quiere cambiar un horario o un precio sin tener que llamarnos. Con las herramientas habituales, eso se resuelve encadenando piezas — un editor que escribe en un repositorio Git, un servicio que detecta el cambio y compila, otro que aloja el resultado. Funciona, pero son varios servicios ajenos entre el cliente y su propia web. Y de los servicios ajenos hemos aprendido a desconfiar: hemos visto a más de un proveedor cambiar precios y condiciones de un día para otro.

Ehundu resuelve esto por diseño. Publica por FTP, SFTP o en cualquier almacenamiento compatible con S3, sin hablar la API particular de ningún proveedor. Y todo lo que define un proyecto vive en una carpeta de texto plano: copiada a otra máquina, compila exactamente igual. Es el mismo principio que ya nos gustaba de Eleventy y de Lume, llevado un paso más allá: cuantas más dependencias de software libre, mejor, porque esas se pueden conservar y mantener; cuantas menos dependencias de un servicio concreto, mejor.

En español, a propósito

En un proyecto de Ehundu las carpetas se llaman contenido, plantillas y publico, y los campos de cada página titulo, fecha o etiquetas — como habrás notado si has mirado alguna de nuestras páginas con las herramientas de desarrollador del navegador. Es una decisión deliberada de su autor: la comunidad hispanohablante que hace webs es enorme y casi todas las herramientas que usa le hablan en inglés. Quien venga de Eleventy o de Lume puede seguir usando los nombres de siempre (title, date, tags), así que migrar no obliga a reescribirlo todo.

Quién está detrás

Ehundu lo desarrolla Juanjo Marcos, de Paigar. No es un comité ni un framework corporativo: es una herramienta con un autor identificable, que la mantiene con criterio propio y la hace evolucionar con intención — el mismo tipo de dato que ya nos gustó de Lume y de Óscar Otero. Es software libre con licencia MIT, su código está en GitHub y tiene web propia en ehundu.com.

Qué significa esto para un cliente

Lo mismo que significaban Eleventy y Lume: alojamiento barato, sin plugins que actualizar, sin base de datos que parchear, velocidad desde el primer día. El contenido vive en archivos de texto plano — Markdown y YAML — que son del cliente, portables y legibles sin ninguna herramienta propietaria.

Ehundu todavía está en desarrollo activo, así que su formato puede cambiar, pero ya compila sitios de verdad. Esta misma web que estás leyendo es una de ellas, y iremos migrando los proyectos de nuestros clientes según tenga sentido en cada caso.


Esta web está construida con Ehundu.

Otros artículos sobre desarrollo técnico

Programación, frameworks, herramientas y arquitectura técnica para la web.