
Cómo Crear un Blog en Astro 5 con Markdown y Componentes React
Astro 5 es una poderosa herramienta para crear sitios web rápidos y modernos. En esta guía, aprenderás a crear un blog usando Astro con Markdown para escribir artículos y componentes React para añadir interactividad.
¿Qué es Astro?
Astro es un framework de desarrollo web que permite construir sitios estáticos y dinámicos utilizando múltiples frameworks de frontend como React, Vue o Svelte. Con su enfoque “content-first”, Astro prioriza la generación de HTML estático para mejorar la velocidad de carga.
Pasos para Crear un Blog en Astro 5
1. Inicia un Nuevo Proyecto Astro
Comienza creando un nuevo proyecto en Astro. En tu terminal, ejecuta:
npm create astro@latest
Sigue las instrucciones en pantalla y selecciona una plantilla básica.
Luego, entra en el directorio del proyecto:
cd nombre-del-proyecto
Instala las dependencias:
npm install
2. Crea Páginas con Markdown
Astro soporta archivos Markdown (.md
) y Markdown + JSX (.mdx
) de forma nativa. Crea una carpeta src/pages/blog
y añade un archivo Markdown:
src/pages/blog/primer-articulo.md
Añade el siguiente contenido al archivo:
---
title: "Mi Primer Artículo"
description: "Este es el primer artículo de mi blog en Astro."
publishDate: "2025-01-19"
author: "XanSaul"
tags: ["Astro", "Markdown"]
---
# Bienvenido a mi Primer Artículo
Este es el inicio de mi blog creado con **Astro 5**. ¡Es increíble lo rápido y sencillo que es usar Astro!
Puedes incluir código como este:
```javascript
console.log("Hola, mundo!");
Y también imágenes:

3. Configura una Lista de Artículos
Para listar los artículos en tu blog, puedes usar el sistema de glob
de Astro. Crea un archivo para la página principal del blog:
src/pages/blog.astro
Añade el siguiente código:
---
import { getCollection } from 'astro:content';
const posts = await getCollection('blog');
---
<html lang="es">
<head>
<title>Blog</title>
</head>
<body>
<h1>Mi Blog en Astro</h1>
<ul>
{posts.map((post) => (
<li>
<a href={post.slug}>{post.data.title}</a>
<p>{post.data.description}</p>
<small>Publicado el: {post.data.publishDate}</small>
</li>
))}
</ul>
</body>
</html>
4. Añade Componentes React
Astro te permite usar componentes React fácilmente. Primero, instala el soporte para React:
npm install @astrojs/react
Luego, actualiza tu archivo astro.config.mjs
:
import { defineConfig } from 'astro/config';
import react from '@astrojs/react';
export default defineConfig({
integrations: [react()],
});
Crea un componente React en src/components/Contador.jsx
:
import { useState } from 'react';
export default function Contador() {
const [cuenta, setCuenta] = useState(0);
return (
<div>
<p>Cuenta actual: {cuenta}</p>
<button onClick={() => setCuenta(cuenta + 1)}>Incrementar</button>
</div>
);
}
Importa el componente React en tu artículo de blog:
---
title: "Artículo Interactivo"
description: "Este artículo incluye un contador interactivo usando React."
publishDate: "2025-01-19"
author: "XanSaul"
tags: ["Astro", "React"]
---
# Artículo Interactivo
Este artículo incluye un contador interactivo hecho con React.
<Contador />
5. Agrega Estilos
Puedes usar CSS nativo o bibliotecas como Tailwind CSS. Para instalar Tailwind CSS, ejecuta:
npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init
Configura tailwind.config.cjs
para que busque archivos Astro:
module.exports = {
content: ['./src/**/*.{astro,html,js,jsx,md,mdx}'],
theme: {
extend: {},
},
plugins: [],
};
Importa los estilos en src/styles/global.css
:
@tailwind base;
@tailwind components;
@tailwind utilities;
Y enlázalos en src/layouts/BaseLayout.astro
o directamente en tus páginas.
Conclusión
Con Astro 5, puedes construir un blog rápido y moderno en minutos. Combinando Markdown para el contenido y React para la interactividad, obtendrás lo mejor de ambos mundos. ¡Empieza a crear tu blog hoy!