De Hugo a Astro: migrando el sitio
Llevaba un tiempo con ganas de darle una vuelta a este sitio. El blog funcionaba bien con Hugo pero quería algo que me diera más flexibilidad para añadir funcionalidad sin salir del ecosistema JavaScript.
Por qué Hugo funcionaba bien
Hugo es una herramienta excelente. Compilación rápida, sin dependencias de Node, plantillas potentes y muchos temas disponibles. Para un blog sencillo es difícil superarlo.
El problema no era Hugo en sí, sino que cada vez que quería añadir algo ligeramente más interactivo acababa peleando con las limitaciones del sistema de plantillas o añadiendo JavaScript a mano sin mucha estructura.
Por qué Astro
Astro tiene una propuesta interesante: genera HTML estático por defecto, pero permite usar componentes y lógica JavaScript durante la construcción. Es lo mejor de los dos mundos: la velocidad de un sitio estático con la flexibilidad de un framework.
Lo que más me convenció:
- Componentes
.astro— mezclan HTML, CSS y JavaScript en un solo archivo. - Content Collections — sistema para gestionar el contenido en Markdown.
- Integraciones — MDX, RSS, iconos con
astro-icon… - Output estático — el resultado final es HTML puro.
Qué ha cambiado en el sitio
Además de cambiar el motor, he aprovechado para rediseñar el sitio desde cero:
- Diseño propio en lugar de un tema.
- Fotolog — galería asimétrica con página de detalle para cada foto.
- Soporte Mermaid para diagramas en los posts, renderizado en el cliente.
- Menú responsive en móvil.
- Optimización de imágenes automática mediante un script con Sharp.
La migración
No había mucho contenido que migrar, el blog estaba practicamente vacío, así que el proceso fue relativamente sencillo. Los posts en Markdown se adaptan sin cambios, solo algunos ajustes.
Las URLs de los posts cambian de /posts/nombre a /blog/nombre. Para no romper los enlaces existentes, hay una redirección 301 en public/_redirects que Cloudflare Pages aplica automáticamente:
/posts/* /blog/:splat 301
Conclusión
El resultado es un sitio más rápido, más fácil de mantener. Hugo sigue siendo una herramienta fantástica pero para este sitio y, mis ganas de cacharrear, Astro encaja mejor con lo que quiero hacer.