Skip to content
S
ES/EN
← Volver a todos los proyectos
20261 min de lecturaDesarrollador

Este sitio: sabado.dev

Un blog y portfolio personal bilingüe construido con Astro, centrado en el rendimiento, una gran experiencia de lectura y cero JavaScript en runtime.

Gradiente naranja-morado con el nombre sabado.dev

Problema

Quería un sitio personal que practicara lo que predico: HTML estático primero, rápido, ligero, agradable de leer y bilingüe. Muchos blogs y sitios personales abusan de librerias externas, cargan megas de JavaScript para un puñado de páginas, y la mayoría de los sitios personales tratan la i18n como algo secundario utilzando esquemas de URL incómodos.

La Solución

  • Construí este sitio enteramente con Astro en modo de estático — cada página es un archivo HTML pre-renderizado, así que no hay framework en el cliente. El único codigo JavaScript del lado del cliente son pequeñas islas que usan para la búsqueda, temas, copiado al portapapeles y galerías de imagenes.
  • Implementé i18n como caracterisitca principal: inglés y español comparten un único esquema de contenido, se comparan por fecha/orden para el selector de idioma y utilizo slugs traducidos para que las URLs suenen naturales en ambos idiomas (/blog/rest-to-grpc/es/blog/rest-a-grpc).
  • Añadí las funciones que necesita un blog: tiempo de lectura, un sistema de etiquetas con páginas de etiquetas por idioma, un feed RSS por idioma, búsqueda de texto completo con Pagefind y transiciones de vista suaves entre páginas y posts.
  • Agrego solo los iconos que voy a utilizar en SVG inline en lugar de añadir una dependencia de iconos, manteniendo el bundle ligero.

Resultado

  • Puntuaciones sobresaliente de Lighthouse, sin framework en el cliente ni scripts de rastreo.
  • El contenido se escribe una vez por idioma en Markdown y se conecta a través de una colección de contenido tipada, así que añadir un post o un proyecto es simple y solo edito un único archivo.
  • Desplegado directamente al VPS: un workflow de GitHub Actions construye con Bun y sincroniza la salida estática con rsync detrás del web server.

Contacto

Trabajemos juntos

¿Tienes un proyecto en mente? Escríbeme y te responderé pronto.