<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://josemanuelortega.me</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me" />
<lastmod>2026-05-13T06:12:00.000Z</lastmod>
<changefreq>daily</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me" />
<lastmod>2026-05-13T06:12:00.000Z</lastmod>
<changefreq>daily</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://josemanuelortega.me/biblioteca</loc>
<lastmod>2026-05-13T06:12:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://josemanuelortega.me/estanteria</loc>
<lastmod>2026-05-13T06:12:00.000Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://josemanuelortega.me/newsletter</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/newsletter" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/newsletter" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/newsletter" />
<lastmod>2026-04-30T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/newsletter</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/newsletter" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/newsletter" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/newsletter" />
<lastmod>2026-04-30T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://josemanuelortega.me/privacidad</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/privacidad" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/privacidad" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/privacidad" />
<lastmod>2026-04-29T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.3</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/privacidad</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/privacidad" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/privacidad" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/privacidad" />
<lastmod>2026-04-29T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.3</priority>
</url>
<url>
<loc>https://josemanuelortega.me/construir-agente-de-ia-desde-cero-typescript</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/construir-agente-de-ia-desde-cero-typescript" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/how-to-build-an-ai-agent-from-scratch-in-typescript" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/construir-agente-de-ia-desde-cero-typescript" />
<lastmod>2026-05-13T06:12:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/how-to-build-an-ai-agent-from-scratch-in-typescript</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/construir-agente-de-ia-desde-cero-typescript" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/how-to-build-an-ai-agent-from-scratch-in-typescript" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/construir-agente-de-ia-desde-cero-typescript" />
<lastmod>2026-05-13T12:04:58.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/wrapper-de-ia-vs-agente-de-ia</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/wrapper-de-ia-vs-agente-de-ia" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/ai-wrapper-vs-ai-agent-where-the-chatbot-ends" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/wrapper-de-ia-vs-agente-de-ia" />
<lastmod>2026-05-12T06:12:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/ai-wrapper-vs-ai-agent-where-the-chatbot-ends</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/wrapper-de-ia-vs-agente-de-ia" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/ai-wrapper-vs-ai-agent-where-the-chatbot-ends" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/wrapper-de-ia-vs-agente-de-ia" />
<lastmod>2026-05-12T07:04:38.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/cf-connecting-ip-bug-silencioso-traefik-rate-limit</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/cf-connecting-ip-bug-silencioso-traefik-rate-limit" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/the-silent-cf-connecting-ip-bug-when-you-put-cloudflare-in-front-of-traefik" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/cf-connecting-ip-bug-silencioso-traefik-rate-limit" />
<lastmod>2026-05-11T06:00:10.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/the-silent-cf-connecting-ip-bug-when-you-put-cloudflare-in-front-of-traefik</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/cf-connecting-ip-bug-silencioso-traefik-rate-limit" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/the-silent-cf-connecting-ip-bug-when-you-put-cloudflare-in-front-of-traefik" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/cf-connecting-ip-bug-silencioso-traefik-rate-limit" />
<lastmod>2026-05-11T07:24:54.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/docker-desde-cero-para-gente-de-qa-que-no-toca-infraestructura</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/docker-desde-cero-para-gente-de-qa-que-no-toca-infraestructura" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/docker-from-scratch-for-qa-people-who-don-t-touch-infrastructure" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/docker-desde-cero-para-gente-de-qa-que-no-toca-infraestructura" />
<lastmod>2026-05-10T11:11:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/docker-from-scratch-for-qa-people-who-don-t-touch-infrastructure</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/docker-desde-cero-para-gente-de-qa-que-no-toca-infraestructura" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/docker-from-scratch-for-qa-people-who-don-t-touch-infrastructure" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/docker-desde-cero-para-gente-de-qa-que-no-toca-infraestructura" />
<lastmod>2026-05-10T18:27:39.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/trmnl-alertas-vps-polling-webhook</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/trmnl-alertas-vps-polling-webhook" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/a-trmnl-for-vps-alerts-polling-or-webhook" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/trmnl-alertas-vps-polling-webhook" />
<lastmod>2026-05-09T10:12:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/a-trmnl-for-vps-alerts-polling-or-webhook</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/trmnl-alertas-vps-polling-webhook" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/a-trmnl-for-vps-alerts-polling-or-webhook" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/trmnl-alertas-vps-polling-webhook" />
<lastmod>2026-05-10T18:27:03.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/tuneles-comparativa-ssh-cloudflare-pangolin-tailscale-headscale-wireguard</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/tuneles-comparativa-ssh-cloudflare-pangolin-tailscale-headscale-wireguard" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/ssh-vs-cloudflare-tunnel-vs-pangolin-vs-tailscale-vs-headscale-vs-wireguard-what-i-use-each-one-for" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/tuneles-comparativa-ssh-cloudflare-pangolin-tailscale-headscale-wireguard" />
<lastmod>2026-05-08T09:00:56.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/ssh-vs-cloudflare-tunnel-vs-pangolin-vs-tailscale-vs-headscale-vs-wireguard-what-i-use-each-one-for</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/tuneles-comparativa-ssh-cloudflare-pangolin-tailscale-headscale-wireguard" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/ssh-vs-cloudflare-tunnel-vs-pangolin-vs-tailscale-vs-headscale-vs-wireguard-what-i-use-each-one-for" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/tuneles-comparativa-ssh-cloudflare-pangolin-tailscale-headscale-wireguard" />
<lastmod>2026-05-10T18:26:35.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/traefik-dns01-aop-solo-cloudflare-habla-con-mi-origen</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/traefik-dns01-aop-solo-cloudflare-habla-con-mi-origen" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/dns-01-and-aop-in-traefik-how-i-made-sure-only-cloudflare-could-talk-to-my-origin" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/traefik-dns01-aop-solo-cloudflare-habla-con-mi-origen" />
<lastmod>2026-05-08T06:11:54.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/dns-01-and-aop-in-traefik-how-i-made-sure-only-cloudflare-could-talk-to-my-origin</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/traefik-dns01-aop-solo-cloudflare-habla-con-mi-origen" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/dns-01-and-aop-in-traefik-how-i-made-sure-only-cloudflare-could-talk-to-my-origin" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/traefik-dns01-aop-solo-cloudflare-habla-con-mi-origen" />
<lastmod>2026-05-10T18:25:46.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/falacia-ausencia-errores</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/falacia-ausencia-errores" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/the-fallacy-of-absence-of-errors-why-bug-free-software-can-still-fail" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/falacia-ausencia-errores" />
<lastmod>2026-05-08T06:20:43.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/the-fallacy-of-absence-of-errors-why-bug-free-software-can-still-fail</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/falacia-ausencia-errores" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/the-fallacy-of-absence-of-errors-why-bug-free-software-can-still-fail" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/falacia-ausencia-errores" />
<lastmod>2026-05-10T18:25:10.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/pangolin-self-hosted-home-lab-alternativa-cloudflare-tunnel</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/pangolin-self-hosted-home-lab-alternativa-cloudflare-tunnel" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/pangolin-to-open-the-home-lab-to-the-internet-without-depending-on-cloudflare" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/pangolin-self-hosted-home-lab-alternativa-cloudflare-tunnel" />
<lastmod>2026-05-05T10:44:40.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/pangolin-to-open-the-home-lab-to-the-internet-without-depending-on-cloudflare</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/pangolin-self-hosted-home-lab-alternativa-cloudflare-tunnel" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/pangolin-to-open-the-home-lab-to-the-internet-without-depending-on-cloudflare" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/pangolin-self-hosted-home-lab-alternativa-cloudflare-tunnel" />
<lastmod>2026-05-10T18:24:43.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/cloudflare-free-waf-cache-hardening-zona-completa</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/cloudflare-free-waf-cache-hardening-zona-completa" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/waf-caching-and-hardening-with-cloudflare-free-without-losing-my-mind" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/cloudflare-free-waf-cache-hardening-zona-completa" />
<lastmod>2026-05-08T06:11:55.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/waf-caching-and-hardening-with-cloudflare-free-without-losing-my-mind</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/cloudflare-free-waf-cache-hardening-zona-completa" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/waf-caching-and-hardening-with-cloudflare-free-without-losing-my-mind" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/cloudflare-free-waf-cache-hardening-zona-completa" />
<lastmod>2026-05-10T18:23:48.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/merchant-of-record-stripe-primer-cobro-internacional</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/merchant-of-record-stripe-primer-cobro-internacional" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/merchant-of-record-the-missing-piece-between-stripe-and-your-first-international-payment" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/merchant-of-record-stripe-primer-cobro-internacional" />
<lastmod>2026-05-03T10:30:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/merchant-of-record-the-missing-piece-between-stripe-and-your-first-international-payment</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/merchant-of-record-stripe-primer-cobro-internacional" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/merchant-of-record-the-missing-piece-between-stripe-and-your-first-international-payment" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/merchant-of-record-stripe-primer-cobro-internacional" />
<lastmod>2026-05-10T18:23:02.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/hids-casero-aide-telegram-backups-cifrados</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/hids-casero-aide-telegram-backups-cifrados" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/if-my-vps-got-hacked-would-i-notice-how-i-set-up-a-homemade-hids-with-aide-telegram-alerts-and-encrypted-backups" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/hids-casero-aide-telegram-backups-cifrados" />
<lastmod>2026-05-09T21:17:34.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/if-my-vps-got-hacked-would-i-notice-how-i-set-up-a-homemade-hids-with-aide-telegram-alerts-and-encrypted-backups</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/hids-casero-aide-telegram-backups-cifrados" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/if-my-vps-got-hacked-would-i-notice-how-i-set-up-a-homemade-hids-with-aide-telegram-alerts-and-encrypted-backups" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/hids-casero-aide-telegram-backups-cifrados" />
<lastmod>2026-05-10T18:22:27.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/cloudflare-zero-trust-cloudflare-one-fortificacion-extras</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/cloudflare-zero-trust-cloudflare-one-fortificacion-extras" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/beyond-tunnel-and-access-which-cloudflare-zero-trust-pieces-i-still-have-to-turn-on" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/cloudflare-zero-trust-cloudflare-one-fortificacion-extras" />
<lastmod>2026-05-01T08:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/beyond-tunnel-and-access-which-cloudflare-zero-trust-pieces-i-still-have-to-turn-on</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/cloudflare-zero-trust-cloudflare-one-fortificacion-extras" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/beyond-tunnel-and-access-which-cloudflare-zero-trust-pieces-i-still-have-to-turn-on" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/cloudflare-zero-trust-cloudflare-one-fortificacion-extras" />
<lastmod>2026-05-10T18:21:23.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/vps-detras-de-cloudflare-motivacion-y-arquitectura</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/vps-detras-de-cloudflare-motivacion-y-arquitectura" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/why-i-put-my-entire-vps-behind-cloudflare" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/vps-detras-de-cloudflare-motivacion-y-arquitectura" />
<lastmod>2026-05-08T06:11:54.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/why-i-put-my-entire-vps-behind-cloudflare</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/vps-detras-de-cloudflare-motivacion-y-arquitectura" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/why-i-put-my-entire-vps-behind-cloudflare" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/vps-detras-de-cloudflare-motivacion-y-arquitectura" />
<lastmod>2026-05-10T18:20:44.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/git-para-qas-guia-practica-testers-automatizan</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/git-para-qas-guia-practica-testers-automatizan" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/git-for-qas-a-practical-guide-for-testers-who-automate" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/git-para-qas-guia-practica-testers-automatizan" />
<lastmod>2026-05-05T11:13:31.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/git-for-qas-a-practical-guide-for-testers-who-automate</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/git-para-qas-guia-practica-testers-automatizan" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/git-for-qas-a-practical-guide-for-testers-who-automate" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/git-para-qas-guia-practica-testers-automatizan" />
<lastmod>2026-05-10T18:20:16.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/cloudflare-tunnel-access-paneles-admin-vps</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/cloudflare-tunnel-access-paneles-admin-vps" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/cloudflare-tunnel-and-access-to-take-admin-panels-off-the-internet" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/cloudflare-tunnel-access-paneles-admin-vps" />
<lastmod>2026-05-08T06:18:48.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/cloudflare-tunnel-and-access-to-take-admin-panels-off-the-internet</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/cloudflare-tunnel-access-paneles-admin-vps" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/cloudflare-tunnel-and-access-to-take-admin-panels-off-the-internet" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/cloudflare-tunnel-access-paneles-admin-vps" />
<lastmod>2026-05-10T18:19:24.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/ai-gateway-comparativa-openrouter-vercel-cloudflare-portkey-litellm-2026</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/ai-gateway-comparativa-openrouter-vercel-cloudflare-portkey-litellm-2026" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/openrouter-vs-vercel-ai-gateway-vs-cloudflare-vs-portkey-vs-litellm-2026-comparison" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/ai-gateway-comparativa-openrouter-vercel-cloudflare-portkey-litellm-2026" />
<lastmod>2026-04-27T04:00:25.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/openrouter-vs-vercel-ai-gateway-vs-cloudflare-vs-portkey-vs-litellm-2026-comparison</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/ai-gateway-comparativa-openrouter-vercel-cloudflare-portkey-litellm-2026" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/openrouter-vs-vercel-ai-gateway-vs-cloudflare-vs-portkey-vs-litellm-2026-comparison" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/ai-gateway-comparativa-openrouter-vercel-cloudflare-portkey-litellm-2026" />
<lastmod>2026-05-10T18:18:34.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/testing-depende-del-contexto</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/testing-depende-del-contexto" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/testing-depends-on-context-why-copying-another-team-s-strategy-can-sink-you" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/testing-depende-del-contexto" />
<lastmod>2026-05-08T06:20:43.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/testing-depends-on-context-why-copying-another-team-s-strategy-can-sink-you</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/testing-depende-del-contexto" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/testing-depends-on-context-why-copying-another-team-s-strategy-can-sink-you" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/testing-depende-del-contexto" />
<lastmod>2026-05-10T18:17:41.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/claude-code-vs-cursor-vs-codex-comparativa-2026</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/claude-code-vs-cursor-vs-codex-comparativa-2026" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/claude-code-vs-cursor-vs-codex-months-testing-all-three-in-parallel" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/claude-code-vs-cursor-vs-codex-comparativa-2026" />
<lastmod>2026-04-25T08:27:53.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/claude-code-vs-cursor-vs-codex-months-testing-all-three-in-parallel</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/claude-code-vs-cursor-vs-codex-comparativa-2026" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/claude-code-vs-cursor-vs-codex-months-testing-all-three-in-parallel" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/claude-code-vs-cursor-vs-codex-comparativa-2026" />
<lastmod>2026-05-10T18:17:12.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/endureciendo-chat-cv-inyeccion-presupuesto-pii</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/endureciendo-chat-cv-inyeccion-presupuesto-pii" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/hardening-the-chat-in-my-cv-prompt-injection-budget-and-pii" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/endureciendo-chat-cv-inyeccion-presupuesto-pii" />
<lastmod>2026-05-06T13:34:15.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/hardening-the-chat-in-my-cv-prompt-injection-budget-and-pii</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/endureciendo-chat-cv-inyeccion-presupuesto-pii" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/hardening-the-chat-in-my-cv-prompt-injection-budget-and-pii" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/endureciendo-chat-cv-inyeccion-presupuesto-pii" />
<lastmod>2026-05-10T18:16:30.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/asistente-ia-cv-arquitectura-chat</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/asistente-ia-cv-arquitectura-chat" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/an-ai-assistant-inside-my-cv-chat-architecture" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/asistente-ia-cv-arquitectura-chat" />
<lastmod>2026-04-23T05:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/an-ai-assistant-inside-my-cv-chat-architecture</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/asistente-ia-cv-arquitectura-chat" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/an-ai-assistant-inside-my-cv-chat-architecture" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/asistente-ia-cv-arquitectura-chat" />
<lastmod>2026-05-10T18:15:51.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/ia-partiendo-mercado-laboral-tech-en-dos</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/ia-partiendo-mercado-laboral-tech-en-dos" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/ai-is-splitting-the-spanish-tech-job-market-in-two" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/ia-partiendo-mercado-laboral-tech-en-dos" />
<lastmod>2026-05-05T11:13:26.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/ai-is-splitting-the-spanish-tech-job-market-in-two</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/ia-partiendo-mercado-laboral-tech-en-dos" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/ai-is-splitting-the-spanish-tech-job-market-in-two" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/ia-partiendo-mercado-laboral-tech-en-dos" />
<lastmod>2026-05-10T18:15:12.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/reestructuracion-silenciosa-sector-tech-espana</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/reestructuracion-silenciosa-sector-tech-espana" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/the-silent-restructuring-of-spain-s-tech-sector" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/reestructuracion-silenciosa-sector-tech-espana" />
<lastmod>2026-05-05T11:13:25.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/the-silent-restructuring-of-spain-s-tech-sector</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/reestructuracion-silenciosa-sector-tech-espana" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/the-silent-restructuring-of-spain-s-tech-sector" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/reestructuracion-silenciosa-sector-tech-espana" />
<lastmod>2026-05-10T18:14:42.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/herramientas-ia-tendencias-transformando-testing</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/herramientas-ia-tendencias-transformando-testing" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/ai-playwright-and-the-transformation-of-testing-in-2026" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/herramientas-ia-tendencias-transformando-testing" />
<lastmod>2026-05-06T13:34:14.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/ai-playwright-and-the-transformation-of-testing-in-2026</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/herramientas-ia-tendencias-transformando-testing" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/ai-playwright-and-the-transformation-of-testing-in-2026" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/herramientas-ia-tendencias-transformando-testing" />
<lastmod>2026-05-10T18:14:01.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/privacidad-scamdetector-vertex-zdr-modo-ofuscado</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/privacidad-scamdetector-vertex-zdr-modo-ofuscado" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/maximum-privacy-in-scamdetector-vertex-with-zdr-and-obfuscated-mode" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/privacidad-scamdetector-vertex-zdr-modo-ofuscado" />
<lastmod>2026-05-08T06:24:58.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/maximum-privacy-in-scamdetector-vertex-with-zdr-and-obfuscated-mode</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/privacidad-scamdetector-vertex-zdr-modo-ofuscado" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/maximum-privacy-in-scamdetector-vertex-with-zdr-and-obfuscated-mode" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/privacidad-scamdetector-vertex-zdr-modo-ofuscado" />
<lastmod>2026-05-10T18:13:25.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/alertas-push-ntfy-scamdetector</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/alertas-push-ntfy-scamdetector" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/mobile-push-alerts-with-self-hosted-ntfy" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/alertas-push-ntfy-scamdetector" />
<lastmod>2026-05-08T06:24:58.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/mobile-push-alerts-with-self-hosted-ntfy</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/alertas-push-ntfy-scamdetector" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/mobile-push-alerts-with-self-hosted-ntfy" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/alertas-push-ntfy-scamdetector" />
<lastmod>2026-05-10T18:12:45.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/iterando-scamdetector-cambios-despues-publicar</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/iterando-scamdetector-cambios-despues-publicar" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/iterating-on-scamdetector-what-i-changed-after-publishing" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/iterando-scamdetector-cambios-despues-publicar" />
<lastmod>2026-05-08T06:24:57.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/iterating-on-scamdetector-what-i-changed-after-publishing</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/iterando-scamdetector-cambios-despues-publicar" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/iterating-on-scamdetector-what-i-changed-after-publishing" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/iterando-scamdetector-cambios-despues-publicar" />
<lastmod>2026-05-10T18:12:02.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/endureciendo-scamdetector-seguridad-produccion</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/endureciendo-scamdetector-seguridad-produccion" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/hardening-scamdetector-against-prompt-injection-hallucinations-and-abuse" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/endureciendo-scamdetector-seguridad-produccion" />
<lastmod>2026-05-08T06:24:58.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/hardening-scamdetector-against-prompt-injection-hallucinations-and-abuse</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/endureciendo-scamdetector-seguridad-produccion" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/hardening-scamdetector-against-prompt-injection-hallucinations-and-abuse" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/endureciendo-scamdetector-seguridad-produccion" />
<lastmod>2026-05-10T18:11:22.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/arquitectura-scamdetector-proxy-ia-seguridad</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/arquitectura-scamdetector-proxy-ia-seguridad" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/the-architecture-of-scamdetector-an-ai-proxy-that-doesn-t-expose-secrets" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/arquitectura-scamdetector-proxy-ia-seguridad" />
<lastmod>2026-05-08T06:24:57.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/the-architecture-of-scamdetector-an-ai-proxy-that-doesn-t-expose-secrets</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/arquitectura-scamdetector-proxy-ia-seguridad" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/the-architecture-of-scamdetector-an-ai-proxy-that-doesn-t-expose-secrets" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/arquitectura-scamdetector-proxy-ia-seguridad" />
<lastmod>2026-05-10T18:10:32.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/radiografia-mercado-qa-espana-2026</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/radiografia-mercado-qa-espana-2026" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/a-cross-section-of-the-qa-market-in-spain-in-2026" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/radiografia-mercado-qa-espana-2026" />
<lastmod>2026-04-14T06:12:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/a-cross-section-of-the-qa-market-in-spain-in-2026</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/radiografia-mercado-qa-espana-2026" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/a-cross-section-of-the-qa-market-in-spain-in-2026" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/radiografia-mercado-qa-espana-2026" />
<lastmod>2026-05-10T18:09:45.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/scamdetector-detector-estafas-inteligencia-artificial</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/scamdetector-detector-estafas-inteligencia-artificial" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/scamdetector-an-ai-powered-scam-detector" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/scamdetector-detector-estafas-inteligencia-artificial" />
<lastmod>2026-05-08T06:24:57.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/scamdetector-an-ai-powered-scam-detector</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/scamdetector-detector-estafas-inteligencia-artificial" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/scamdetector-an-ai-powered-scam-detector" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/scamdetector-detector-estafas-inteligencia-artificial" />
<lastmod>2026-05-10T18:09:11.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/defectos-se-agrupan</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/defectos-se-agrupan" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/defects-cluster-applying-the-80-20-principle-to-testing" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/defectos-se-agrupan" />
<lastmod>2026-05-08T06:20:43.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/defects-cluster-applying-the-80-20-principle-to-testing</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/defectos-se-agrupan" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/defects-cluster-applying-the-80-20-principle-to-testing" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/defectos-se-agrupan" />
<lastmod>2026-05-10T18:08:42.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/narrar-posts-con-voz-ia-tts</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/narrar-posts-con-voz-ia-tts" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/how-i-added-voice-narration-to-blog-posts-with-ai" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/narrar-posts-con-voz-ia-tts" />
<lastmod>2026-05-08T06:23:19.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/how-i-added-voice-narration-to-blog-posts-with-ai</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/narrar-posts-con-voz-ia-tts" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/how-i-added-voice-narration-to-blog-posts-with-ai" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/narrar-posts-con-voz-ia-tts" />
<lastmod>2026-05-10T18:08:13.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/testing-temprano-ahorra-tiempo-dinero</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/testing-temprano-ahorra-tiempo-dinero" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/early-testing-saves-time-and-money" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/testing-temprano-ahorra-tiempo-dinero" />
<lastmod>2026-05-08T06:20:43.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/early-testing-saves-time-and-money</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/testing-temprano-ahorra-tiempo-dinero" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/early-testing-saves-time-and-money" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/testing-temprano-ahorra-tiempo-dinero" />
<lastmod>2026-05-10T18:07:45.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/testing-exhaustivo-imposible</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/testing-exhaustivo-imposible" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/exhaustive-testing-is-impossible-and-that-s-okay" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/testing-exhaustivo-imposible" />
<lastmod>2026-05-08T06:20:43.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/exhaustive-testing-is-impossible-and-that-s-okay</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/testing-exhaustivo-imposible" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/exhaustive-testing-is-impossible-and-that-s-okay" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/testing-exhaustivo-imposible" />
<lastmod>2026-05-10T18:07:16.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/testing-muestra-presencia-defectos</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/testing-muestra-presencia-defectos" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/testing-shows-the-presence-of-defects-not-their-absence" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/testing-muestra-presencia-defectos" />
<lastmod>2026-05-08T06:20:42.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/testing-shows-the-presence-of-defects-not-their-absence</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/testing-muestra-presencia-defectos" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/testing-shows-the-presence-of-defects-not-their-absence" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/testing-muestra-presencia-defectos" />
<lastmod>2026-05-10T18:06:46.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/paradoja-pesticida-testing</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/paradoja-pesticida-testing" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/the-pesticide-paradox-the-fifth-testing-principle-your-team-ignores" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/paradoja-pesticida-testing" />
<lastmod>2026-05-08T06:20:43.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/the-pesticide-paradox-the-fifth-testing-principle-your-team-ignores</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/paradoja-pesticida-testing" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/the-pesticide-paradox-the-fifth-testing-principle-your-team-ignores" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/paradoja-pesticida-testing" />
<lastmod>2026-05-10T18:06:16.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/guia-practica-de-hardening-para-tu-vps-linux-de-crowdsec-al-kernel</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/guia-practica-de-hardening-para-tu-vps-linux-de-crowdsec-al-kernel" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/practical-hardening-guide-for-your-linux-vps-from-crowdsec-to-the-kernel" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/guia-practica-de-hardening-para-tu-vps-linux-de-crowdsec-al-kernel" />
<lastmod>2026-05-08T06:27:49.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/practical-hardening-guide-for-your-linux-vps-from-crowdsec-to-the-kernel</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/guia-practica-de-hardening-para-tu-vps-linux-de-crowdsec-al-kernel" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/practical-hardening-guide-for-your-linux-vps-from-crowdsec-to-the-kernel" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/guia-practica-de-hardening-para-tu-vps-linux-de-crowdsec-al-kernel" />
<lastmod>2026-05-10T18:05:50.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/openclaw-en-casa-del-analisis-de-quinielas-a-la-vigilancia-del-nas</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/openclaw-en-casa-del-analisis-de-quinielas-a-la-vigilancia-del-nas" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/openclaw-at-home-from-pool-picks-analysis-to-nas-monitoring" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/openclaw-en-casa-del-analisis-de-quinielas-a-la-vigilancia-del-nas" />
<lastmod>2026-05-08T06:24:59.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/openclaw-at-home-from-pool-picks-analysis-to-nas-monitoring</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/openclaw-en-casa-del-analisis-de-quinielas-a-la-vigilancia-del-nas" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/openclaw-at-home-from-pool-picks-analysis-to-nas-monitoring" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/openclaw-en-casa-del-analisis-de-quinielas-a-la-vigilancia-del-nas" />
<lastmod>2026-05-10T18:05:14.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/openclaw-para-testing-y-qa-automatiza-lo-que-antes-hacias-a-mano</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/openclaw-para-testing-y-qa-automatiza-lo-que-antes-hacias-a-mano" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/openclaw-for-testing-and-qa-automate-what-you-used-to-do-by-hand" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/openclaw-para-testing-y-qa-automatiza-lo-que-antes-hacias-a-mano" />
<lastmod>2026-05-08T06:24:59.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/openclaw-for-testing-and-qa-automate-what-you-used-to-do-by-hand</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/openclaw-para-testing-y-qa-automatiza-lo-que-antes-hacias-a-mano" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/openclaw-for-testing-and-qa-automate-what-you-used-to-do-by-hand" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/openclaw-para-testing-y-qa-automatiza-lo-que-antes-hacias-a-mano" />
<lastmod>2026-05-10T18:04:52.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/infraestructura-dokploy-vercel-coolify</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/infraestructura-dokploy-vercel-coolify" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/how-we-set-up-the-infrastructure-with-dokploy-and-why-we-left-vercel" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/infraestructura-dokploy-vercel-coolify" />
<lastmod>2026-05-05T10:16:45.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/how-we-set-up-the-infrastructure-with-dokploy-and-why-we-left-vercel</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/infraestructura-dokploy-vercel-coolify" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/how-we-set-up-the-infrastructure-with-dokploy-and-why-we-left-vercel" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/infraestructura-dokploy-vercel-coolify" />
<lastmod>2026-05-10T18:04:30.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/supply-chain-dockerfile-checksum-npm-ignore-scripts</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/supply-chain-dockerfile-checksum-npm-ignore-scripts" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/your-dockerfile-is-downloading-attacker-binaries-and-how-to-avoid-it" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/supply-chain-dockerfile-checksum-npm-ignore-scripts" />
<lastmod>2026-05-08T06:27:49.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/your-dockerfile-is-downloading-attacker-binaries-and-how-to-avoid-it</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/supply-chain-dockerfile-checksum-npm-ignore-scripts" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/your-dockerfile-is-downloading-attacker-binaries-and-how-to-avoid-it" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/supply-chain-dockerfile-checksum-npm-ignore-scripts" />
<lastmod>2026-05-10T18:03:45.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/seguridad-seo-rendimiento-blog</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/seguridad-seo-rendimiento-blog" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/security-seo-and-performance-in-a-self-hosted-blog" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/seguridad-seo-rendimiento-blog" />
<lastmod>2026-05-08T06:23:19.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/security-seo-and-performance-in-a-self-hosted-blog</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/seguridad-seo-rendimiento-blog" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/security-seo-and-performance-in-a-self-hosted-blog" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/seguridad-seo-rendimiento-blog" />
<lastmod>2026-05-10T18:03:03.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/como-verificamos-integridad-posts-blog</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/como-verificamos-integridad-posts-blog" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/how-we-verify-that-no-one-tamperes-with-this-blog-s-posts" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/como-verificamos-integridad-posts-blog" />
<lastmod>2026-05-08T06:23:19.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/how-we-verify-that-no-one-tamperes-with-this-blog-s-posts</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/como-verificamos-integridad-posts-blog" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/how-we-verify-that-no-one-tamperes-with-this-blog-s-posts" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/como-verificamos-integridad-posts-blog" />
<lastmod>2026-05-10T18:02:35.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/variables-entorno-scripts-e2e-spritetester</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/variables-entorno-scripts-e2e-spritetester" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/environment-variables-in-e2e-scripts-safe-secrets-in-jmo-labs" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/variables-entorno-scripts-e2e-spritetester" />
<lastmod>2026-04-13T07:12:32.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/environment-variables-in-e2e-scripts-safe-secrets-in-jmo-labs</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/variables-entorno-scripts-e2e-spritetester" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/environment-variables-in-e2e-scripts-safe-secrets-in-jmo-labs" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/variables-entorno-scripts-e2e-spritetester" />
<lastmod>2026-05-10T18:02:01.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/secretos-infisical-dokploy</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/secretos-infisical-dokploy" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/infisical-in-dokploy-how-i-manage-secrets-without-stuffing-them-into-environment-variables" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/secretos-infisical-dokploy" />
<lastmod>2026-05-08T06:27:50.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/infisical-in-dokploy-how-i-manage-secrets-without-stuffing-them-into-environment-variables</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/secretos-infisical-dokploy" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/infisical-in-dokploy-how-i-manage-secrets-without-stuffing-them-into-environment-variables" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/secretos-infisical-dokploy" />
<lastmod>2026-05-10T18:01:42.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/stack-tecnico-blog-nextjs-sqlite-docker</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/stack-tecnico-blog-nextjs-sqlite-docker" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/next-js-sqlite-and-docker-the-technical-stack-behind-this-blog" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/stack-tecnico-blog-nextjs-sqlite-docker" />
<lastmod>2026-05-08T06:23:18.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/next-js-sqlite-and-docker-the-technical-stack-behind-this-blog</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/stack-tecnico-blog-nextjs-sqlite-docker" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/next-js-sqlite-and-docker-the-technical-stack-behind-this-blog" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/stack-tecnico-blog-nextjs-sqlite-docker" />
<lastmod>2026-05-10T18:00:59.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/por-que-construir-blog-propio</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/por-que-construir-blog-propio" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/why-i-built-my-own-blog-engine-in-next-js-instead-of-wordpress-or-ghost" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/por-que-construir-blog-propio" />
<lastmod>2026-05-08T06:23:18.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/why-i-built-my-own-blog-engine-in-next-js-instead-of-wordpress-or-ghost</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/por-que-construir-blog-propio" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/why-i-built-my-own-blog-engine-in-next-js-instead-of-wordpress-or-ghost" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/por-que-construir-blog-propio" />
<lastmod>2026-05-10T18:00:34.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/migraciones-drizzle-proyectos-reales</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/migraciones-drizzle-proyectos-reales" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/how-we-manage-database-migrations-with-drizzle-orm" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/migraciones-drizzle-proyectos-reales" />
<lastmod>2026-04-13T07:12:32.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/how-we-manage-database-migrations-with-drizzle-orm</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/migraciones-drizzle-proyectos-reales" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/how-we-manage-database-migrations-with-drizzle-orm" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/migraciones-drizzle-proyectos-reales" />
<lastmod>2026-05-10T18:00:12.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/tests-e2e-que-se-reparan-solos-como-construimos-un-pipeline-de-self-healing-con-ia</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/tests-e2e-que-se-reparan-solos-como-construimos-un-pipeline-de-self-healing-con-ia" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/e2e-tests-that-fix-themselves-how-we-built-a-self-healing-pipeline-with-ai" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/tests-e2e-que-se-reparan-solos-como-construimos-un-pipeline-de-self-healing-con-ia" />
<lastmod>2026-05-08T06:24:58.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/e2e-tests-that-fix-themselves-how-we-built-a-self-healing-pipeline-with-ai</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/tests-e2e-que-se-reparan-solos-como-construimos-un-pipeline-de-self-healing-con-ia" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/e2e-tests-that-fix-themselves-how-we-built-a-self-healing-pipeline-with-ai" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/tests-e2e-que-se-reparan-solos-como-construimos-un-pipeline-de-self-healing-con-ia" />
<lastmod>2026-05-10T17:59:41.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/playwright-motor-testing-jmolabs</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/playwright-motor-testing-jmolabs" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/building-a-testing-platform-with-playwright-jmo-labs-architecture" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/playwright-motor-testing-jmolabs" />
<lastmod>2026-05-08T06:24:58.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/building-a-testing-platform-with-playwright-jmo-labs-architecture</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/playwright-motor-testing-jmolabs" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/building-a-testing-platform-with-playwright-jmo-labs-architecture" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/playwright-motor-testing-jmolabs" />
<lastmod>2026-05-10T17:58:57.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/automatizar-capturas-pantalla-playwright</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/automatizar-capturas-pantalla-playwright" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/how-we-automated-60-screenshots-with-playwright" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/automatizar-capturas-pantalla-playwright" />
<lastmod>2026-05-08T06:24:58.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/en/how-we-automated-60-screenshots-with-playwright</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://josemanuelortega.me/automatizar-capturas-pantalla-playwright" />
<xhtml:link rel="alternate" hreflang="en" href="https://josemanuelortega.me/en/how-we-automated-60-screenshots-with-playwright" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://josemanuelortega.me/automatizar-capturas-pantalla-playwright" />
<lastmod>2026-05-10T17:58:10.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://josemanuelortega.me/categoria/seguridad</loc>
<lastmod>2026-05-11T06:00:10.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://josemanuelortega.me/categoria/testing</loc>
<lastmod>2026-05-10T11:11:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://josemanuelortega.me/categoria/desarrollo-web</loc>
<lastmod>2026-04-01T21:50:14.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://josemanuelortega.me/categoria/desarrollo</loc>
<lastmod>2026-04-19T04:26:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://josemanuelortega.me/categoria/inteligencia-artificial</loc>
<lastmod>2026-05-13T06:12:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://josemanuelortega.me/categoria/herramientas</loc>
<lastmod>2026-05-03T10:30:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://josemanuelortega.me/categoria/devops</loc>
<lastmod>2026-05-10T11:11:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://josemanuelortega.me/categoria/infraestructura</loc>
<lastmod>2026-05-08T09:00:56.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://josemanuelortega.me/tag/node-js</loc>
<lastmod>2026-05-11T06:00:10.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://josemanuelortega.me/tag/qa</loc>
<lastmod>2026-05-10T11:11:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://josemanuelortega.me/tag/cloudflare</loc>
<lastmod>2026-05-11T06:00:10.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://josemanuelortega.me/tag/vps</loc>
<lastmod>2026-05-09T10:12:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://josemanuelortega.me/tag/arquitectura</loc>
<lastmod>2026-05-13T06:12:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://josemanuelortega.me/tag/docker</loc>
<lastmod>2026-05-10T11:11:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://josemanuelortega.me/tag/self-hosted</loc>
<lastmod>2026-05-09T10:12:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://josemanuelortega.me/tag/traefik</loc>
<lastmod>2026-05-11T06:00:10.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://josemanuelortega.me/tag/playwright</loc>
<lastmod>2026-04-20T07:36:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://josemanuelortega.me/tag/ia</loc>
<lastmod>2026-05-13T06:12:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://josemanuelortega.me/tag/principios-del-testing</loc>
<lastmod>2026-05-06T10:00:02.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://josemanuelortega.me/tag/istqb</loc>
<lastmod>2026-05-06T10:00:02.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://josemanuelortega.me/tag/dokploy</loc>
<lastmod>2026-05-07T06:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://josemanuelortega.me/tag/automatizacion</loc>
<lastmod>2026-04-29T07:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://josemanuelortega.me/tag/seguridad</loc>
<lastmod>2026-05-11T06:00:10.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://josemanuelortega.me/serie/docker-para-qa</loc>
<lastmod>2026-05-10T11:11:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://josemanuelortega.me/serie/migrando-vps-detras-cloudflare</loc>
<lastmod>2026-05-11T06:00:10.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://josemanuelortega.me/serie/construyendo-este-blog</loc>
<lastmod>2026-04-11T13:04:23.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://josemanuelortega.me/serie/7-principios-del-testing-istqb</loc>
<lastmod>2026-05-06T10:00:02.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://josemanuelortega.me/serie/playwright-en-profundidad</loc>
<lastmod>2026-03-23T10:39:39.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://josemanuelortega.me/serie/seguridad-del-homelab</loc>
<lastmod>2026-04-06T08:19:39.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://josemanuelortega.me/serie/del-wrapper-al-agente</loc>
<lastmod>2026-05-13T06:12:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://josemanuelortega.me/serie/asistente-ia-cv</loc>
<lastmod>2026-04-24T09:32:23.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://josemanuelortega.me/serie/proyecto-scamdetector</loc>
<lastmod>2026-04-19T04:26:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://josemanuelortega.me/serie/openclaw</loc>
<lastmod>2026-04-05T08:01:29.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://josemanuelortega.me/sobre-mi</loc>
<lastmod>2026-04-27T21:29:19.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
</urlset>
