Entrada

Astro: Crear un blog

Astro es una de los frameworks más modernos y rápidos para construir sitios estáticos. En este artículoo aprenderás a cómo usar la plantilla de blog junto con React para crear tu propio sitio, personalizarlo y dejarlo listo para producción.

1. Crear el proyecto

Desde una terminal, ejecuta el siguiente comando:

1
npm create astro@latest -- --add react

Esto lanza un asistente interactivo donde debes elegir:

  • El nombre del proyecto
  • El lenguaje (TypeScript o JavaScript)
  • El marco de componentes que quieres trabajar (en este caso React, ya incluido con la opción --add react)
  • La plantilla base: blog
  • Instalar las dependencias
  • Inicializar git

Nuevo proyecto

Una vez termine la instalación, navega a tu proyecto y levanta el servidor local:

1
2
cd nombre-de-tu-proyecto
npm run dev

Y con esto ya puedes abrir el navegador para ver la el proyecto:

Preview sitio

2. Estructura del proyecto

Primero que todo, al abrir el proyecto con VS Code, se nos recomendará instalar las extensiones para Astro, lo cual les aconsejo hacer.

abrir con vs code _Instalar la extensión para Astro__

Como podemos observar, la estructura tiene el siguiente árbol de directorio:

1
2
3
4
5
6
7
8
📁 src/
│  ├── components/         # Componentes reutilizables (puedes poner tus React aquí)
│  ├── content/            # Los posts escritos en Markdown
│  ├── layouts/            # Layouts que definen la estructura general de las páginas
│  ├── pages/              # Rutas del sitio: index, about, etc.
│  └── styles/             # Archivos CSS globales o específicos
📁 public/                 # Imágenes o archivos accesibles directamente
astro.config.mjs          # Configuración principal de Astro

3. Crear un nuevo post

Como en la mayoría de generadores de sitios web estáticos (tipo Jekyll, Hugo) los artículos se pueden escribir en Markdown y en el caso de astro se crean en la siguiente ruta:

1
src/content/blog/

contenido del blog

Como podemos observar, los artículos que vallas creando aquí, se van a mostrar automáticamente. Astro usa su sistema de Content Collections, lo que permite leer y organizar automáticamente todos los archivos dentro de esta ruta.

4. Agregar un componente React

Como tenemos configurado --add react, ya puedes agregar componentes de React dentro de tus páginas. Para ello, vamos a crear lo siguiente:

  1. Un archivo en:
    1
    
     src/components/Contador.jsx
    
1
2
3
4
5
6
7
8
9
10
import { useState } from "react";

export default function Contador() {
  const [count, setCount] = useState(0);
  return (
    <button onClick={() => setCount(count + 1)}>
      Has hecho clic {count} veces
    </button>
  );
}
  1. En una página Astro, por ejemplo en:
    1
    
     src/pages/index.astro
    
1
2
3
4
5
6
---
import Contador from '../components/Contador.jsx';
---

<h2>Componente React</h2>
<Contador client:only="react" />
  • client:only="react": Renderiza el componente solo en el cliente y no en el servidor.
Esta entrada está licenciada bajo CC BY 4.0 por el autor.