<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Blog de José María Santos</title>
    <link>https://josemariasantos.com/blog/</link>
    <description>Frontend, arquitectura, testing, IA y desarrollo de producto.</description>
    <language>es-ES</language>
    <item>
      <title>Cómo medir si trabajar con agentes mejora realmente el desarrollo</title>
      <link>https://josemariasantos.com/blog/medir-impacto-agentes-desarrollo/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/medir-impacto-agentes-desarrollo/</guid>
      <description>Qué métricas ayudan a evaluar el efecto de los agentes en el flujo de entrega y por qué contar líneas, prompts o skills puede incentivar el comportamiento equivocado.</description>
      <pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>¿Cuándo no delegar? Ajusta la autonomía al riesgo del cambio</title>
      <link>https://josemariasantos.com/blog/autonomia-agentes-riesgo-reversibilidad/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/autonomia-agentes-riesgo-reversibilidad/</guid>
      <description>Un marco para decidir cuánto trabajo puede delegarse según la reversibilidad, el impacto potencial y la evidencia disponible.</description>
      <pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Human in the loop: prepara los pasos que un agente no debe ejecutar solo</title>
      <link>https://josemariasantos.com/blog/human-in-the-loop-wizard-pasos-sensibles/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/human-in-the-loop-wizard-pasos-sensibles/</guid>
      <description>Cómo diseñar flujos donde el agente prepara y verifica el trabajo, mientras una persona realiza acciones sensibles, externas o difíciles de revertir.</description>
      <pubDate>Thu, 22 Oct 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Cómo crear tu primera skill propia para un agente</title>
      <link>https://josemariasantos.com/blog/crear-primera-skill-propia-agentes/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/crear-primera-skill-propia-agentes/</guid>
      <description>Un método para convertir una instrucción repetida en una skill pequeña, activable y comprobable con tareas reales del proyecto.</description>
      <pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>De las skills de Matt a las skills de tu equipo</title>
      <link>https://josemariasantos.com/blog/adaptar-skills-equipo-friccion-repetida/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/adaptar-skills-equipo-friccion-repetida/</guid>
      <description>Cuándo adaptar una skill externa, cómo conservar su intención y dónde colocar cada regla para construir un sistema de trabajo propio.</description>
      <pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Escribir código ya es barato. Mantenerlo sigue siendo carísimo.</title>
      <link>https://josemariasantos.com/blog/ia-escribir-codigo-barato-entenderlo-caro/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/ia-escribir-codigo-barato-entenderlo-caro/</guid>
      <description>La IA acelera la producción de código, pero no reemplaza el criterio necesario para integrarlo, validarlo y mantenerlo en un producto real.</description>
      <pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Research técnico: investiga antes de convertir una opinión en arquitectura</title>
      <link>https://josemariasantos.com/blog/research-fuentes-primarias-arquitectura/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/research-fuentes-primarias-arquitectura/</guid>
      <description>Un flujo para investigar decisiones técnicas con fuentes primarias, conservar los hallazgos y llevar la evidencia a una decisión o ADR.</description>
      <pubDate>Mon, 19 Oct 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Tu repositorio también forma parte del contexto del agente</title>
      <link>https://josemariasantos.com/blog/repositorio-contexto-agente/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/repositorio-contexto-agente/</guid>
      <description>Cómo la navegación, el lenguaje compartido, la arquitectura, las pruebas y el tooling determinan cuánto puede hacer un agente con seguridad.</description>
      <pubDate>Sun, 18 Oct 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Retro para agentes: mejora el entorno, no solo el código</title>
      <link>https://josemariasantos.com/blog/retro-agentes-mejorar-entorno-ingenieria/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/retro-agentes-mejorar-entorno-ingenieria/</guid>
      <description>Cómo convertir errores repetidos de agentes en mejoras de instrucciones, tooling, documentación y estándares sin inflar AGENTS.md.</description>
      <pubDate>Sat, 17 Oct 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Wayfinder: decide el camino antes de abordar una iniciativa grande</title>
      <link>https://josemariasantos.com/blog/wayfinder-iniciativas-grandes-decisiones/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/wayfinder-iniciativas-grandes-decisiones/</guid>
      <description>Cómo usar Wayfinder para convertir una iniciativa incierta en un mapa compartido de decisiones y avanzar hasta que el trabajo esté listo para especificarse.</description>
      <pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Arquitectura para agentes: reduce la fricción antes de delegar más</title>
      <link>https://josemariasantos.com/blog/arquitectura-agentes-reducir-friccion-codebase/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/arquitectura-agentes-reducir-friccion-codebase/</guid>
      <description>Por qué los agentes heredan los costes de una codebase difícil de navegar y cómo mejorar seams, interfaces y locality antes de aumentar su autonomía.</description>
      <pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Bugs con agentes: reproducir antes de teorizar</title>
      <link>https://josemariasantos.com/blog/bugs-agentes-reproducir-antes-teorizar/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/bugs-agentes-reproducir-antes-teorizar/</guid>
      <description>Un proceso para depurar con agentes a partir de una reproducción determinista, hipótesis comprobables e instrumentación útil.</description>
      <pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Documentación viva con Astro y Starlight: menos conocimiento tribal, más contexto compartido</title>
      <link>https://josemariasantos.com/blog/documentacion-viva-astro-starlight-equipo/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/documentacion-viva-astro-starlight-equipo/</guid>
      <description>Cómo convertir la documentación de arquitectura, operaciones y contratos en una herramienta de trabajo para el equipo, usando Astro y Starlight sin escribir por escribir.</description>
      <pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>TDD para agentes: el feedback fiable acelera más que generar código</title>
      <link>https://josemariasantos.com/blog/tdd-agentes-feedback-loop-fiable/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/tdd-agentes-feedback-loop-fiable/</guid>
      <description>Cómo aplicar ciclos red-green a tareas de agentes, elegir seams observables y evitar tests frágiles que ralentizan la validación del software.</description>
      <pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Specs y tickets para agentes: cuándo ayudan y cuándo sobran</title>
      <link>https://josemariasantos.com/blog/specs-tickets-cuando-aportan-valor/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/specs-tickets-cuando-aportan-valor/</guid>
      <description>Cuándo convertir una conversación en una especificación, cómo dividir el trabajo en tickets verticales y por qué cada tarea debe poder ejecutarse con contexto fresco.</description>
      <pubDate>Mon, 12 Oct 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Antes de pedir una feature, aclara el problema con tu agente</title>
      <link>https://josemariasantos.com/blog/entender-problema-grill-with-docs/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/entender-problema-grill-with-docs/</guid>
      <description>Cómo usar grill-with-docs para explorar requisitos, distinguir decisiones conversables de preguntas que necesitan un prototipo y dejar el contexto importante por escrito.</description>
      <pubDate>Sun, 11 Oct 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Matt Pocock Skills: cómo empezar sin cambiar todo tu proceso</title>
      <link>https://josemariasantos.com/blog/introducir-matt-pocock-skills-flujo-desarrollo/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/introducir-matt-pocock-skills-flujo-desarrollo/</guid>
      <description>Qué ofrece el repositorio mattpocock/skills, cómo elegir entre un plugin gestionado y archivos editables, y una forma gradual de incorporarlo a un proyecto real.</description>
      <pubDate>Sat, 10 Oct 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Checklist para entender la salud real de un equipo de producto</title>
      <link>https://josemariasantos.com/blog/checklist-salud-equipo-producto/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/checklist-salud-equipo-producto/</guid>
      <description>Una guía para observar cómo un equipo entiende el producto, toma decisiones, entrega valor y hace visibles sus problemas sin reducirlo a sus especialidades técnicas.</description>
      <pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Runbooks: cómo responder a incidencias sin depender de la memoria del equipo</title>
      <link>https://josemariasantos.com/blog/runbooks-responder-incidencias-equipo/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/runbooks-responder-incidencias-equipo/</guid>
      <description>Qué debe contener un runbook útil, cómo diseñarlo para actuar con seguridad ante una incidencia y cómo convertir cada problema real en aprendizaje compartido.</description>
      <pubDate>Tue, 29 Sep 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Arquitectura multi-app con pnpm: un monorepo que también da contexto a la IA</title>
      <link>https://josemariasantos.com/blog/arquitectura-multi-app-monorepo-pnpm-ia/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/arquitectura-multi-app-monorepo-pnpm-ia/</guid>
      <description>Cómo organizar frontend, API, backoffice y documentación en un monorepo con pnpm para compartir cambios con seguridad y dar a la IA el contexto completo de cada funcionalidad.</description>
      <pubDate>Tue, 22 Sep 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Tus tests pasan, pero ¿son buenos? Cómo aplicar los principios FIRST</title>
      <link>https://josemariasantos.com/blog/principios-first-testing-calidad-suite/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/principios-first-testing-calidad-suite/</guid>
      <description>Qué son los principios FIRST en testing y cómo usarlos para evaluar una suite de Vue con Vitest, Testing Library, MSW y Playwright.</description>
      <pubDate>Tue, 15 Sep 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Jobs durables con Trigger.dev: infraestructura y reglas de negocio</title>
      <link>https://josemariasantos.com/blog/trigger-dev-jobs-durables-reglas-negocio/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/trigger-dev-jobs-durables-reglas-negocio/</guid>
      <description>Cómo separar el trabajo pesado del ciclo HTTP con Trigger.dev y proteger el dominio con estados persistidos, idempotencia, recuperación y observabilidad.</description>
      <pubDate>Tue, 08 Sep 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Un equipo sano no es un equipo sin problemas</title>
      <link>https://josemariasantos.com/blog/equipo-sano-no-es-equipo-sin-problemas/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/equipo-sano-no-es-equipo-sin-problemas/</guid>
      <description>Cómo construir una forma de trabajo en la que el equipo detecta problemas, participa en las decisiones y convierte las retrospectivas en mejoras concretas.</description>
      <pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Cómo optimizar imágenes con Cloudinary sin complicar el frontend</title>
      <link>https://josemariasantos.com/blog/cloudinary-optimizar-imagenes-frontend/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/cloudinary-optimizar-imagenes-frontend/</guid>
      <description>Cómo usar Cloudinary para servir imágenes adaptadas al dispositivo con formatos automáticos, recortes, srcset y fallbacks sin multiplicar los assets del proyecto.</description>
      <pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Cuándo cerrar un proyecto: distinguir entre una web, un servicio y un producto</title>
      <link>https://josemariasantos.com/blog/cuando-cerrar-proyecto-web-servicio-producto/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/cuando-cerrar-proyecto-web-servicio-producto/</guid>
      <description>Cerrar un proyecto no siempre significa fracasar. Una reflexión práctica sobre cómo valorar lo aprendido, el uso real y el coste de oportunidad antes de decidir si seguir invirtiendo en él.</description>
      <pubDate>Tue, 18 Aug 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Knip marca código como unused: por qué no deberías borrarlo sin validar</title>
      <link>https://josemariasantos.com/blog/knip-unused-no-significa-codigo-muerto/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/knip-unused-no-significa-codigo-muerto/</guid>
      <description>Cómo interpretar los resultados de Knip en proyectos frontend, reducir falsos positivos y eliminar código muerto de forma segura.</description>
      <pubDate>Tue, 11 Aug 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>10 errores comunes al testear aplicaciones Vue con Vitest (y cómo evitarlos)</title>
      <link>https://josemariasantos.com/blog/errores-testing-vue-vitest/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/errores-testing-vue-vitest/</guid>
      <description>Diez problemas frecuentes en suites Vue con Vitest, Testing Library y MSW, con alternativas prácticas para escribir pruebas más fiables y mantenibles.</description>
      <pubDate>Fri, 07 Aug 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Fixtures, factories y handlers de MSW: organiza escenarios de test escalables</title>
      <link>https://josemariasantos.com/blog/fixtures-factories-handlers-msw-tests/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/fixtures-factories-handlers-msw-tests/</guid>
      <description>Una estructura práctica para separar datos de prueba, variaciones y respuestas HTTP con Vitest, MSW y TypeScript en aplicaciones Vue 3.</description>
      <pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Testing Library en Vue: tests que sobreviven a los refactors</title>
      <link>https://josemariasantos.com/blog/testing-library-vue-tests-refactors/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/testing-library-vue-tests-refactors/</guid>
      <description>Cómo escribir tests de componentes Vue 3 centrados en comportamiento observable, consultas accesibles e interacciones de usuario para refactorizar con confianza.</description>
      <pubDate>Fri, 10 Jul 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Mi ciclo de desarrollo con IA: de una idea al producto con ChatGPT, Linear, Codex y agentes</title>
      <link>https://josemariasantos.com/blog/ciclo-desarrollo-ia-chatgpt-codex-agentes/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/ciclo-desarrollo-ia-chatgpt-codex-agentes/</guid>
      <description>Así utilizo ChatGPT, Linear, Codex y agentes especializados para convertir ideas de mis side projects en funcionalidades planificadas, implementadas, probadas y revisadas visualmente.</description>
      <pubDate>Fri, 26 Jun 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>FormKit: cómo llevar una plataforma de microfrontends con Vue 3 a un nivel de entrega verificable</title>
      <link>https://josemariasantos.com/blog/formkit-microfrontends-vue-module-federation/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/formkit-microfrontends-vue-module-federation/</guid>
      <description>Caso práctico de una plataforma de formularios con Vite Module Federation: configuración por entorno, pruebas con MSW y quality gates para cuatro aplicaciones.</description>
      <pubDate>Fri, 12 Jun 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Awesome Copilot MCP: encuentra y aplica personalizaciones para GitHub Copilot desde el editor</title>
      <link>https://josemariasantos.com/blog/awesome-copilot-mcp-personaliza-github-copilot/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/awesome-copilot-mcp-personaliza-github-copilot/</guid>
      <description>Qué aporta Awesome Copilot MCP, cómo configurarlo en VS Code y cómo usar sus instrucciones, prompts y agentes para mejorar revisiones, tests y documentación.</description>
      <pubDate>Fri, 29 May 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Arquitectura de un ecosistema de recomendación cinematográfica: app, contenido e IA</title>
      <link>https://josemariasantos.com/blog/arquitectura-ecosistema-recomendacion-cinematografica/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/arquitectura-ecosistema-recomendacion-cinematografica/</guid>
      <description>Cómo separar una aplicación de recomendaciones y una plataforma editorial automatizada, compartir servicios y usar IA con controles técnicos y revisión humana.</description>
      <pubDate>Fri, 15 May 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>MSW en Vue 3: mocks de API fiables para desarrollo, Vitest y Storybook</title>
      <link>https://josemariasantos.com/blog/msw-vue-mocks-api-desarrollo-tests/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/msw-vue-mocks-api-desarrollo-tests/</guid>
      <description>Cómo centralizar mocks HTTP con Mock Service Worker en una aplicación Vue 3 para reutilizarlos en desarrollo local, tests con Vitest y Storybook sin duplicar contratos.</description>
      <pubDate>Fri, 01 May 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Tests rápidos con Vitest: cómo aplicar la F de FIRST sin perder confianza</title>
      <link>https://josemariasantos.com/blog/tests-rapidos-vitest-principios-first/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/tests-rapidos-vitest-principios-first/</guid>
      <description>Seis decisiones prácticas para acelerar tests de Vue con Vitest y Testing Library, evitando optimizaciones que vuelven la suite menos fiable.</description>
      <pubDate>Fri, 17 Apr 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Debugging en producción desde VSCode: analiza APIs problemáticas con Sentry MCP</title>
      <link>https://josemariasantos.com/blog/debugging-produccion-vscode-sentry-mcp/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/debugging-produccion-vscode-sentry-mcp/</guid>
      <description>Cómo conectar Sentry MCP en VSCode para resumir errores, detectar APIs con mayor impacto y priorizar correcciones sin salir del editor.</description>
      <pubDate>Fri, 03 Apr 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Arquitectura de widgets autocontenidos en Blazor: principios y flujo de trabajo</title>
      <link>https://josemariasantos.com/blog/widgets-autocontenidos-blazor/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/widgets-autocontenidos-blazor/</guid>
      <description>Cómo diseñar componentes Blazor reutilizables que encapsulan lógica de negocio, llamadas API y gestión de estados, usando inyección de dependencias y separación de responsabilidades.</description>
      <pubDate>Fri, 20 Mar 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Alert, Banner o Snackbar: cuándo usar cada componente de notificación</title>
      <link>https://josemariasantos.com/blog/alert-banner-snackbar-decision/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/alert-banner-snackbar-decision/</guid>
      <description>Guía de decisión rápida para elegir el componente correcto de notificación en tu aplicación web, basada en Material Design y experiencia real.</description>
      <pubDate>Fri, 06 Mar 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Cómo desplegar Storybook en producción para proyectos Vue 3 + Vuetify</title>
      <link>https://josemariasantos.com/blog/storybook-produccion-vue-vuetify/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/storybook-produccion-vue-vuetify/</guid>
      <description>Guía paso a paso para configurar, construir y desplegar Storybook en una Azure Static Web App, integrado con tu pipeline de CI/CD.</description>
      <pubDate>Fri, 20 Feb 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Diseño responsive con enfoque Mobile First en Vue 3 + TypeScript</title>
      <link>https://josemariasantos.com/blog/diseno-responsive-mobile-first-vue/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/diseno-responsive-mobile-first-vue/</guid>
      <description>Guía práctica para crear componentes responsive con enfoque Mobile First usando Vue 3, TypeScript y Composition API, con referencias a herramientas de desarrollo.</description>
      <pubDate>Fri, 06 Feb 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>SonarQube vs Snyk vs Dependency-Track: cómo elegir tu stack de análisis de código</title>
      <link>https://josemariasantos.com/blog/sonarqube-vs-snyk-vs-dependency-track/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/sonarqube-vs-snyk-vs-dependency-track/</guid>
      <description>Evaluación comparativa de herramientas de análisis de calidad y seguridad de código para proyectos frontend, con precios, pros/contras y criterios de selección.</description>
      <pubDate>Fri, 23 Jan 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Guía completa de internacionalización (i18n) para aplicaciones web y APIs</title>
      <link>https://josemariasantos.com/blog/guia-internacionalizacion-i18n/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/guia-internacionalizacion-i18n/</guid>
      <description>Todo lo que debes considerar al internacionalizar una aplicación web empresarial: formatos numéricos, monedas, fechas, unidades de medida, direcciones y parámetros de localización en APIs.</description>
      <pubDate>Fri, 09 Jan 2026 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>De librería de componentes propia a Vuetify directo: cómo y por qué simplificamos nuestro stack</title>
      <link>https://josemariasantos.com/blog/de-libreria-propia-a-vuetify-directo/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/de-libreria-propia-a-vuetify-directo/</guid>
      <description>Lecciones aprendidas al deprecar una librería de componentes wrapper sobre Vuetify en favor de usar Vuetify directamente con una configuración centralizada.</description>
      <pubDate>Fri, 26 Dec 2025 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Qué es un ADR y por qué tu equipo debería usarlos</title>
      <link>https://josemariasantos.com/blog/que-es-un-adr-arquitectura/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/que-es-un-adr-arquitectura/</guid>
      <description>Guía práctica sobre Architecture Decision Records (ADR): qué son, cuándo crearlos, qué deben contener, y cómo implementar el proceso en tu equipo de desarrollo.</description>
      <pubDate>Fri, 12 Dec 2025 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Auditoría de deuda técnica en un proyecto frontend Vue: caso real con Sentry, knip y eslint</title>
      <link>https://josemariasantos.com/blog/auditoria-deuda-tecnica-frontend/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/auditoria-deuda-tecnica-frontend/</guid>
      <description>Cómo realizar una auditoría completa de deuda técnica en un proyecto frontend con Vue, analizando errores de producción (Sentry), tipado débil, código muerto y dependencias desactualizadas.</description>
      <pubDate>Fri, 28 Nov 2025 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Diagnóstico y plan de acción: cuando tu suite de tests tarda 15 minutos</title>
      <link>https://josemariasantos.com/blog/diagnostico-lentitud-suite-tests/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/diagnostico-lentitud-suite-tests/</guid>
      <description>Caso real de diagnóstico de una suite de vitest que tardaba 15 minutos, con identificación de 7 causas raíz y un plan de acción en 3 fases para reducirla a menos de 5 minutos.</description>
      <pubDate>Fri, 14 Nov 2025 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Cómo montar SonarQube local con Docker para proyectos Vue/TypeScript</title>
      <link>https://josemariasantos.com/blog/sonarqube-local-docker-vue-typescript/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/sonarqube-local-docker-vue-typescript/</guid>
      <description>Guía paso a paso para levantar SonarQube con Docker, configurar proyectos Vue con TypeScript, integrar cobertura de tests con vitest+lcov, y complementar con Dependency-Track.</description>
      <pubDate>Fri, 31 Oct 2025 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Accesibilidad web (a11y): herramientas, realidad y decisiones pragmáticas</title>
      <link>https://josemariasantos.com/blog/accesibilidad-web-herramientas-realidad/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/accesibilidad-web-herramientas-realidad/</guid>
      <description>Evaluación práctica de herramientas de accesibilidad web (Axe Core, Pa11y, WAVE, Playwright+AXE) con conclusiones honestas sobre los desafíos reales de cumplir WCAG al 100%.</description>
      <pubDate>Fri, 17 Oct 2025 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>PrimeVue vs Vuetify vs AG Grid: comparativa real para tablas de datos en Vue 3</title>
      <link>https://josemariasantos.com/blog/primevue-vs-vuetify-vs-aggrid-tablas/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/primevue-vs-vuetify-vs-aggrid-tablas/</guid>
      <description>Una evaluación exhaustiva de las tres principales librerías de tablas para Vue 3, basada en una implementación real sobre un proyecto en producción con más de 40 criterios funcionales.</description>
      <pubDate>Fri, 03 Oct 2025 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Tests E2E con IA: investigación práctica con Midscene.js y Playwright</title>
      <link>https://josemariasantos.com/blog/tests-e2e-con-ia-playwright/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/tests-e2e-con-ia-playwright/</guid>
      <description>Cómo exploramos el uso de inteligencia artificial para generar y ejecutar tests end-to-end, comparando enfoques YAML vs Playwright, con análisis de costes reales.</description>
      <pubDate>Fri, 19 Sep 2025 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Estandarización de tablas de datos complejas en aplicaciones empresariales</title>
      <link>https://josemariasantos.com/blog/estandarizacion-tablas-datos-complejas/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/estandarizacion-tablas-datos-complejas/</guid>
      <description>Cómo definir criterios mínimos obligatorios para tablas de datos de alta funcionalidad, agnósticos a la tecnología, cuando tu plataforma tiene múltiples frameworks frontend.</description>
      <pubDate>Fri, 05 Sep 2025 00:00:00 GMT</pubDate>
    </item>
<item>
      <title>Cuándo y cómo usar iframes de forma segura en aplicaciones web modernas</title>
      <link>https://josemariasantos.com/blog/cuando-usar-iframes-seguridad/</link>
      <guid isPermaLink="true">https://josemariasantos.com/blog/cuando-usar-iframes-seguridad/</guid>
      <description>Una guía práctica de decisión arquitectónica sobre la integración de servicios de terceros mediante iframes, con medidas de seguridad, alternativas evaluadas y buenas prácticas.</description>
      <pubDate>Fri, 22 Aug 2025 00:00:00 GMT</pubDate>
    </item>
  </channel>
</rss>