Llevaba años con mi web personal en HTML, CSS y JavaScript puro. Funcionaba, sí. Pero cada vez que quería hacer un cambio —añadir una sección nueva, actualizar el CV, tocar el tema— acababa editando el mismo fichero monolítico de cientos de líneas y rezando para no romper nada.
Llegó un momento en que decidí que merecía la pena reescribirlo. Y elegí Astro.
Por qué Astro y no otra cosa
La alternativa obvia habría sido React o Vue. Pero mi web es básicamente contenido estático: no hay estado complejo, no hay interactividad sofisticada. Usar un framework JS completo para esto sería como usar un camión para ir al supermercado.
También barajé usar WordPress como hice en el pasado, pero ¿es necesario mantener una base de datos y toda la infraestructura de WordPress para tener un blog? La respuesta es NO.
Pero hay otras dos alternativas que merecen una reflexión más seria: Hugo y Jekyll. Ambos son generadores de sitios estáticos con años de historia y comunidades sólidas. Entonces, ¿por qué Astro?
Hugo, Jekyll y Astro: una comparativa honesta
Jekyll
Jekyll fue durante mucho tiempo la opción para blogs estáticos, especialmente por su integración nativa con GitHub Pages. Si empezaste un blog hace una década, probablemente pasaste por Jekyll.
Sus puntos fuertes son evidentes: madurez, documentación abundante y una comunidad que ha resuelto casi cualquier problema que puedas imaginar. El sistema de temas es funcional y hay plantillas para todo.
El problema es que Jekyll muestra su edad. Está escrito en Ruby, lo que significa que necesitas gestionar un entorno Ruby en tu máquina, con sus gemas y sus versiones. En 2026, añadir una dependencia de Ruby a un proyecto web personal se siente como un paso atrás. El ecosistema JavaScript ha ganado la guerra del tooling frontend, y Jekyll no forma parte de él.
Además, si quieres usar Tailwind CSS, tienes que dar varios saltos para integrarlo. La experiencia de desarrollo no es fluida comparada con lo que ofrece el ecosistema Node.
Cuándo tiene sentido Jekyll: si ya tienes un blog en Jekyll funcionando y no tienes razones de peso para migrar, no lo toques. Si estás empezando desde cero, busca otra opción.
Hugo
Hugo es una propuesta diferente y más moderna. Está escrito en Go, lo que lo hace extraordinariamente rápido en la generación de sitios: puede compilar miles de páginas en segundos. Para sitios con centenares de artículos, esa velocidad es genuinamente impresionante.
También es un binario único sin dependencias externas: lo descargas y funciona. Eso es una ventaja real en simplicidad de instalación.
Sin embargo, Hugo tiene una curva de aprendizaje que no se debe subestimar. Su sistema de plantillas en Go es potente pero extraño para alguien que viene del mundo HTML/JS. Las funciones de template, el sistema de pipes, los shortcodes… son conceptos que hay que aprender específicamente para Hugo y que no se transfieren a ningún otro contexto. Estás aprendiendo Hugo, no habilidades generalizables.
La integración con el ecosistema JavaScript moderno tampoco es su punto fuerte. Sí, puedes configurar un pipeline con npm para procesar assets, pero la experiencia no es tan cohesionada como en herramientas nativas del ecosistema JS.
Cuándo tiene sentido Hugo: en proyectos con un volumen muy alto de contenido (cientos o miles de páginas) donde la velocidad de build es crítica, o en equipos con experiencia previa en Go.
Astro
Astro me daba lo que necesitaba sin los compromisos de los otros dos:
- Componentes para estructurar el código sin enviar JavaScript innecesario al navegador.
- Generación estática (
output: 'static'): el resultado es HTML puro, sin runtime. - Compatibilidad con Tailwind CSS v4 desde el primer día mediante el plugin de Vite.
- TypeScript integrado sin configuración adicional.
- Sintaxis familiar: si sabes HTML y JavaScript, lees un componente
.astroy lo entiendes al instante. No hay un lenguaje de plantillas propio que aprender.
La diferencia filosófica clave frente a Hugo y Jekyll es que Astro vive dentro del ecosistema JavaScript moderno. Todo lo que sabes de npm, Vite, TypeScript y los frameworks JS más populares funciona sin fricciones. No es un mundo aparte con sus propias herramientas.
Tabla comparativa resumida
| Jekyll | Hugo | Astro | |
|---|---|---|---|
| Lenguaje base | Ruby | Go | JavaScript / TypeScript |
| Velocidad de build | Lenta | Muy rápida | Rápida |
| Curva de aprendizaje | Media | Alta | Baja |
| Integración con JS moderno | Deficiente | Limitada | Nativa |
| TypeScript | No | No | Sí |
| Tailwind CSS | Complejo | Posible | Trivial |
| Componentes reutilizables | Parcial (includes) | Parcial (partials) | Sí, de primera clase |
| Content Collections con esquema | No | No | Sí (Zod) |
| Ecosistema activo | Estancado | Activo | En pleno crecimiento |
El proceso de migración
La migración fue más sencilla de lo que esperaba. El HTML existente se trasladó casi tal cual a los componentes .astro. El frontmatter de cada componente es TypeScript puro, lo que facilitó mover los datos (experiencia, proyectos…) a arrays de objetos tipados.
Lo que más me gustó fue poder separar el código en ficheros con una responsabilidad clara:
Header.astro → cabecera y navegación Inicio.astro → sección hero Curriculum.astro → CV completo con tabs Proyectos.astro → grid de proyectos Blog.astro → últimas entradas
Lo que me sorprendió
Las Content Collections. Al principio pensé que serían overkill para un blog pequeño, pero la integración con TypeScript es impecable: el esquema Zod garantiza que todos los artículos tienen los campos obligatorios, y el autocompletado en el editor funciona perfectamente. Ni Jekyll ni Hugo ofrecen nada equivalente con el mismo nivel de seguridad de tipos.
El rendimiento. El HTML generado es limpio y mínimo. Sin JavaScript en el bundle por defecto (salvo los <script> que yo añado explícitamente para el menú en móvil).
La curva de aprendizaje. Prácticamente nula si ya conoces HTML y JavaScript. La sintaxis .astro es familiar desde el primer momento. Muy diferente a tener que aprender el sistema de plantillas de Hugo, que requiere tiempo real de inversión.
¿Merece la pena?
Para una web personal estática: sí, sin dudarlo. Astro es una herramienta que te ayuda pero al mismo tiempo te deja hacer las cosas a tu manera, sin imponer patrones ni dependencias innecesarias.
Frente a Jekyll, ganas un ecosistema moderno y una integración JS sin fricciones. Frente a Hugo, ganas una sintaxis familiar y componentes de verdad, sin tener que aprender un lenguaje de plantillas propietario.
Si tienes una web en HTML vanilla (o incluso en Jekyll o Hugo) y estás pensando en darle estructura, la migración a Astro es una inversión de esfuerzo bajo con retorno alto en mantenibilidad y experiencia de desarrollo. Yo no me he arrepentido.
Antonio Campos Serna