Sitios estáticos, revisitados
Por qué volví a llevar este blog a un build completamente estático después de dos años persiguiendo funcionalidades renderizadas en servidor.
Un registro un poco demasiado honesto de lo que estoy construyendo, por qué está tardando más de lo previsto, y qué aprendí de todos modos.
Por qué volví a llevar este blog a un build completamente estático después de dos años persiguiendo funcionalidades renderizadas en servidor.
Una fuga lenta en un worker de Node, las suposiciones equivocadas que la escondieron, y lo que finalmente la encontró.
Lo que cambió después de empezar a publicar borradores en lugar de esperar a tener pensamientos terminados.
Cambios pequeños y deliberados a un flujo de trabajo que uso doce horas al día.
Una mirada de fin de año a qué proyectos de fin de semana sobrevivieron el contacto con el uso diario, y cuáles murieron en silencio.
Reordenar las páginas de etiquetas me enseñó más sobre la forma real del sitio que escribir las entradas.
Un pequeño script de Node que recorre cada entrada y señala enlaces rotos antes de que un lector los encuentre primero.
Una regresión de CLS que nunca aparecía en desktop, rastreada hasta un font fallback con métricas distintas.
Cuarenta líneas de JS vanilla y un IntersectionObserver en lugar de recurrir a un plugin.
Un script de build se volvió 40% más lento después de que lo 'optimicé' con worker threads, y lo que eso me enseñó sobre perfilar primero.
Cada pocos meses considero agregar un contador de visitas, y cada pocos meses recuerdo por qué no lo hago.
Conectando Lighthouse CI al pipeline para que una regresión de rendimiento haga fallar el build en lugar de notarse después.
Cómo un package.json con treinta scripts terminó reducido a cinco que realmente puedo recordar.
Revisando cada transición del sitio una por una para verificar que de verdad respeta prefers-reduced-motion.
Cambiar un hack de media query por una container query resolvió un bug de layout en las tarjetas que venía parchando desde hacía meses.
Un esquema de Zod atrapando una fecha de frontmatter mal formada antes de que llegara a un lector.
Escribir reglas de cache-control para un sitio estático me obligó a entender de verdad qué hacen.
Una regresión que llevaba una semana adivinando, resuelta al finalmente confiar en la herramienta hecha exactamente para esto.
Auto-alojar dos familias de fuentes eliminó una petición que bloqueaba el render y una buena parte de layout shift en una tarde.
Lo que aprendí cayendo en el pozo de astro:transitions tratando de que un solo cross-fade se sintiera bien.
Un test de accesibilidad inestable, una condición de carrera en una transición de fade, y el arreglo que fue de un solo atributo.
Tres bugs pequeños en un feed del que nadie se quejó, encontrados solo porque finalmente lo abrí en un lector de verdad.
Cómo una verificación de dos líneas de 'la página carga' se convirtió en una suite de Playwright en la que realmente confío.
Eliminando un script de redimensionado de imágenes hecho a mano en favor del componente `<Image />` de Astro.