<?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://gabrielcaiana.com/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/" /><lastmod>2026-10-16</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
<url><loc>https://gabrielcaiana.com/pt/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/" /><lastmod>2026-10-16</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
<url><loc>https://gabrielcaiana.com/blog/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/" /><lastmod>2026-10-16</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url>
<url><loc>https://gabrielcaiana.com/pt/blog/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/" /><lastmod>2026-10-16</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url>
<url><loc>https://gabrielcaiana.com/about/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/about/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/about/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/about/" /><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/pt/about/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/about/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/about/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/about/" /><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/projects/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/projects/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/projects/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/projects/" /><changefreq>monthly</changefreq><priority>0.6</priority></url>
<url><loc>https://gabrielcaiana.com/pt/projects/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/projects/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/projects/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/projects/" /><changefreq>monthly</changefreq><priority>0.6</priority></url>
<url><loc>https://gabrielcaiana.com/now/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/now/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/now/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/now/" /><changefreq>monthly</changefreq><priority>0.5</priority></url>
<url><loc>https://gabrielcaiana.com/pt/now/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/now/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/now/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/now/" /><changefreq>monthly</changefreq><priority>0.5</priority></url>
<url><loc>https://gabrielcaiana.com/series/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/series/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/series/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/series/" /><changefreq>monthly</changefreq><priority>0.6</priority></url>
<url><loc>https://gabrielcaiana.com/pt/series/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/series/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/series/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/series/" /><changefreq>monthly</changefreq><priority>0.6</priority></url>
<url><loc>https://gabrielcaiana.com/guides/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/guides/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/guias/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/guides/" /><changefreq>monthly</changefreq><priority>0.7</priority></url>
<url><loc>https://gabrielcaiana.com/pt/guias/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/guides/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/guias/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/guides/" /><changefreq>monthly</changefreq><priority>0.7</priority></url>
<url><loc>https://gabrielcaiana.com/tags/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/tags/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/tags/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/tags/" /><changefreq>monthly</changefreq><priority>0.5</priority></url>
<url><loc>https://gabrielcaiana.com/pt/tags/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/tags/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/tags/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/tags/" /><changefreq>monthly</changefreq><priority>0.5</priority></url>
<url><loc>https://gabrielcaiana.com/til/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/til/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/til/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/til/" /><changefreq>weekly</changefreq><priority>0.5</priority></url>
<url><loc>https://gabrielcaiana.com/pt/til/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/til/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/til/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/til/" /><changefreq>weekly</changefreq><priority>0.5</priority></url>
<url><loc>https://gabrielcaiana.com/services/</loc><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/services/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/services/" /><changefreq>monthly</changefreq><priority>0.5</priority></url>
<url><loc>https://gabrielcaiana.com/blog/amazon-bedrock-in-practice-ai-as-part-of-the-architecture-not-as-an-external-dependency/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/amazon-bedrock-in-practice-ai-as-part-of-the-architecture-not-as-an-external-dependency/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/amazon-bedrock-na-pratica-ia-como-parte-da-arquitetura/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/amazon-bedrock-in-practice-ai-as-part-of-the-architecture-not-as-an-external-dependency/" /><lastmod>2026-05-06</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/pt/blog/amazon-bedrock-na-pratica-ia-como-parte-da-arquitetura/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/amazon-bedrock-in-practice-ai-as-part-of-the-architecture-not-as-an-external-dependency/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/amazon-bedrock-na-pratica-ia-como-parte-da-arquitetura/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/amazon-bedrock-in-practice-ai-as-part-of-the-architecture-not-as-an-external-dependency/" /><lastmod>2026-05-06</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/blog/persistent-storage-in-nuxt-with-unstorage/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/persistent-storage-in-nuxt-with-unstorage/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/armazenamento-persistente-no-nuxt-com-unstorage/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/persistent-storage-in-nuxt-with-unstorage/" /><lastmod>2025-07-10</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/pt/blog/armazenamento-persistente-no-nuxt-com-unstorage/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/persistent-storage-in-nuxt-with-unstorage/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/armazenamento-persistente-no-nuxt-com-unstorage/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/persistent-storage-in-nuxt-with-unstorage/" /><lastmod>2025-07-10</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/blog/modular-architecture-with-nuxt-layers-in-vue-projects/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/modular-architecture-with-nuxt-layers-in-vue-projects/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/arquitetura-modular-frontend-nuxt-layers-revoluciona-organizacao-projetos-vue/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/modular-architecture-with-nuxt-layers-in-vue-projects/" /><lastmod>2025-10-02</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/pt/blog/arquitetura-modular-frontend-nuxt-layers-revoluciona-organizacao-projetos-vue/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/modular-architecture-with-nuxt-layers-in-vue-projects/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/arquitetura-modular-frontend-nuxt-layers-revoluciona-organizacao-projetos-vue/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/modular-architecture-with-nuxt-layers-in-vue-projects/" /><lastmod>2025-10-02</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/blog/http-caching-and-cdn-with-cloudflare-complete-guide/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/http-caching-and-cdn-with-cloudflare-complete-guide/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/cache-http-cdn-cloudflare/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/http-caching-and-cdn-with-cloudflare-complete-guide/" /><lastmod>2025-09-10</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/pt/blog/cache-http-cdn-cloudflare/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/http-caching-and-cdn-with-cloudflare-complete-guide/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/cache-http-cdn-cloudflare/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/http-caching-and-cdn-with-cloudflare-complete-guide/" /><lastmod>2025-09-10</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/blog/how-to-store-data-in-the-browser-without-making-a-mess/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/how-to-store-data-in-the-browser-without-making-a-mess/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/como-armazenar-dados-no-navegador-sem-fazer-bagunca/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/how-to-store-data-in-the-browser-without-making-a-mess/" /><lastmod>2025-07-07</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/pt/blog/como-armazenar-dados-no-navegador-sem-fazer-bagunca/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/how-to-store-data-in-the-browser-without-making-a-mess/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/como-armazenar-dados-no-navegador-sem-fazer-bagunca/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/how-to-store-data-in-the-browser-without-making-a-mess/" /><lastmod>2025-07-07</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/blog/how-core-web-vitals-works/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/how-core-web-vitals-works/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/como-funciona-o-core-web-vitals/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/how-core-web-vitals-works/" /><lastmod>2024-02-24</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/pt/blog/como-funciona-o-core-web-vitals/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/how-core-web-vitals-works/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/como-funciona-o-core-web-vitals/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/how-core-web-vitals-works/" /><lastmod>2024-02-24</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/blog/how-to-preserve-component-state-between-routes-with-keepalive-in-nuxt-3/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/how-to-preserve-component-state-between-routes-with-keepalive-in-nuxt-3/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/como-manter-estado-componentes-entre-rotas-keepalive-nuxt-3/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/how-to-preserve-component-state-between-routes-with-keepalive-in-nuxt-3/" /><lastmod>2024-08-26</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/pt/blog/como-manter-estado-componentes-entre-rotas-keepalive-nuxt-3/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/how-to-preserve-component-state-between-routes-with-keepalive-in-nuxt-3/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/como-manter-estado-componentes-entre-rotas-keepalive-nuxt-3/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/how-to-preserve-component-state-between-routes-with-keepalive-in-nuxt-3/" /><lastmod>2024-08-26</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/blog/how-we-reorganized-an-e-commerce-checkout-without-stopping-sales/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/how-we-reorganized-an-e-commerce-checkout-without-stopping-sales/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/como-reorganizamos-o-checkout-sem-parar-de-vender/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/how-we-reorganized-an-e-commerce-checkout-without-stopping-sales/" /><lastmod>2026-06-19</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/pt/blog/como-reorganizamos-o-checkout-sem-parar-de-vender/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/how-we-reorganized-an-e-commerce-checkout-without-stopping-sales/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/como-reorganizamos-o-checkout-sem-parar-de-vender/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/how-we-reorganized-an-e-commerce-checkout-without-stopping-sales/" /><lastmod>2026-06-19</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/blog/components-for-debug-and-rendering-with-devonly-and-clientonly-in-nuxt-3/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/components-for-debug-and-rendering-with-devonly-and-clientonly-in-nuxt-3/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/componentes-para-debug-e-renderizacao-com-devonly-e-clientonly-no-nuxt-3/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/components-for-debug-and-rendering-with-devonly-and-clientonly-in-nuxt-3/" /><lastmod>2024-08-31</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/pt/blog/componentes-para-debug-e-renderizacao-com-devonly-e-clientonly-no-nuxt-3/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/components-for-debug-and-rendering-with-devonly-and-clientonly-in-nuxt-3/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/componentes-para-debug-e-renderizacao-com-devonly-e-clientonly-no-nuxt-3/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/components-for-debug-and-rendering-with-devonly-and-clientonly-in-nuxt-3/" /><lastmod>2024-08-31</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/blog/composable-abstraction-layer-the-missing-pattern-between-pinia-and-its-vue-components/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/composable-abstraction-layer-the-missing-pattern-between-pinia-and-its-vue-components/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/composable-abstraction-layer-pinia-vue/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/composable-abstraction-layer-the-missing-pattern-between-pinia-and-its-vue-components/" /><lastmod>2026-03-23</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/pt/blog/composable-abstraction-layer-pinia-vue/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/composable-abstraction-layer-the-missing-pattern-between-pinia-and-its-vue-components/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/composable-abstraction-layer-pinia-vue/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/composable-abstraction-layer-the-missing-pattern-between-pinia-and-its-vue-components/" /><lastmod>2026-03-23</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/blog/building-a-robust-architecture/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/building-a-robust-architecture/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/construindo-uma-arquitetura-robusta/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/building-a-robust-architecture/" /><lastmod>2024-01-10</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/pt/blog/construindo-uma-arquitetura-robusta/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/building-a-robust-architecture/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/construindo-uma-arquitetura-robusta/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/building-a-robust-architecture/" /><lastmod>2024-01-10</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/blog/from-base-model-to-chatgpt-sft-tools-and-reinforcement-learning/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/from-base-model-to-chatgpt-sft-tools-and-reinforcement-learning/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/de-modelo-base-ao-chatgpt/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/from-base-model-to-chatgpt-sft-tools-and-reinforcement-learning/" /><lastmod>2026-07-02</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/pt/blog/de-modelo-base-ao-chatgpt/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/from-base-model-to-chatgpt-sft-tools-and-reinforcement-learning/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/de-modelo-base-ao-chatgpt/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/from-base-model-to-chatgpt-sft-tools-and-reinforcement-learning/" /><lastmod>2026-07-02</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/blog/decision-models-in-practice-when-picking-the-llm-per-message-pays-off-and-when-the-mid-tier-model-is-enough/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/decision-models-in-practice-when-picking-the-llm-per-message-pays-off-and-when-the-mid-tier-model-is-enough/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/decision-models-na-pratica-quando-escolher-o-llm-por-mensagem-vale-a-pena/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/decision-models-in-practice-when-picking-the-llm-per-message-pays-off-and-when-the-mid-tier-model-is-enough/" /><lastmod>2026-10-15</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/pt/blog/decision-models-na-pratica-quando-escolher-o-llm-por-mensagem-vale-a-pena/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/decision-models-in-practice-when-picking-the-llm-per-message-pays-off-and-when-the-mid-tier-model-is-enough/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/decision-models-na-pratica-quando-escolher-o-llm-por-mensagem-vale-a-pena/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/decision-models-in-practice-when-picking-the-llm-per-message-pays-off-and-when-the-mid-tier-model-is-enough/" /><lastmod>2026-10-15</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/blog/from-common-crawl-to-the-base-model-how-an-llm-learns-language/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/from-common-crawl-to-the-base-model-how-an-llm-learns-language/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/do-common-crawl-ao-modelo-base/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/from-common-crawl-to-the-base-model-how-an-llm-learns-language/" /><lastmod>2026-07-02</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/pt/blog/do-common-crawl-ao-modelo-base/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/from-common-crawl-to-the-base-model-how-an-llm-learns-language/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/do-common-crawl-ao-modelo-base/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/from-common-crawl-to-the-base-model-how-an-llm-learns-language/" /><lastmod>2026-07-02</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/blog/understanding-nielsens-10-heuristics/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/understanding-nielsens-10-heuristics/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/entendendo-as-10-heuristicas-de-nielsen/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/understanding-nielsens-10-heuristics/" /><lastmod>2022-07-08</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/pt/blog/entendendo-as-10-heuristicas-de-nielsen/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/understanding-nielsens-10-heuristics/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/entendendo-as-10-heuristicas-de-nielsen/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/understanding-nielsens-10-heuristics/" /><lastmod>2022-07-08</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/blog/exploring-functional-programming-in-javascript/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/exploring-functional-programming-in-javascript/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/explorando-a-programacao-funcional-em-javascript/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/exploring-functional-programming-in-javascript/" /><lastmod>2024-03-30</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/pt/blog/explorando-a-programacao-funcional-em-javascript/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/exploring-functional-programming-in-javascript/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/explorando-a-programacao-funcional-em-javascript/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/exploring-functional-programming-in-javascript/" /><lastmod>2024-03-30</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/blog/integration-between-github-and-discord-for-pull-request-notifications/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/integration-between-github-and-discord-for-pull-request-notifications/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/integracao-github-discord-notificacoes-pull-requests/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/integration-between-github-and-discord-for-pull-request-notifications/" /><lastmod>2024-09-01</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/pt/blog/integracao-github-discord-notificacoes-pull-requests/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/integration-between-github-and-discord-for-pull-request-notifications/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/integracao-github-discord-notificacoes-pull-requests/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/integration-between-github-and-discord-for-pull-request-notifications/" /><lastmod>2024-09-01</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/blog/javascript-in-2025-complete-guide-to-the-most-popular-methods-and-operators/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/javascript-in-2025-complete-guide-to-the-most-popular-methods-and-operators/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/javascript-em-2025-guia-completo-metodos-operadores/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/javascript-in-2025-complete-guide-to-the-most-popular-methods-and-operators/" /><lastmod>2025-08-28</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/pt/blog/javascript-em-2025-guia-completo-metodos-operadores/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/javascript-in-2025-complete-guide-to-the-most-popular-methods-and-operators/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/javascript-em-2025-guia-completo-metodos-operadores/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/javascript-in-2025-complete-guide-to-the-most-popular-methods-and-operators/" /><lastmod>2025-08-28</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/blog/langgraph-only-for-the-handoff-a-support-chatbot-where-a-decision-model-picks-who-answers/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/langgraph-only-for-the-handoff-a-support-chatbot-where-a-decision-model-picks-who-answers/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/langgraph-so-pro-handoff-um-chatbot-em-que-um-modelo-de-decisao-escolhe-quem-atende/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/langgraph-only-for-the-handoff-a-support-chatbot-where-a-decision-model-picks-who-answers/" /><lastmod>2026-10-16</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/pt/blog/langgraph-so-pro-handoff-um-chatbot-em-que-um-modelo-de-decisao-escolhe-quem-atende/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/langgraph-only-for-the-handoff-a-support-chatbot-where-a-decision-model-picks-who-answers/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/langgraph-so-pro-handoff-um-chatbot-em-que-um-modelo-de-decisao-escolhe-quem-atende/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/langgraph-only-for-the-handoff-a-support-chatbot-where-a-decision-model-picks-who-answers/" /><lastmod>2026-10-16</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/blog/metrics-to-measure-software-performance/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/metrics-to-measure-software-performance/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/metricas-para-medir-performance-em-software/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/metrics-to-measure-software-performance/" /><lastmod>2024-01-11</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/pt/blog/metricas-para-medir-performance-em-software/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/metrics-to-measure-software-performance/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/metricas-para-medir-performance-em-software/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/metrics-to-measure-software-performance/" /><lastmod>2024-01-11</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/blog/nestjs-monorepo-with-pnpm-workspaces-how-i-structured-the-dev-experience-for-multiple-services/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/nestjs-monorepo-with-pnpm-workspaces-how-i-structured-the-dev-experience-for-multiple-services/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/monorepo-nestjs-pnpm-workspaces-dev-experience/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/nestjs-monorepo-with-pnpm-workspaces-how-i-structured-the-dev-experience-for-multiple-services/" /><lastmod>2026-04-06</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/pt/blog/monorepo-nestjs-pnpm-workspaces-dev-experience/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/nestjs-monorepo-with-pnpm-workspaces-how-i-structured-the-dev-experience-for-multiple-services/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/monorepo-nestjs-pnpm-workspaces-dev-experience/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/nestjs-monorepo-with-pnpm-workspaces-how-i-structured-the-dev-experience-for-multiple-services/" /><lastmod>2026-04-06</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/blog/nuxt-4-new-directory-structure-and-migration-guide/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/nuxt-4-new-directory-structure-and-migration-guide/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/nuxt-4-nova-estrutura-diretorios-migracao/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/nuxt-4-new-directory-structure-and-migration-guide/" /><lastmod>2025-09-01</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/pt/blog/nuxt-4-nova-estrutura-diretorios-migracao/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/nuxt-4-new-directory-structure-and-migration-guide/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/nuxt-4-nova-estrutura-diretorios-migracao/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/nuxt-4-new-directory-structure-and-migration-guide/" /><lastmod>2025-09-01</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/blog/nuxt-4-typescript-and-type-safety-complete-guide/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/nuxt-4-typescript-and-type-safety-complete-guide/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/nuxt-4-typescript-type-safety/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/nuxt-4-typescript-and-type-safety-complete-guide/" /><lastmod>2025-09-07</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/pt/blog/nuxt-4-typescript-type-safety/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/nuxt-4-typescript-and-type-safety-complete-guide/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/nuxt-4-typescript-type-safety/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/nuxt-4-typescript-and-type-safety-complete-guide/" /><lastmod>2025-09-07</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/blog/how-to-add-webpack-package-analysis-to-your-nuxt-project/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/how-to-add-webpack-package-analysis-to-your-nuxt-project/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/nuxt-webpack-analyze/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/how-to-add-webpack-package-analysis-to-your-nuxt-project/" /><lastmod>2024-01-21</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/pt/blog/nuxt-webpack-analyze/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/how-to-add-webpack-package-analysis-to-your-nuxt-project/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/nuxt-webpack-analyze/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/how-to-add-webpack-package-analysis-to-your-nuxt-project/" /><lastmod>2024-01-21</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/blog/what-i-have-learned-from-building-a-product-with-spec-driven-development/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/what-i-have-learned-from-building-a-product-with-spec-driven-development/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/o-que-aprendi-com-spec-driven-development/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/what-i-have-learned-from-building-a-product-with-spec-driven-development/" /><lastmod>2026-04-08</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/pt/blog/o-que-aprendi-com-spec-driven-development/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/what-i-have-learned-from-building-a-product-with-spec-driven-development/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/o-que-aprendi-com-spec-driven-development/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/what-i-have-learned-from-building-a-product-with-spec-driven-development/" /><lastmod>2026-04-08</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/blog/what-are-micro-frontends/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/what-are-micro-frontends/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/o-que-sao-micro-frontends/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/what-are-micro-frontends/" /><lastmod>2022-07-08</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/pt/blog/o-que-sao-micro-frontends/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/what-are-micro-frontends/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/o-que-sao-micro-frontends/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/what-are-micro-frontends/" /><lastmod>2022-07-08</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/blog/optimizing-indexing-with-astro/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/optimizing-indexing-with-astro/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/otimizando-indexacao-com-astro/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/optimizing-indexing-with-astro/" /><lastmod>2025-06-15</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/pt/blog/otimizando-indexacao-com-astro/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/optimizing-indexing-with-astro/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/otimizando-indexacao-com-astro/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/optimizing-indexing-with-astro/" /><lastmod>2025-06-15</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/blog/react-is-a-view-library-not-an-architecture/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/react-is-a-view-library-not-an-architecture/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/react-e-uma-biblioteca-de-views-nao-uma-arquitetura/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/react-is-a-view-library-not-an-architecture/" /><lastmod>2026-06-29</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/pt/blog/react-e-uma-biblioteca-de-views-nao-uma-arquitetura/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/react-is-a-view-library-not-an-architecture/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/react-e-uma-biblioteca-de-views-nao-uma-arquitetura/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/react-is-a-view-library-not-an-architecture/" /><lastmod>2026-06-29</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/blog/reactivity-solidjs-vs-react-vs-vue/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/reactivity-solidjs-vs-react-vs-vue/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/reatividade-solidjs-v-react-vs-vue/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/reactivity-solidjs-vs-react-vs-vue/" /><lastmod>2025-06-06</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/pt/blog/reatividade-solidjs-v-react-vs-vue/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/reactivity-solidjs-vs-react-vs-vue/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/reatividade-solidjs-v-react-vs-vue/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/reactivity-solidjs-vs-react-vs-vue/" /><lastmod>2025-06-06</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/blog/vertical-slices-in-the-frontend-when-the-folder-tells-you-what-the-product-does/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/vertical-slices-in-the-frontend-when-the-folder-tells-you-what-the-product-does/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/vertical-slices-no-frontend-quando-a-pasta-conta-o-que-o-produto-faz/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/vertical-slices-in-the-frontend-when-the-folder-tells-you-what-the-product-does/" /><lastmod>2026-10-11</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/pt/blog/vertical-slices-no-frontend-quando-a-pasta-conta-o-que-o-produto-faz/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/blog/vertical-slices-in-the-frontend-when-the-folder-tells-you-what-the-product-does/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/blog/vertical-slices-no-frontend-quando-a-pasta-conta-o-que-o-produto-faz/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/blog/vertical-slices-in-the-frontend-when-the-folder-tells-you-what-the-product-does/" /><lastmod>2026-10-11</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/series/inside-llms/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/series/inside-llms/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/series/por-dentro-das-llms/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/series/inside-llms/" /><changefreq>monthly</changefreq><priority>0.7</priority></url>
<url><loc>https://gabrielcaiana.com/pt/series/por-dentro-das-llms/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/series/inside-llms/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/series/por-dentro-das-llms/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/series/inside-llms/" /><changefreq>monthly</changefreq><priority>0.7</priority></url>
<url><loc>https://gabrielcaiana.com/series/nuxt-4-in-practice/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/series/nuxt-4-in-practice/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/series/nuxt-4-na-prtica/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/series/nuxt-4-in-practice/" /><changefreq>monthly</changefreq><priority>0.7</priority></url>
<url><loc>https://gabrielcaiana.com/pt/series/nuxt-4-na-prtica/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/series/nuxt-4-in-practice/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/series/nuxt-4-na-prtica/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/series/nuxt-4-in-practice/" /><changefreq>monthly</changefreq><priority>0.7</priority></url>
<url><loc>https://gabrielcaiana.com/series/frontend-architecture-fundamentals/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/series/frontend-architecture-fundamentals/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/series/fundamentos-de-arquitetura-no-frontend/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/series/frontend-architecture-fundamentals/" /><changefreq>monthly</changefreq><priority>0.7</priority></url>
<url><loc>https://gabrielcaiana.com/pt/series/fundamentos-de-arquitetura-no-frontend/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/series/frontend-architecture-fundamentals/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/series/fundamentos-de-arquitetura-no-frontend/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/series/frontend-architecture-fundamentals/" /><changefreq>monthly</changefreq><priority>0.7</priority></url>
<url><loc>https://gabrielcaiana.com/guides/nuxt-vue/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/guides/nuxt-vue/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/guias/nuxt-e-vue/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/guides/nuxt-vue/" /><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/pt/guias/nuxt-e-vue/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/guides/nuxt-vue/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/guias/nuxt-e-vue/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/guides/nuxt-vue/" /><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/guides/frontend-architecture/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/guides/frontend-architecture/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/guias/arquitetura-frontend/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/guides/frontend-architecture/" /><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/pt/guias/arquitetura-frontend/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/guides/frontend-architecture/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/guias/arquitetura-frontend/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/guides/frontend-architecture/" /><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/guides/applied-ai/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/guides/applied-ai/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/guias/ia-aplicada/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/guides/applied-ai/" /><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/pt/guias/ia-aplicada/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/guides/applied-ai/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/guias/ia-aplicada/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/guides/applied-ai/" /><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/guides/web-performance/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/guides/web-performance/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/guias/performance-web/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/guides/web-performance/" /><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/pt/guias/performance-web/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/guides/web-performance/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/guias/performance-web/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/guides/web-performance/" /><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://gabrielcaiana.com/til/css-scroll-driven-animations/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/til/css-scroll-driven-animations/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/til/css-scroll-driven-animations/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/til/css-scroll-driven-animations/" /><lastmod>2025-06-10</lastmod><changefreq>yearly</changefreq><priority>0.4</priority></url>
<url><loc>https://gabrielcaiana.com/pt/til/css-scroll-driven-animations/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/til/css-scroll-driven-animations/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/til/css-scroll-driven-animations/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/til/css-scroll-driven-animations/" /><lastmod>2025-06-10</lastmod><changefreq>yearly</changefreq><priority>0.4</priority></url>
<url><loc>https://gabrielcaiana.com/til/vue-computed-getter-setter/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/til/vue-computed-getter-setter/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/til/vue-computed-getter-setter/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/til/vue-computed-getter-setter/" /><lastmod>2025-06-18</lastmod><changefreq>yearly</changefreq><priority>0.4</priority></url>
<url><loc>https://gabrielcaiana.com/pt/til/vue-computed-getter-setter/</loc><xhtml:link rel="alternate" hreflang="en" href="https://gabrielcaiana.com/til/vue-computed-getter-setter/" /><xhtml:link rel="alternate" hreflang="pt-BR" href="https://gabrielcaiana.com/pt/til/vue-computed-getter-setter/" /><xhtml:link rel="alternate" hreflang="x-default" href="https://gabrielcaiana.com/til/vue-computed-getter-setter/" /><lastmod>2025-06-18</lastmod><changefreq>yearly</changefreq><priority>0.4</priority></url>
</urlset>