Astro, o Astro.js, es un popular generador de sitios estáticos concebido para quienes desean crear sitios web ricos en contenido que funcionen con rapidez y fluidez. Su naturaleza ligera, estructura intuitiva y suave curva de aprendizaje lo hacen atractivo para desarrolladores de todos los niveles de experiencia.
A pesar de su pequeño tamaño, Astro viene con potentes herramientas que aumentan drásticamente la flexibilidad de tu sitio, ahorrándote horas en la gestión de contenidos y temas. Además, ofrece a los desarrolladores la opción de trabajar con sus frameworks preferidos a la vez que con Astro — una perspectiva atractiva para los programadores experimentados que ya cuentan con un gran número de favoritos.
Éstas son sólo algunas de las formas en que Astro destaca entre la multitud:
- Arquitectura en isla: Astro extrae tu interfaz de usuario (IU) en componentes más pequeños y aislados, conocidos como «Islas Astro», que pueden utilizarse en cualquier página. El JavaScript no utilizado se sustituye por HTML ligero.
- Cero JavaScript (por defecto): Aunque puedes utilizar todo el JavaScript que quieras para crear tus sitios web, Astro intentará desplegar cero JavaScript en producción transcribiendo tu código por ti. Es un enfoque perfecto si lo que te interesa es la velocidad del sitio.
- SSG y SSR incluidos: Astro comenzó como un generador de sitios estáticos, pero en el camino se convirtió en un framework que utiliza tanto la generación de sitios estáticos (SSG) como la renderización del lado del servidor (SSR, Server-Side Rendering). Y puedes elegir qué páginas utilizarán cada enfoque.
- Agnóstico en cuanto a frameworks: Al utilizar Astro, puedes utilizar cualquier framework JavaScript que desees, incluso varios frameworks a la vez. (Hablaremos de esto con más detalle más adelante en este artículo)
Además, Astro está preparada para la tecnología edge, lo que significa que puede desplegarse en cualquier lugar, en cualquier momento y con facilidad.

Instalación y configuracion basica
- 1) npm create astro@latest .
- 2) npm install bootstrap@latest
-
colocar esto en el Layout para integrar a bootstrap
import 'bootstrap/dist/css/bootstrap.css';
<script src="bootstrap/dist/js/bootstrap.bundle.js"></script> - El paso 3 y 4 solo para desplegar en github
3) npm i gh-pages -
4) agregar esta linea en el script
"deploy": "gh-pages -d dist" -
5) en astro.config.mjs
export default defineConfig({
site: 'https://profwilliamarte.github.io',/* aqui colocarias el nombre de tu cuenta*/
base: '/jsonpeliculasastrobootstrap',/* aqui colocarias el nombre de tu repositorio*/
build: {
assets: 'astro' /// muy importante
}
});
Estructura de Astro
Antes de seguir adelante, es importante entender cómo está configurado Astro para que puedas utilizarlo con eficacia. Echemos un vistazo a la estructura básica de archivos de Astro:
Como puedes ver, la estructura en sí es bastante sencilla. Sin embargo, hay algunos puntos clave que debes recordar:
- La mayor parte de nuestro proyecto vive en la carpeta src. Puedes organizar tus componentes, diseños y páginas en subcarpetas. Puedes añadir carpetas adicionales para que tu proyecto sea más fácil de navegar.
- La carpeta public es para todos los archivos que viven fuera del proceso de construcción, como fuentes, imágenes o un archivo robots.txt.
- La carpeta dist contendrá todo el contenido que quieras desplegar en tu servidor de producción.
├── dist/
├── src/
│ ├── components/
│ ├── layouts/
│ └── pages/
│ └── index.astro
├── public/
Componentes
Los componentes son trozos de código reutilizables que pueden incluirse en todo tu sitio web, de forma similar a los shortcodes de WordPress. Por defecto, tienen la extensión de archivo .astro, pero también puedes utilizar componentes que no sean de Astro creados con Vue, React, Preact o Svelte.
A continuación se muestra un ejemplo del aspecto de un componente sencillo: en este caso, una etiqueta div con una clase que contiene un h2.
lo llamaremos Saludo.astro dentro de la carpeta src/compontents/Saludo.astro
<div class="saludo">
<h2>Hola, soy un componente o</h2>
</div>
Y así es como podemos incorporar ese componente a nuestro sitio:
---
import Saludo from ../components/Saludo.astro
---
<div>
<Saludo />
</div>
Como se ha demostrado anteriormente, primero tienes que importar el componente.
Sólo entonces podrás incluirlo en la página.
Ahora es el momento de añadir algunas propiedades a nuestro componente.
Empecemos con una propiedad {title}:
---
const { title = 'Hello' } = Astro.props
---
<div class="saludo">
<h2>{title}</h2>
</div>
Y así es como se implementaría nuestra propiedad:
---
import Saludo from ../components/Saludo.astro
---
<div>
<Saludo title="Good day"/>
<Saludo />
</div>
Como probablemente ya te habrás dado cuenta, el verdadero poder de los componentes de Astro reside en su naturaleza global y reutilizable. Te permiten hacer cambios radicales en todo tu sitio editando solo unas pocas líneas de código, lo que puede ahorrarte incontables horas que de otra forma emplearías en realizar tediosas y laboriosas sustituciones de texto.