Hace una década, una página web era texto, imágenes y un poco de interactividad. Hoy, hasta el blog más simple suele cargar megabytes de JavaScript: routers en el cliente, frameworks que rehidratan la página entera, librerías que la mayoría de usuarios nunca van a tocar.
El precio: webs lentas, sobre todo en móviles, y en redes con cobertura mediocre.
Astro nació en 2021 con una propuesta simple y radical: enviar cero JavaScript por defecto. La mayor parte de tu sitio es contenido estático — ¿por qué hidratar un blog entero como si fuera una SPA?
Astro renderiza tus páginas a HTML en build time. Solo si tú marcas un componente como interactivo, Astro le manda al navegador el JS necesario para esa isla concreta. Es lo opuesto a la mentalidad SPA: en lugar de "todo es JS y vamos quitando", aquí "todo es HTML y vamos añadiendo".
Un archivo .astro se parece a un componente: tiene una zona arriba, entre ---, donde escribes JavaScript/TypeScript que se ejecuta en build, y debajo el HTML que se va a renderizar.
Si has tocado React, JSX o Svelte, te resultará natural.
Es un meta-framework de sitios. No tiene su propio sistema de componentes interactivos: te trae integraciones para usar el que ya conozcas. La pieza propia de Astro es el archivo .astro, que es perfecto para layouts, páginas y cualquier componente no interactivo.
Esto lo hace flexible: empiezas con HTML puro y vas metiendo islas según haga falta.
A la derecha tienes un proyecto Astro mínimo abierto en src/pages/index.astro. La estructura es estándar:
--- arriba: frontmatter (vacío por ahora)<h1> por un saludo personalizado con tu nombre<p> para que cuente algo sobre tiEstás escribiendo HTML real. Astro lo va a servir tal cual al navegador, sin runtime de JavaScript. Cada KB que ahorras aquí se nota en el tiempo de carga de tus visitantes.