Blog personal construido con Hugo y el tema PaperMod, desplegado en Cloudflare Pages.
- Tema PaperMod personalizado
- Generación automática de imágenes Open Graph con Satori (sin Chrome)
- Soporte para CSS personalizado
- Optimizado para SEO
- Build ultrarrápido con Bun (~28s en CI)
Ejecuta este comando una sola vez después de clonar el repositorio:
bun run setupEste comando:
- Instala todas las dependencias
- Configura los git hooks
- Genera las imágenes Open Graph
Nota: El proyecto usa Bun para ejecución directa de TypeScript (sin paso de compilación).
Para desarrollo diario:
bun run blog:devPara construir el sitio (genera OG images + Hugo build):
bun run blog:buildPara generar solo las imágenes Open Graph:
bun run generate-ogPara build de CI (usado por Cloudflare Pages):
bun run ci:buildEl sistema genera automáticamente imágenes Open Graph (OG) para compartir en redes sociales usando Satori + resvg.
- Automático con commits: Las imágenes se generan automáticamente al hacer commit gracias al pre-commit hook
- Manual: Ejecuta
bun run generate-ogpara generar solo las imágenes nuevas o modificadas - Detección inteligente: Solo regenera imágenes cuando cambia el título o descripción del post
Cada post debe incluir en su frontmatter:
+++
title = "Título del Post"
description = "Descripción para redes sociales"
+++- Imágenes de 1200x630px con fondo negro
- Fuente Atkinson Hyperlegible (incluida localmente)
- No requiere Chrome/Chromium - Satori genera SVG, resvg convierte a PNG
- Sistema de caché inteligente (
.og-cache.json) - Generación ultrarrápida (~1s por imagen)
- Se agregan automáticamente al frontmatter como
cover.image
Las plantillas de las imágenes OG se pueden personalizar editando:
- La lógica de generación en
scripts/generate-og-images.ts - Las fuentes en
scripts/fonts/
El blog se despliega automáticamente en Cloudflare Pages cuando se hace push a la rama main.
- Build command:
bun install && bun run ci:build - Build output directory:
public - Variable:
SKIP_DEPENDENCY_INSTALL=true
- Bun ejecuta TypeScript directamente (sin paso de compilación
tsc) - Satori genera imágenes sin necesidad de navegador (~1.5s install vs ~13s con Puppeteer)
- El archivo
.og-cache.jsonse commitea al repo para evitar regenerar imágenes existentes - Solo 29 paquetes vs 104 con Puppeteer
MIT