<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>notes</title><description>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.</description><link>https://example.com/</link><item><title>Sitios estáticos, revisitados</title><link>https://example.com/es/blog/static-sites-revisited/</link><guid isPermaLink="true">https://example.com/es/blog/static-sites-revisited/</guid><description>Por qué volví a llevar este blog a un build completamente estático después de dos años persiguiendo funcionalidades renderizadas en servidor.</description><pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Notas sobre una fuga de memoria de tres días</title><link>https://example.com/es/blog/three-day-memory-leak/</link><guid isPermaLink="true">https://example.com/es/blog/three-day-memory-leak/</guid><description>Una fuga lenta en un worker de Node, las suposiciones equivocadas que la escondieron, y lo que finalmente la encontró.</description><pubDate>Wed, 29 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Un año escribiendo en público</title><link>https://example.com/es/blog/year-of-writing-in-public/</link><guid isPermaLink="true">https://example.com/es/blog/year-of-writing-in-public/</guid><description>Lo que cambió después de empezar a publicar borradores en lugar de esperar a tener pensamientos terminados.</description><pubDate>Tue, 02 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Reconstruyendo mi configuración de terminal, lentamente</title><link>https://example.com/es/blog/rebuilding-terminal-setup/</link><guid isPermaLink="true">https://example.com/es/blog/rebuilding-terminal-setup/</guid><description>Cambios pequeños y deliberados a un flujo de trabajo que uso doce horas al día.</description><pubDate>Sat, 18 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Las herramientas pequeñas que realmente seguí usando</title><link>https://example.com/es/blog/small-tools-that-stuck/</link><guid isPermaLink="true">https://example.com/es/blog/small-tools-that-stuck/</guid><description>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.</description><pubDate>Sun, 18 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Por qué cada entrada necesitaba al menos una etiqueta</title><link>https://example.com/es/blog/why-every-post-needs-a-tag/</link><guid isPermaLink="true">https://example.com/es/blog/why-every-post-needs-a-tag/</guid><description>Reordenar las páginas de etiquetas me enseñó más sobre la forma real del sitio que escribir las entradas.</description><pubDate>Sun, 21 Dec 2025 00:00:00 GMT</pubDate></item><item><title>Un script de cincuenta líneas que atrapa mis enlaces muertos</title><link>https://example.com/es/blog/dead-link-checker-script/</link><guid isPermaLink="true">https://example.com/es/blog/dead-link-checker-script/</guid><description>Un pequeño script de Node que recorre cada entrada y señala enlaces rotos antes de que un lector los encuentre primero.</description><pubDate>Sun, 16 Nov 2025 00:00:00 GMT</pubDate></item><item><title>Persiguiendo un layout shift que solo aparecía en mobile</title><link>https://example.com/es/blog/mobile-only-layout-shift/</link><guid isPermaLink="true">https://example.com/es/blog/mobile-only-layout-shift/</guid><description>Una regresión de CLS que nunca aparecía en desktop, rastreada hasta un font fallback con métricas distintas.</description><pubDate>Sun, 26 Oct 2025 00:00:00 GMT</pubDate></item><item><title>Una tabla de contenidos sin un framework</title><link>https://example.com/es/blog/toc-without-a-framework/</link><guid isPermaLink="true">https://example.com/es/blog/toc-without-a-framework/</guid><description>Cuarenta líneas de JS vanilla y un IntersectionObserver en lugar de recurrir a un plugin.</description><pubDate>Sun, 14 Sep 2025 00:00:00 GMT</pubDate></item><item><title>Probando worker threads para un trabajo que no los necesitaba</title><link>https://example.com/es/blog/worker-threads-i-didnt-need/</link><guid isPermaLink="true">https://example.com/es/blog/worker-threads-i-didnt-need/</guid><description>Un script de build se volvió 40% más lento después de que lo &apos;optimicé&apos; con worker threads, y lo que eso me enseñó sobre perfilar primero.</description><pubDate>Sun, 10 Aug 2025 00:00:00 GMT</pubDate></item><item><title>Decidiendo no agregar analíticas, otra vez</title><link>https://example.com/es/blog/not-adding-analytics-again/</link><guid isPermaLink="true">https://example.com/es/blog/not-adding-analytics-again/</guid><description>Cada pocos meses considero agregar un contador de visitas, y cada pocos meses recuerdo por qué no lo hago.</description><pubDate>Sun, 20 Jul 2025 00:00:00 GMT</pubDate></item><item><title>Haciendo de Lighthouse parte del build, no una idea de último momento</title><link>https://example.com/es/blog/lighthouse-in-the-build/</link><guid isPermaLink="true">https://example.com/es/blog/lighthouse-in-the-build/</guid><description>Conectando Lighthouse CI al pipeline para que una regresión de rendimiento haga fallar el build en lugar de notarse después.</description><pubDate>Sun, 29 Jun 2025 00:00:00 GMT</pubDate></item><item><title>Demasiados scripts de npm</title><link>https://example.com/es/blog/too-many-npm-scripts/</link><guid isPermaLink="true">https://example.com/es/blog/too-many-npm-scripts/</guid><description>Cómo un package.json con treinta scripts terminó reducido a cinco que realmente puedo recordar.</description><pubDate>Sun, 08 Jun 2025 00:00:00 GMT</pubDate></item><item><title>Auditando cada animación por reduced motion</title><link>https://example.com/es/blog/reduced-motion-audit/</link><guid isPermaLink="true">https://example.com/es/blog/reduced-motion-audit/</guid><description>Revisando cada transición del sitio una por una para verificar que de verdad respeta prefers-reduced-motion.</description><pubDate>Sat, 17 May 2025 00:00:00 GMT</pubDate></item><item><title>Las container queries hicieron desaparecer un bug de layout</title><link>https://example.com/es/blog/container-queries-fixed-it/</link><guid isPermaLink="true">https://example.com/es/blog/container-queries-fixed-it/</guid><description>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.</description><pubDate>Sat, 05 Apr 2025 00:00:00 GMT</pubDate></item><item><title>El build falló y se lo agradecí</title><link>https://example.com/es/blog/build-failed-i-was-grateful/</link><guid isPermaLink="true">https://example.com/es/blog/build-failed-i-was-grateful/</guid><description>Un esquema de Zod atrapando una fecha de frontmatter mal formada antes de que llegara a un lector.</description><pubDate>Sat, 22 Mar 2025 00:00:00 GMT</pubDate></item><item><title>Cabeceras de caché, finalmente explicadas a mí mismo</title><link>https://example.com/es/blog/cache-headers-explained/</link><guid isPermaLink="true">https://example.com/es/blog/cache-headers-explained/</guid><description>Escribir reglas de cache-control para un sitio estático me obligó a entender de verdad qué hacen.</description><pubDate>Thu, 27 Feb 2025 00:00:00 GMT</pubDate></item><item><title>Git bisect lo encontró en cuatro minutos</title><link>https://example.com/es/blog/git-bisect-four-minutes/</link><guid isPermaLink="true">https://example.com/es/blog/git-bisect-four-minutes/</guid><description>Una regresión que llevaba una semana adivinando, resuelta al finalmente confiar en la herramienta hecha exactamente para esto.</description><pubDate>Sat, 08 Feb 2025 00:00:00 GMT</pubDate></item><item><title>Por qué dejé de cargar fuentes desde Google</title><link>https://example.com/es/blog/self-hosting-fonts/</link><guid isPermaLink="true">https://example.com/es/blog/self-hosting-fonts/</guid><description>Auto-alojar dos familias de fuentes eliminó una petición que bloqueaba el render y una buena parte de layout shift en una tarde.</description><pubDate>Sat, 11 Jan 2025 00:00:00 GMT</pubDate></item><item><title>Un fin de semana dentro de View Transitions</title><link>https://example.com/es/blog/inside-view-transitions/</link><guid isPermaLink="true">https://example.com/es/blog/inside-view-transitions/</guid><description>Lo que aprendí cayendo en el pozo de astro:transitions tratando de que un solo cross-fade se sintiera bien.</description><pubDate>Sat, 14 Dec 2024 00:00:00 GMT</pubDate></item><item><title>El test que solo fallaba en CI</title><link>https://example.com/es/blog/flaky-test-only-on-ci/</link><guid isPermaLink="true">https://example.com/es/blog/flaky-test-only-on-ci/</guid><description>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.</description><pubDate>Sat, 09 Nov 2024 00:00:00 GMT</pubDate></item><item><title>Haciendo bien el feed de RSS</title><link>https://example.com/es/blog/getting-the-rss-feed-right/</link><guid isPermaLink="true">https://example.com/es/blog/getting-the-rss-feed-right/</guid><description>Tres bugs pequeños en un feed del que nadie se quejó, encontrados solo porque finalmente lo abrí en un lector de verdad.</description><pubDate>Sat, 19 Oct 2024 00:00:00 GMT</pubDate></item><item><title>Escribiendo mi primera suite de tests de verdad</title><link>https://example.com/es/blog/first-real-test-suite/</link><guid isPermaLink="true">https://example.com/es/blog/first-real-test-suite/</guid><description>Cómo una verificación de dos líneas de &apos;la página carga&apos; se convirtió en una suite de Playwright en la que realmente confío.</description><pubDate>Sat, 28 Sep 2024 00:00:00 GMT</pubDate></item><item><title>Dejando que Astro controle mis imágenes</title><link>https://example.com/es/blog/astro-image-pipeline/</link><guid isPermaLink="true">https://example.com/es/blog/astro-image-pipeline/</guid><description>Eliminando un script de redimensionado de imágenes hecho a mano en favor del componente `&lt;Image /&gt;` de Astro.</description><pubDate>Thu, 05 Sep 2024 00:00:00 GMT</pubDate></item></channel></rss>