<?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://rubyinsights.blog/tutorials</loc>
  </url>
  <url>
    <loc>https://rubyinsights.blog/</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/"/>
  </url>
  <url>
    <loc>https://rubyinsights.blog/pt-br</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/"/>
  </url>
  <url>
    <loc>https://rubyinsights.blog/about</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/about"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/about"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/about"/>
  </url>
  <url>
    <loc>https://rubyinsights.blog/pt-br/about</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/about"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/about"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/about"/>
  </url>
  <url>
    <loc>https://rubyinsights.blog/why-ruby-on-rails</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/why-ruby-on-rails"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/why-ruby-on-rails"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/why-ruby-on-rails"/>
  </url>
  <url>
    <loc>https://rubyinsights.blog/pt-br/why-ruby-on-rails</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/why-ruby-on-rails"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/why-ruby-on-rails"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/why-ruby-on-rails"/>
  </url>
  <url>
    <loc>https://rubyinsights.blog/en/privacy-policy</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/privacy-policy"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/privacy-policy"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/privacy-policy"/>
  </url>
  <url>
    <loc>https://rubyinsights.blog/pt-br/privacy-policy</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/privacy-policy"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/privacy-policy"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/privacy-policy"/>
  </url>
  <url>
    <loc>https://rubyinsights.blog/en/cookie-policy</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/cookie-policy"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/cookie-policy"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/cookie-policy"/>
  </url>
  <url>
    <loc>https://rubyinsights.blog/pt-br/cookie-policy</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/cookie-policy"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/cookie-policy"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/cookie-policy"/>
  </url>
  <url>
    <loc>https://rubyinsights.blog/en/terms-of-use</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/terms-of-use"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/terms-of-use"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/terms-of-use"/>
  </url>
  <url>
    <loc>https://rubyinsights.blog/pt-br/terms-of-use</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/terms-of-use"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/terms-of-use"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/terms-of-use"/>
  </url>
  <url>
    <loc>https://rubyinsights.blog/en/contact</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/contact"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/contact"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/contact"/>
  </url>
  <url>
    <loc>https://rubyinsights.blog/pt-br/contact</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/contact"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/contact"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/contact"/>
  </url>
  <url>
    <loc>https://rubyinsights.blog/en/blog</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/blog"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/blog"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/blog"/>
    <lastmod>2026-10-13T15:24:27Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/pt-br/blog</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/blog"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/blog"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/blog"/>
    <lastmod>2026-10-13T15:24:27Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/en/blog/ai-with-ruby-and-rails-a-practical-guide-with-rubyllm</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/blog/ai-with-ruby-and-rails-a-practical-guide-with-rubyllm"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/blog/ia-com-ruby-e-rails-um-guia-pratico-com-rubyllm"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/blog/ai-with-ruby-and-rails-a-practical-guide-with-rubyllm"/>
    <lastmod>2026-10-13T15:24:27Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/en/blog/ssm-session-manager-ecs-exec-terraform</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/blog/ssm-session-manager-ecs-exec-terraform"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/blog/aposente-o-ssh-no-ecs-session-manager-e-ecs-exec-com-terraform"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/blog/ssm-session-manager-ecs-exec-terraform"/>
    <lastmod>2026-10-12T20:57:14Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/en/blog/deploying-a-rails-8-app-to-a-vps-with-kamal-2-a-practical-guide</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/blog/deploying-a-rails-8-app-to-a-vps-with-kamal-2-a-practical-guide"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/blog/deploy-de-uma-app-rails-8-em-uma-vps-com-kamal-2-um-guia-pratico"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/blog/deploying-a-rails-8-app-to-a-vps-with-kamal-2-a-practical-guide"/>
    <lastmod>2026-10-10T23:05:52Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/en/blog/your-spa-shares-as-a-blank-card-fixing-link-previews-with-a-lambda-in-front-of-amplify</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/blog/your-spa-shares-as-a-blank-card-fixing-link-previews-with-a-lambda-in-front-of-amplify"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/blog/links-da-sua-spa-viram-cards-em-branco-corrigindo-previews-com-uma-lambda-na-frente-do-amplify"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/blog/your-spa-shares-as-a-blank-card-fixing-link-previews-with-a-lambda-in-front-of-amplify"/>
    <lastmod>2026-10-09T17:06:34Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/en/blog/rails-8-with-inertia-and-react-hotwire-alternative-guide</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/blog/rails-8-with-inertia-and-react-hotwire-alternative-guide"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/blog/rails-8-inertia-e-react-construindo-um-admin-em-tempo-real-sem-sair-do-monolito"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/blog/rails-8-with-inertia-and-react-hotwire-alternative-guide"/>
    <lastmod>2026-10-08T21:05:22Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/en/blog/shrinking-a-130-gb-postgres-to-a-local-copy-with-greenmask-what-worked-and-what-broke</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/blog/shrinking-a-130-gb-postgres-to-a-local-copy-with-greenmask-what-worked-and-what-broke"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/blog/reduzindo-um-postgres-de-130-gb-a-uma-copia-local-com-greenmask-o-que-funcionou-e-o-que-quebrou"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/blog/shrinking-a-130-gb-postgres-to-a-local-copy-with-greenmask-what-worked-and-what-broke"/>
    <lastmod>2026-10-09T02:29:26Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/en/blog/lexxy-10-ships-rails-main-requires-ruby-335-and-three-frontier-labs-land-on-210</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/blog/lexxy-10-ships-rails-main-requires-ruby-335-and-three-frontier-labs-land-on-210"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/blog/lexxy-10-chega-o-main-do-rails-exige-ruby-335-e-tres-laboratorios-de-ia-cravam-us-2us-10"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/blog/lexxy-10-ships-rails-main-requires-ruby-335-and-three-frontier-labs-land-on-210"/>
    <lastmod>2026-10-04T19:42:32Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/en/blog/ruby-rails-ai-daily-dhh-goes-pencils-down-at-rails-world-as-agents-keep-jumping-the-fence</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/blog/ruby-rails-ai-daily-dhh-goes-pencils-down-at-rails-world-as-agents-keep-jumping-the-fence"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/blog/ruby-rails-ia-diario-dhh-decreta-pencils-down-no-rails-world-enquanto-agentes-pulam-a-cerca"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/blog/ruby-rails-ai-daily-dhh-goes-pencils-down-at-rails-world-as-agents-keep-jumping-the-fence"/>
    <lastmod>2026-09-24T20:37:41Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/en/blog/ruby-insights-daily-rubyllm-20-hits-rc-rails-turns-ractor-safe-and-active-storage-is-under-attack</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/blog/ruby-insights-daily-rubyllm-20-hits-rc-rails-turns-ractor-safe-and-active-storage-is-under-attack"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/blog/rubyinsights-daily-rubyllm-20-chega-em-rc-rails-fica-ractor-safe-e-active-storage-esta-sob-ataque"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/blog/ruby-insights-daily-rubyllm-20-hits-rc-rails-turns-ractor-safe-and-active-storage-is-under-attack"/>
    <lastmod>2026-09-08T23:10:18Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/en/blog/ruby-rails-ai-weekly-roundup-kindarails2shell-under-active-attack-ractor-ready-rails-and-zjit-inlines-the-gc-aug-30-sep-6-2026</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/blog/ruby-rails-ai-weekly-roundup-kindarails2shell-under-active-attack-ractor-ready-rails-and-zjit-inlines-the-gc-aug-30-sep-6-2026"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/blog/resumo-semanal-ruby-rails-ia-kindarails2shell-sob-exploracao-ativa-rails-rumo-aos-ractors-e-zjit-acelera-o-gc-30-de-ago-6-de-set-2026"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/blog/ruby-rails-ai-weekly-roundup-kindarails2shell-under-active-attack-ractor-ready-rails-and-zjit-inlines-the-gc-aug-30-sep-6-2026"/>
    <lastmod>2026-09-07T22:10:41Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/en/blog/ruby-rails-ai-weekly-roundup-resolv-gem-dns-flaws-lemans-goes-open-source-and-rubyllm-20-aug-2330-2026</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/blog/ruby-rails-ai-weekly-roundup-resolv-gem-dns-flaws-lemans-goes-open-source-and-rubyllm-20-aug-2330-2026"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/blog/roundup-semanal-de-ruby-rails-e-ia-falhas-de-dns-na-gem-resolv-lemans-em-open-source-e-rubyllm-20-2330-de-agosto-de-2026"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/blog/ruby-rails-ai-weekly-roundup-resolv-gem-dns-flaws-lemans-goes-open-source-and-rubyllm-20-aug-2330-2026"/>
    <lastmod>2026-09-01T00:25:19Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/en/blog/ruby-rails-ai-weekly-roundup-rails-72-reaches-end-of-life-the-agents-on-rails-benchmark-and-http-query-aug-915-2026</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/blog/ruby-rails-ai-weekly-roundup-rails-72-reaches-end-of-life-the-agents-on-rails-benchmark-and-http-query-aug-915-2026"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/blog/roundup-semanal-ruby-rails-ia-rails-72-chega-ao-fim-da-vida-o-benchmark-agents-on-rails-e-o-http-query-915-de-agosto-de-2026"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/blog/ruby-rails-ai-weekly-roundup-rails-72-reaches-end-of-life-the-agents-on-rails-benchmark-and-http-query-aug-915-2026"/>
    <lastmod>2026-08-21T21:15:22Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/en/blog/ruby-3410-proxylogger-in-rails-and-the-week-ai-took-a-seat-at-the-government-table</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/blog/ruby-3410-proxylogger-in-rails-and-the-week-ai-took-a-seat-at-the-government-table"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/blog/ruby-3410-proxylogger-no-rails-e-a-semana-em-que-a-ia-sentou-a-mesa-dos-governos"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/blog/ruby-3410-proxylogger-in-rails-and-the-week-ai-took-a-seat-at-the-government-table"/>
    <lastmod>2026-07-05T23:55:30Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/en/blog/the-2026-framework-paradox-why-the-big-three-are-becoming-identical-and-hotwire-is-taking-the-rest</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/blog/the-2026-framework-paradox-why-the-big-three-are-becoming-identical-and-hotwire-is-taking-the-rest"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/blog/o-paradoxo-dos-frameworks-de-2026-por-que-os-tres-grandes-estao-se-tornando-identicos-e-o-hotwire-esta-dominando-o-resto"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/blog/the-2026-framework-paradox-why-the-big-three-are-becoming-identical-and-hotwire-is-taking-the-rest"/>
    <lastmod>2026-04-01T00:46:49Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/en/blog/the-vibe-coding-paradox-6-brutal-truths-redefining-software-in-2026</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/blog/the-vibe-coding-paradox-6-brutal-truths-redefining-software-in-2026"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/blog/o-paradoxo-do-vibe-coding-6-verdades-brutais-que-redefinem-o-software-em-2026"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/blog/the-vibe-coding-paradox-6-brutal-truths-redefining-software-in-2026"/>
    <lastmod>2026-10-13T01:47:01Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/en/blog/the-sovereign-monolith-how-ruby-4-and-rails-8-are-killing-the-merchants-of-complexity</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/blog/the-sovereign-monolith-how-ruby-4-and-rails-8-are-killing-the-merchants-of-complexity"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/blog/o-monolito-soberano-como-o-ruby-4-e-o-rails-8-estao-matando-os-mercadores-da-complexidade"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/blog/the-sovereign-monolith-how-ruby-4-and-rails-8-are-killing-the-merchants-of-complexity"/>
    <lastmod>2026-03-25T00:55:06Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/en/blog/ruby-40-is-released-with-ruby-box-zjit-and-performance-advances</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/blog/ruby-40-is-released-with-ruby-box-zjit-and-performance-advances"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/blog/ruby-40-e-lancado-com-ruby-box-zjit-e-avancos-de-performance"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/blog/ruby-40-is-released-with-ruby-box-zjit-and-performance-advances"/>
    <lastmod>2026-10-13T01:55:32Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/en/blog/30-years-of-ruby</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/blog/30-years-of-ruby"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/blog/30-anos-de-ruby"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/blog/30-years-of-ruby"/>
    <lastmod>2026-10-13T02:00:24Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/pt-br/blog/ia-com-ruby-e-rails-um-guia-pratico-com-rubyllm</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/blog/ai-with-ruby-and-rails-a-practical-guide-with-rubyllm"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/blog/ia-com-ruby-e-rails-um-guia-pratico-com-rubyllm"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/blog/ai-with-ruby-and-rails-a-practical-guide-with-rubyllm"/>
    <lastmod>2026-10-13T15:24:27Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/pt-br/blog/aposente-o-ssh-no-ecs-session-manager-e-ecs-exec-com-terraform</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/blog/ssm-session-manager-ecs-exec-terraform"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/blog/aposente-o-ssh-no-ecs-session-manager-e-ecs-exec-com-terraform"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/blog/ssm-session-manager-ecs-exec-terraform"/>
    <lastmod>2026-10-12T20:57:14Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/pt-br/blog/deploy-de-uma-app-rails-8-em-uma-vps-com-kamal-2-um-guia-pratico</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/blog/deploying-a-rails-8-app-to-a-vps-with-kamal-2-a-practical-guide"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/blog/deploy-de-uma-app-rails-8-em-uma-vps-com-kamal-2-um-guia-pratico"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/blog/deploying-a-rails-8-app-to-a-vps-with-kamal-2-a-practical-guide"/>
    <lastmod>2026-10-10T23:05:52Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/pt-br/blog/links-da-sua-spa-viram-cards-em-branco-corrigindo-previews-com-uma-lambda-na-frente-do-amplify</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/blog/your-spa-shares-as-a-blank-card-fixing-link-previews-with-a-lambda-in-front-of-amplify"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/blog/links-da-sua-spa-viram-cards-em-branco-corrigindo-previews-com-uma-lambda-na-frente-do-amplify"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/blog/your-spa-shares-as-a-blank-card-fixing-link-previews-with-a-lambda-in-front-of-amplify"/>
    <lastmod>2026-10-09T17:06:34Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/pt-br/blog/rails-8-inertia-e-react-construindo-um-admin-em-tempo-real-sem-sair-do-monolito</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/blog/rails-8-with-inertia-and-react-hotwire-alternative-guide"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/blog/rails-8-inertia-e-react-construindo-um-admin-em-tempo-real-sem-sair-do-monolito"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/blog/rails-8-with-inertia-and-react-hotwire-alternative-guide"/>
    <lastmod>2026-10-08T21:05:22Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/pt-br/blog/reduzindo-um-postgres-de-130-gb-a-uma-copia-local-com-greenmask-o-que-funcionou-e-o-que-quebrou</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/blog/shrinking-a-130-gb-postgres-to-a-local-copy-with-greenmask-what-worked-and-what-broke"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/blog/reduzindo-um-postgres-de-130-gb-a-uma-copia-local-com-greenmask-o-que-funcionou-e-o-que-quebrou"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/blog/shrinking-a-130-gb-postgres-to-a-local-copy-with-greenmask-what-worked-and-what-broke"/>
    <lastmod>2026-10-09T02:29:26Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/pt-br/blog/lexxy-10-chega-o-main-do-rails-exige-ruby-335-e-tres-laboratorios-de-ia-cravam-us-2us-10</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/blog/lexxy-10-ships-rails-main-requires-ruby-335-and-three-frontier-labs-land-on-210"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/blog/lexxy-10-chega-o-main-do-rails-exige-ruby-335-e-tres-laboratorios-de-ia-cravam-us-2us-10"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/blog/lexxy-10-ships-rails-main-requires-ruby-335-and-three-frontier-labs-land-on-210"/>
    <lastmod>2026-10-04T19:42:32Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/pt-br/blog/ruby-rails-ia-diario-dhh-decreta-pencils-down-no-rails-world-enquanto-agentes-pulam-a-cerca</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/blog/ruby-rails-ai-daily-dhh-goes-pencils-down-at-rails-world-as-agents-keep-jumping-the-fence"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/blog/ruby-rails-ia-diario-dhh-decreta-pencils-down-no-rails-world-enquanto-agentes-pulam-a-cerca"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/blog/ruby-rails-ai-daily-dhh-goes-pencils-down-at-rails-world-as-agents-keep-jumping-the-fence"/>
    <lastmod>2026-09-24T20:37:41Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/pt-br/blog/rubyinsights-daily-rubyllm-20-chega-em-rc-rails-fica-ractor-safe-e-active-storage-esta-sob-ataque</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/blog/ruby-insights-daily-rubyllm-20-hits-rc-rails-turns-ractor-safe-and-active-storage-is-under-attack"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/blog/rubyinsights-daily-rubyllm-20-chega-em-rc-rails-fica-ractor-safe-e-active-storage-esta-sob-ataque"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/blog/ruby-insights-daily-rubyllm-20-hits-rc-rails-turns-ractor-safe-and-active-storage-is-under-attack"/>
    <lastmod>2026-09-08T23:10:19Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/pt-br/blog/resumo-semanal-ruby-rails-ia-kindarails2shell-sob-exploracao-ativa-rails-rumo-aos-ractors-e-zjit-acelera-o-gc-30-de-ago-6-de-set-2026</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/blog/ruby-rails-ai-weekly-roundup-kindarails2shell-under-active-attack-ractor-ready-rails-and-zjit-inlines-the-gc-aug-30-sep-6-2026"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/blog/resumo-semanal-ruby-rails-ia-kindarails2shell-sob-exploracao-ativa-rails-rumo-aos-ractors-e-zjit-acelera-o-gc-30-de-ago-6-de-set-2026"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/blog/ruby-rails-ai-weekly-roundup-kindarails2shell-under-active-attack-ractor-ready-rails-and-zjit-inlines-the-gc-aug-30-sep-6-2026"/>
    <lastmod>2026-09-07T22:10:41Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/pt-br/blog/roundup-semanal-de-ruby-rails-e-ia-falhas-de-dns-na-gem-resolv-lemans-em-open-source-e-rubyllm-20-2330-de-agosto-de-2026</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/blog/ruby-rails-ai-weekly-roundup-resolv-gem-dns-flaws-lemans-goes-open-source-and-rubyllm-20-aug-2330-2026"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/blog/roundup-semanal-de-ruby-rails-e-ia-falhas-de-dns-na-gem-resolv-lemans-em-open-source-e-rubyllm-20-2330-de-agosto-de-2026"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/blog/ruby-rails-ai-weekly-roundup-resolv-gem-dns-flaws-lemans-goes-open-source-and-rubyllm-20-aug-2330-2026"/>
    <lastmod>2026-09-01T00:25:19Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/pt-br/blog/roundup-semanal-ruby-rails-ia-rails-72-chega-ao-fim-da-vida-o-benchmark-agents-on-rails-e-o-http-query-915-de-agosto-de-2026</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/blog/ruby-rails-ai-weekly-roundup-rails-72-reaches-end-of-life-the-agents-on-rails-benchmark-and-http-query-aug-915-2026"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/blog/roundup-semanal-ruby-rails-ia-rails-72-chega-ao-fim-da-vida-o-benchmark-agents-on-rails-e-o-http-query-915-de-agosto-de-2026"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/blog/ruby-rails-ai-weekly-roundup-rails-72-reaches-end-of-life-the-agents-on-rails-benchmark-and-http-query-aug-915-2026"/>
    <lastmod>2026-08-21T21:15:23Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/pt-br/blog/ruby-3410-proxylogger-no-rails-e-a-semana-em-que-a-ia-sentou-a-mesa-dos-governos</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/blog/ruby-3410-proxylogger-in-rails-and-the-week-ai-took-a-seat-at-the-government-table"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/blog/ruby-3410-proxylogger-no-rails-e-a-semana-em-que-a-ia-sentou-a-mesa-dos-governos"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/blog/ruby-3410-proxylogger-in-rails-and-the-week-ai-took-a-seat-at-the-government-table"/>
    <lastmod>2026-07-05T23:55:31Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/pt-br/blog/o-paradoxo-dos-frameworks-de-2026-por-que-os-tres-grandes-estao-se-tornando-identicos-e-o-hotwire-esta-dominando-o-resto</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/blog/the-2026-framework-paradox-why-the-big-three-are-becoming-identical-and-hotwire-is-taking-the-rest"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/blog/o-paradoxo-dos-frameworks-de-2026-por-que-os-tres-grandes-estao-se-tornando-identicos-e-o-hotwire-esta-dominando-o-resto"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/blog/the-2026-framework-paradox-why-the-big-three-are-becoming-identical-and-hotwire-is-taking-the-rest"/>
    <lastmod>2026-04-01T00:46:49Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/pt-br/blog/o-paradoxo-do-vibe-coding-6-verdades-brutais-que-redefinem-o-software-em-2026</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/blog/the-vibe-coding-paradox-6-brutal-truths-redefining-software-in-2026"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/blog/o-paradoxo-do-vibe-coding-6-verdades-brutais-que-redefinem-o-software-em-2026"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/blog/the-vibe-coding-paradox-6-brutal-truths-redefining-software-in-2026"/>
    <lastmod>2026-10-13T01:47:01Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/pt-br/blog/o-monolito-soberano-como-o-ruby-4-e-o-rails-8-estao-matando-os-mercadores-da-complexidade</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/blog/the-sovereign-monolith-how-ruby-4-and-rails-8-are-killing-the-merchants-of-complexity"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/blog/o-monolito-soberano-como-o-ruby-4-e-o-rails-8-estao-matando-os-mercadores-da-complexidade"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/blog/the-sovereign-monolith-how-ruby-4-and-rails-8-are-killing-the-merchants-of-complexity"/>
    <lastmod>2026-03-25T14:41:01Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/pt-br/blog/ruby-40-e-lancado-com-ruby-box-zjit-e-avancos-de-performance</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/blog/ruby-40-is-released-with-ruby-box-zjit-and-performance-advances"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/blog/ruby-40-e-lancado-com-ruby-box-zjit-e-avancos-de-performance"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/blog/ruby-40-is-released-with-ruby-box-zjit-and-performance-advances"/>
    <lastmod>2026-10-13T01:55:32Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/pt-br/blog/30-anos-de-ruby</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://rubyinsights.blog/en/blog/30-years-of-ruby"/>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://rubyinsights.blog/pt-br/blog/30-anos-de-ruby"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://rubyinsights.blog/en/blog/30-years-of-ruby"/>
    <lastmod>2026-10-13T02:00:24Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/categories/web-development</loc>
    <lastmod>2026-10-13T01:47:01Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/categories/rails</loc>
    <lastmod>2026-10-04T19:42:32Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/categories/ruby</loc>
    <lastmod>2026-10-13T02:00:24Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/tags/active-record</loc>
    <lastmod>2026-09-07T22:10:41Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/tags/ai</loc>
    <lastmod>2026-10-13T15:24:27Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/tags/anthropic</loc>
    <lastmod>2026-09-24T20:37:41Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/tags/hotwire</loc>
    <lastmod>2026-10-08T21:05:22Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/tags/javascript</loc>
    <lastmod>2026-10-09T17:06:34Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/tags/openai</loc>
    <lastmod>2026-10-04T19:42:32Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/tags/performance</loc>
    <lastmod>2026-10-13T01:55:32Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/tags/ractor</loc>
    <lastmod>2026-10-13T01:55:32Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/tags/rails</loc>
    <lastmod>2026-10-13T15:24:27Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/tags/rails-8</loc>
    <lastmod>2026-10-10T23:05:52Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/tags/react</loc>
    <lastmod>2026-10-09T17:06:34Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/tags/ruby</loc>
    <lastmod>2026-10-13T15:24:27Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/tags/ruby-on-rails</loc>
    <lastmod>2026-10-13T01:55:32Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/tags/security</loc>
    <lastmod>2026-10-12T20:57:14Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/tags/vite</loc>
    <lastmod>2026-10-10T23:05:52Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/tags/web-development</loc>
    <lastmod>2026-09-08T23:10:18Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/tags/weekly-roundup</loc>
    <lastmod>2026-09-07T22:10:41Z</lastmod>
  </url>
  <url>
    <loc>https://rubyinsights.blog/tags/zjit</loc>
    <lastmod>2026-10-13T01:55:32Z</lastmod>
  </url>
</urlset>
