<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url><loc>https://mhenrixon.com/blog/zero-downtime-active-storage-migration-with-rails-mirroring</loc><lastmod>2026-04-13</lastmod></url>
  <url><loc>https://mhenrixon.com/blog/sidekiq-unique-jobs-v9</loc><lastmod>2026-03-28</lastmod></url>
  <url><loc>https://mhenrixon.com/blog/infinite-scroll-with-phlex</loc><lastmod>2026-08-23</lastmod></url>
  <url><loc>https://mhenrixon.com/blog/using-uuidv7-with-ruby-on-rails</loc><lastmod>2025-09-04</lastmod></url>
  <url><loc>https://mhenrixon.com/blog/extracting-tenants-from-a-monolith</loc><lastmod>2025-03-27</lastmod></url>
  <url><loc>https://mhenrixon.com/blog/empty-jobs-empty-promises-the-case-against-sidekiq-s-speed-claims</loc><lastmod>2025-03-19</lastmod></url>
  <url><loc>https://mhenrixon.com/blog/supercharge-your-rails-blog-postgresql-full-text-search-without-the-complexity</loc><lastmod>2025-03-19</lastmod></url>
  <url><loc>https://mhenrixon.com/blog/customizing-trix-editor-with-daisyui-and-tailwindcss</loc><lastmod>2025-03-19</lastmod></url>
  <url><loc>https://mhenrixon.com/blog/slimming-down-your-docker-images-lessons-from-svg-icon-filtering</loc><lastmod>2025-03-19</lastmod></url>
  <url><loc>https://mhenrixon.com/blog/building-a-custom-page-finder-for-rails-beyond-high-voltage</loc><lastmod>2025-03-19</lastmod></url>
  <url><loc>https://mhenrixon.com/blog/a-redis-schedule-for-sidekiq-jobs</loc><lastmod>2025-03-02</lastmod></url>
  <url><loc>https://mhenrixon.com/blog/how-to-use-kamal-destinations</loc><lastmod>2025-03-02</lastmod></url>
  <url><loc>https://mhenrixon.com/blog/server-provisioning-for-a-kamal-setup</loc><lastmod>2025-03-02</lastmod></url>
  <url><loc>https://mhenrixon.com/blog/upgrading-kamal-to-v2</loc><lastmod>2025-03-02</lastmod></url>
  <url><loc>https://mhenrixon.com/blog/how-to-group-a-complex-pg_search-query</loc><lastmod>2025-03-02</lastmod></url>
  <url><loc>https://mhenrixon.com/blog/killing-db-connections-softly-with-rake-tasks</loc><lastmod>2025-03-02</lastmod></url>
  <url><loc>https://mhenrixon.com/blog/animated-gifs</loc><lastmod>2025-03-02</lastmod></url>
  <url><loc>https://mhenrixon.com/blog/a-custom-date-picker</loc><lastmod>2025-03-02</lastmod></url>
  <url><loc>https://mhenrixon.com/blog/taggable-array</loc><lastmod>2025-03-02</lastmod></url>
  <url><loc>https://mhenrixon.com/blog/kamal-deploy-renders-site-unresponsive</loc><lastmod>2025-03-02</lastmod></url>
  <url><loc>https://mhenrixon.com/blog/turbo-confirm</loc><lastmod>2025-03-02</lastmod></url>
  <url><loc>https://mhenrixon.com/blog/replacing-js-erb-with-turbo_stream-erb</loc><lastmod>2025-03-02</lastmod></url>
  <url><loc>https://mhenrixon.com/blog/recursion-is-soft</loc><lastmod>2025-03-02</lastmod></url>
  <url><loc>https://mhenrixon.com/blog/heredoc-syntax-highlighting</loc><lastmod>2025-03-02</lastmod></url>
  <url><loc>https://mhenrixon.com/blog/redis-as-a-sidekiq-queue-in-docker</loc><lastmod>2025-03-02</lastmod></url>
  <url><loc>https://mhenrixon.com/blog/using-session-cookies-directly-in-playwright</loc><lastmod>2025-03-02</lastmod></url>
  <url><loc>https://mhenrixon.com/blog/client-side-rate-limiter</loc><lastmod>2025-03-02</lastmod></url>
  <url><loc>https://mhenrixon.com/blog/high-performant-ruby-installations</loc><lastmod>2025-03-02</lastmod></url>
  <url><loc>https://mhenrixon.com/blog/using-systemd-to-monitor-puma</loc><lastmod>2025-03-02</lastmod></url>
  <url><loc>https://mhenrixon.com/blog/how-to-share-rails-partials</loc><lastmod>2025-03-02</lastmod></url>
  <url><loc>https://mhenrixon.com/blog/serving-custom-fonts-with-cssbundling-rails</loc><lastmod>2025-03-02</lastmod></url>
</urlset>
