Tu sitio Eleventy funciona — hasta que necesitas un carrito
Si eres líder de desarrollo y ves cómo tu sitio 11ty se convierte en un laberinto de Nunjucks cada vez que marketing pide una función, has chocado contra el muro de los componentes.
Why leave Eleventy (11ty)?
- Stop debugging Nunjucks — the project's maintainer abandoned it and Liquid's 11ty fork drops named arguments mid-template
- Quit stitching asset pipelines — every Eleventy project demands manual PostCSS, esbuild, and Sharp plugin wiring before you write a line
- Escape the data cascade maze — five merging data sources with implicit priority create bugs you can't trace without console logging globals
- Ditch pseudo-components — template includes and shortcodes lack typed props, scoped CSS, or any hydration path for interactivity
- Abandon the WebC dead end — introduced as '11ty's modern templating layer' but ignored by the ecosystem and unsupported by tooling
- Break free from config fatigue — your `.eleventy.js` balloons to 200+ lines just to match what Astro ships by default
What you gain
- Ship typed components that compile to zero JavaScript — scoped CSS, slot composition, and props validation without runtime overhead
- Catch content errors at build time — Zod-validated collections flag broken frontmatter and surface autocomplete in your editor before deploy
- Stop configuring image optimization — responsive srcset, WebP/AVIF conversion, and lazy loading work in three lines of JSX with no plugins
- Add interactivity without framework bloat — island architecture lets you drop React cart logic or a Svelte form into static pages, hydrating only what needs it
- Delete your tooling setup — Vite dev server, instant HMR, CSS bundling, and TypeScript support run out of the box with zero config files
- Keep your deploy speed and cut build time — your 90-second 11ty builds drop to sub-15 seconds while preserving full static output
Por qué migrar de Eleventy a Astro
Eleventy es un generador de sitios estáticos sólido. Es minimalista, rápido y respeta tu contenido al mantenerlo en lenguajes de plantillas estándar. Si llevas tiempo con un sitio 11ty, probablemente lo elegiste exactamente por eso.
¿Entonces por qué cambiar?
Astro te da todo lo que ofrece Eleventy — cero JS por defecto, salida estática primero, builds rápidos — más un modelo de componentes, optimización de assets integrada, colecciones de contenido con tipado seguro y soporte de primera clase para frameworks. La misma filosofía, pero con una experiencia de desarrollo mucho mejor.
Hemos migrado docenas de sitios Eleventy a Astro. Es una de las transiciones más fluidas que gestionamos porque los modelos mentales se alinean muy bien. Ambas herramientas respetan la salida estática. Ambas envían JavaScript mínimo. La diferencia aparece cuando necesitas más.
Los puntos de dolor con Eleventy
Fragmentación de lenguajes de plantillas
Eleventy soporta HTML, Markdown, Nunjucks, Liquid, Handlebars, Mustache, EJS, Haml, Pug, WebC y lenguajes personalizados. Eso se vende como flexibilidad. En la práctica, genera fragmentación. Tus includes pueden ser Nunjucks, tus layouts Liquid, tus archivos de datos JavaScript. Los nuevos desarrolladores que se unen al proyecto pasan su primera semana intentando entender qué lenguaje de plantillas hace qué.
Nunjucks en sí está prácticamente sin mantenimiento — el proyecto de Mozilla no ha recibido actualizaciones significativas en años. La implementación de Liquid en 11ty no soporta completamente los argumentos con nombre. WebC se introdujo como alternativa moderna, pero no ha alcanzado una adopción generalizada.
Pipeline de assets manual
Eleventy deliberadamente no gestiona CSS, JavaScript ni optimización de imágenes. Tú configuras tu propio pipeline de build — normalmente PostCSS, esbuild o Vite, y el plugin eleventy-img. Potente si sabes lo que haces, pero cada proyecto comienza con una configuración significativa de herramientas antes de escribir una sola línea de contenido.
La complejidad del Data Cascade
El data cascade de 11ty es potente pero opaco. Los datos fluyen desde archivos de datos globales, archivos de datos de directorio, frontmatter de plantillas, datos computados y archivos de datos JavaScript — todo fusionándose en un orden de prioridad específico. Depurar problemas de datos significa entender toda la cascada. Incluso los desarrolladores con experiencia tropiezan con esto.
Sin modelo de componentes
Eleventy usa includes y shortcodes para la UI reutilizable. Funcionan, pero no son componentes. No puedes pasar props tipadas, colocalizar estilos ni mejorar progresivamente elementos de UI específicos con interactividad del lado del cliente sin construir una solución personalizada desde cero.
Lo que Astro te aporta
Componentes reales, sin runtime
Los componentes de Astro parecen HTML con un bloque de script en el frontmatter. Soportan props tipadas, estilos con alcance local y composición basada en slots. Se compilan a cero JavaScript por defecto — igual que tus plantillas Nunjucks, pero con un modelo de componentes real detrás.
---
interface Props {
title: string;
date: Date;
}
const { title, date } = Astro.props;
---
<article>
<h2>{title}</h2>
<time datetime={date.toISOString()}>{title}</time>
<slot />
</article>
<style>
article { /* alcance automático */ }
</style>
Colecciones de contenido con tipado seguro
Las colecciones de contenido de Astro reemplazan el data cascade de 11ty con un sistema validado por esquemas y con tipado seguro. Defines el esquema de tu contenido usando Zod, y Astro valida cada pieza de contenido en el momento del build. Sin más sorpresas por campos de frontmatter faltantes descubiertos en producción.
const blog = defineCollection({
schema: z.object({
title: z.string(),
date: z.date(),
tags: z.array(z.string()).optional(),
draft: z.boolean().default(false),
}),
});
Esto sustituye el data cascade implícito por esquemas explícitos y validados. Tu IDE autocompleta los campos de contenido. Los errores de build detectan datos faltantes antes del despliegue.
Optimización de assets integrada
Astro gestiona el bundling de CSS, el procesamiento de JavaScript y la optimización de imágenes de serie. El componente <Image /> genera imágenes responsivas con srcset adecuado, convierte a WebP/AVIF y gestiona la carga diferida — sin configuración de plugins.
Islands de framework cuando los necesitas
¿Necesitas interactividad del lado del cliente — un widget de búsqueda, un gráfico interactivo, un formulario con validación? La arquitectura de islands de Astro te permite incluir componentes de React, Svelte, Vue o Solid que se hidratan de forma independiente. Con Eleventy, cada elemento interactivo requiere un bundling de JavaScript personalizado. Tú construyes esa infraestructura tú mismo.
Nuestro proceso de migración
Fase 1: Auditoría y arquitectura (semana 1)
Analizamos la estructura de tu proyecto 11ty existente — lenguajes de plantillas en uso, dependencias del data cascade, shortcodes, plugins y filtros personalizados. Cada plantilla Nunjucks/Liquid se mapea a su componente Astro equivalente, y documentamos el flujo de datos completo antes de escribir una sola línea de código nuevo.
Fase 2: Migración de contenido (semanas 1-2)
Tu contenido Markdown se transfiere directamente — Astro lee el mismo formato de frontmatter. Definimos esquemas Zod basados en tus patrones de frontmatter existentes y configuramos las colecciones de contenido. Si usas datos computados de 11ty o archivos de datos JavaScript, los convertimos a los patrones de carga de datos de Astro.
La conversión de plantillas sigue patrones predecibles:
| Eleventy | Astro |
|---|---|
{% include "header.njk" %} |
<Header /> |
{% block content %}{% endblock %} |
<slot /> |
{{ variable | filter }} |
{variable} con transformaciones JS |
{% for item in collection %} |
{collection.map(item => ...)} |
| Shortcodes | Componentes Astro |
_data/ datos globales |
Astro.glob() o colecciones de contenido |
Fase 3: Diseño y construcción de componentes (semanas 2-3)
Reconstruimos tus plantillas como componentes Astro con estilos de alcance local. Aquí es donde la mejora se hace evidente. Las plantillas que eran includes de Nunjucks incómodos se convierten en unidades limpias, tipadas y componibles. Implementamos imágenes responsivas, optimizamos fuentes y añadimos los islands interactivos que tu sitio necesita.
Fase 4: Pruebas y verificación SEO (semanas 3-4)
Auditorías completas de Lighthouse. Cada URL validada contra tu sitemap existente. Redirecciones probadas. Datos estructurados verificados. Comprobamos que los feeds RSS, las meta etiquetas sociales y las URLs canónicas coincidan con tu configuración actual antes de que nada salga en producción.
Estrategia de preservación del SEO
Tanto Eleventy como Astro generan HTML estático, lo que hace que la migración SEO sea mucho más sencilla que moverse desde un framework renderizado en el cliente. Esto es lo que gestionamos específicamente:
- Paridad de URLs: Mapeamos cada URL existente y garantizamos rutas idénticas en Astro. Si tu sitio 11ty usa estructuras de permalink personalizadas, las replicamos exactamente.
- Redirecciones 301: Para cualquier URL que deba cambiar, configuramos redirecciones adecuadas a nivel de hosting.
- Generación de sitemap: La integración
@astrojs/sitemapde Astro genera un sitemap preciso de forma automática. - Meta etiquetas: Todas las etiquetas de título, meta descripciones, etiquetas Open Graph y datos estructurados se transfieren a la gestión de
<head>de Astro. - Mejoras de rendimiento: La optimización integrada de imágenes y el bundling de assets mejoran típicamente los Core Web Vitals, lo que repercute positivamente en el posicionamiento en buscadores.
Plazos y precios
Las migraciones de Eleventy a Astro se encuentran entre las más rápidas que realizamos. El contenido se transfiere con cambios mínimos y la conversión de plantillas sigue patrones mecánicos. Las filosofías son tan cercanas que no se requiere repensar nada desde los cimientos.
- Sitios pequeños (menos de 20 plantillas, blog/docs): 2-3 semanas, desde $4.000
- Sitios medianos (20-50 plantillas, múltiples tipos de contenido): 3-5 semanas, desde $8.000
- Sitios grandes (50+ plantillas, relaciones de datos complejas, funciones interactivas): 5-8 semanas, desde $15.000
Cada migración comienza con una auditoría gratuita — evaluamos tu configuración actual de 11ty y producimos un documento de alcance detallado. Sin sorpresas.
The migration process
Discovery & Audit
We map every page, post, media file, redirect, and plugin. Nothing gets missed.
Architecture Plan
New stack designed for your content structure, SEO requirements, and performance targets.
Staged Migration
Content migrated in batches. Each batch verified before the next begins.
SEO Preservation
301 redirects, canonical tags, sitemap, robots.txt — every ranking signal carried over.
Launch & Monitor
DNS cutover with zero downtime. 30-day monitoring period included.
Eleventy (11ty) vs Astro
| Metric | Eleventy (11ty) | Astro |
|---|---|---|
| Lighthouse Mobile | 70-85 | 95-100 |
| TTFB | 0.3-0.8s | <0.2s |
| Asset Pipeline Setup | Manual (PostCSS, esbuild, eleventy-img) | Built-in (Vite, <Image />) |
| Hosting Cost | $0-20/mo | $0-20/mo |
| Content Type Safety | None (implicit data cascade) | Full (Zod schema validation) |
| Component Model | Includes + shortcodes | Typed components with scoped styles + framework islands |
Common questions
¿Puedo conservar mi contenido Markdown existente al migrar de Eleventy a Astro?
Sí. Astro lee Markdown estándar y MDX con frontmatter YAML — el mismo formato que usa Eleventy. Tus archivos de contenido se transfieren directamente. Definimos esquemas Zod para validar tu frontmatter en el momento del build, lo que detecta cualquier inconsistencia que tu sitio 11ty pudiera haber estado ignorando silenciosamente.
¿Cómo se comparan las colecciones de contenido de Astro con el data cascade de 11ty?
Las colecciones de contenido de Astro son explícitas y con tipado seguro. En lugar de la fusión implícita de archivos de datos globales, datos de directorio y frontmatter de 11ty, defines esquemas con validación Zod. Tu IDE autocompleta los nombres de los campos. Los builds fallan si el contenido no coincide con el esquema. Es más estructurado, pero mucho más fácil de depurar cuando algo va mal.
¿Cambiarán mis URLs al migrar de Eleventy a Astro?
No, si lo gestionamos correctamente. Astro soporta enrutamiento basado en archivos y rutas personalizadas que pueden replicar cualquier estructura de permalink de Eleventy. Mapeamos cada URL existente durante la fase de auditoría y garantizamos una paridad 1:1. Cualquier URL que deba cambiar recibe redirecciones 301 adecuadas configuradas a nivel de hosting.
¿Es Astro realmente más rápido que Eleventy para sitios estáticos?
Los tiempos de build son comparables en sitios con mucho contenido — ambos son generadores de sitios estáticos rápidos. La diferencia real aparece en la salida. La optimización integrada de imágenes, el bundling de CSS y el hashing automático de assets de Astro producen mejores puntuaciones en Lighthouse sin la configuración manual de herramientas que requiere Eleventy. Espera puntuaciones de 90-100 en Lighthouse desde el primer momento.
¿Qué ocurre con mis shortcodes y filtros de Eleventy?
Los shortcodes se convierten en componentes Astro con props tipadas — una mejora real. Los filtros de Nunjucks/Liquid se convierten en funciones JavaScript estándar llamadas directamente en el frontmatter de Astro o en las expresiones de la plantilla. La lógica se mantiene igual. La sintaxis queda más limpia y fácil de mantener.
¿Puedo añadir componentes de React o Svelte a mi sitio Astro tras la migración?
Por supuesto. La arquitectura de islands de Astro te permite añadir componentes de React, Svelte, Vue, Solid o Preact que se hidratan de forma independiente. Esta es una de las mejoras más importantes respecto a Eleventy — mejora progresiva con componentes de framework, sin enviar un runtime completo del lado del cliente a cada página.
Ready to migrate?
Free assessment. We'll audit your current site and give you a clear migration plan — no commitment.
Let's build
something together.
Whether it's a migration, a new build, or an SEO challenge — the Social Animal team would love to hear from you.