Contenido de demostración: reemplaza este artículo por tus propias experiencias antes de publicar.

Mi objetivo con este proyecto era sencillo: un lugar para escribir, experimentar y enseñar pequeñas cosas que voy construyendo. No necesitaba una aplicación de una sola página ni una infraestructura compleja. Necesitaba una web.

El punto de partida

Buscaba tres características: rendimiento, control del contenido y facilidad de mantenimiento. Astro encaja bien porque genera HTML estático y permite utilizar componentes de interfaz solo cuando aportan valor.

Páginas rápidas por defecto

Una entrada del blog es esencialmente contenido. No necesito enviar al navegador el JavaScript de un framework entero para mostrar un párrafo o un bloque de código.

Markdown como fuente de verdad

Guardar los artículos junto al código en Git facilita la revisión, el historial de cambios y la publicación. Y cuando necesito algo más expresivo, puedo utilizar MDX.

Cómo organizo el contenido

Utilizo colecciones de contenido tipadas. El esquema valida los campos de cada artículo, de modo que un error en el frontmatter no se convierte silenciosamente en un fallo de producción.

import { getCollection } from 'astro:content';

const posts = await getCollection('blog', ({ data }) => !data.draft);
const ordered = posts.sort(
  (a, b) => b.data.publishedAt.getTime() - a.data.publishedAt.getTime()
);

Cada entrada aporta su título, descripción, fecha, categoría y etiquetas. La página del listado y las rutas individuales se generan a partir de esos datos.

Lo siguiente

Quiero mantener el proyecto deliberadamente simple. Primero, buena lectura y buenas páginas. Más adelante llegarán las mejoras que de verdad necesite, no las que suenan interesantes en un hilo de redes sociales.

La tecnología es una herramienta; el objetivo es seguir escribiendo.

← Volver al blog