Content Layers API en Astro
(Agosto 2026)
El antiguo sistema de colecciones de Astro ha ido evoluciona hacia la Content Layer API. Este nuevo sistema permite unificar cualquier origen de datos bajo la misma API de validación con Zod y tipado estático con TypeScript.
Gracias a esto, en un mismo proyecto pueden convivir sin conflictos:
- Colecciones basadas en archivos locales (
.md,.mdx,.json,.yaml). - Colecciones que obtienen datos desde APIs REST o GraphQL externas.
- Colecciones conectadas a CMS headless (como Strapi, WordPress, Sanity o Notion).
Configuración unificada (src/content.config.ts)
Anteriormente, el sistema de colecciones solo leía archivos estrictamente dentro de src/content/. Ahora, el contenido puede provenir de cualquier lugar (dentro o fuera del proyecto) mediante el uso de Loaders.
La función glob() y otros Loaders
Astro incluye los siguientes loaders oficiales listos para usar:
glob(): El loader estándar para contenido local (archivos Markdown, MDX, JSON, etc. ubicados en cualquier carpeta del proyecto).file(): Para cargar archivos individuales locales o remotos.- Loaders de integración / custom: Módulos que permiten conectar Astro directamente a bases de datos o CMS en la nube mediante un simple
fetch().
Objetivos clave del nuevo sistema
- Flexibilidad total: Consumir datos locales y remotos con la misma sintaxis (
getCollection(),getEntry()) y los mismos esquemas de validación (Zod). - Rendimiento y escalabilidad: Los datos remotos se descargan y cachean en tiempo de build (o bajo demanda), evitando llamadas innecesarias a APIs externas y mejorando significativamente la velocidad de compilación en proyectos masivos.