<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
  <url>
    <loc>https://www.dotruby.com/</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/imprint</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/privacy</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/about</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/brand</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/articles</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/tags</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/articles/how-to-install-docker-and-docker-compose-on-raspberry-pi</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/articles/catch-your-emails-in-rails-development-with-mailhog</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/articles/using-tailwind-css-and-bootstrap-side-by-side-in-rails</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/articles/raspberry-pi-setup</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/articles/split-your-routes-rb-file-into-logical-parts</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/articles/count-occurrences-with-the-tally-method</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/articles/use-gems-from-private-github-repos</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/articles/profiling-zsh-setup-with-zprof</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/articles/accessing-tailwindcss-configurations-from-javascript</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/articles/rendering-variant-templates-of-view-components-outside-of-the-current-request</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/articles/add-zeitwerk-check-rake-task-to-you-ci-system</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/articles/cleaning-up-with-clearing-rake-tasks</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/articles/use-css-grid-to-stack-items</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/articles/purge-unattached-activestorage-blobs</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/articles/introducing-railsbootui-rails-view-components-for-bootstrap</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/articles/unlocking-the-superpower-of-regular-expressions-in-find-and-replace-for-visual-studio-code</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/articles/how-to-customize-rails-form-error-handling</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/articles/interactive-git-checkout</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/articles/how-to-create-a-custom-error-page-in-rails</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/articles/enhancing-esbuild-error-handling-in-a-rails-app</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/articles/from-sticky-to-pinned-a-stimulus-controller-approach</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/articles/hide-scrollbars-while-keeping-scrolling-intact</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/articles/organizing-mailer-templates-with-prepend-view-path-in-rails</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/articles/use-rails-i18n-for-more-than-translations</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/articles/easy-redesign-in-rails-run-old-and-new-side-by-side-with-variants</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/articles/unlocking-rails-cycle-a-hidden-gem-for-views</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/articles/migrating-a-legacy-database-into-an-existing-rails-app</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/articles/rails-without-ruby</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/articles/improving-turbo-frame-ux-with-the-busy-attribute</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/articles/adding-file-validation-to-lexxy-editor-with-stimulus</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/articles/how-to-expose-your-rails-localhost-securely-using-cloudflare-tunnel</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/articles/run-stripe-cli-in-docker-compose</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/tags/tailwindcss</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/tags/bootstrap</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/tags/action-mailer</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/tags/raspberrypi</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/tags/docker</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/tags/ruby</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/tags/rails</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/tags/view-components</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/tags/visual-studio-code</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/tags/regex</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/tags/active-storage</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/tags/zsh</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/tags/ohmyzsh</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/tags/css</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/tags/github</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/tags/git</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/tags/stimulusjs</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/tags/esbuild</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/tags/javascript</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/tags/design</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/tags/dev-containers</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/tags/turbo</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/tools/hexapdf-form-fields</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/tools/xpath-playground</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/tools/svg-signature-generator</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
  <url>
    <loc>https://www.dotruby.com/tools</loc>
    <lastmod>2026-03-30T00:00:00+02:00</lastmod>
  </url>
</urlset>
