<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://runhooks.app/blog/keeping-koyeb-free-tier-awake/</loc>
    <lastmod>2026-05-20</lastmod>
  </url>
  <url>
    <loc>https://runhooks.app/blog/preventing-supabase-free-tier-pausing/</loc>
    <lastmod>2026-05-20</lastmod>
  </url>
  <url>
    <loc>https://runhooks.app/blog/scheduling-firebase-functions-without-cloud-scheduler/</loc>
    <lastmod>2026-05-20</lastmod>
  </url>
  <url>
    <loc>https://runhooks.app/blog/automating-stripe-reconciliation-with-scheduled-syncs/</loc>
    <lastmod>2026-05-13</lastmod>
  </url>
  <url>
    <loc>https://runhooks.app/blog/synchronizing-paddle-billing-transactions/</loc>
    <lastmod>2026-05-13</lastmod>
  </url>
  <url>
    <loc>https://runhooks.app/blog/bypassing-vercel-hobby-plan-cron-limit/</loc>
    <lastmod>2026-05-06</lastmod>
  </url>
  <url>
    <loc>https://runhooks.app/blog/offloading-database-maintenance-to-off-peak-hours/</loc>
    <lastmod>2026-05-17</lastmod>
  </url>
  <url>
    <loc>https://runhooks.app/blog/eliminating-render-free-tier-cold-starts/</loc>
    <lastmod>2026-05-04</lastmod>
  </url>
  <url>
    <loc>https://runhooks.app/blog/scheduled-http-requests-vs-cron-jobs/</loc>
    <lastmod>2026-05-17</lastmod>
  </url>
  <url>
    <loc>https://runhooks.app/blog/why-cron-jobs-fail-in-production/</loc>
    <lastmod>2026-05-17</lastmod>
  </url>
  <url>
    <loc>https://runhooks.app/blog/pitfalls-of-classic-cron-jobs/</loc>
    <lastmod>2026-05-17</lastmod>
  </url>
  <url>
    <loc>https://runhooks.app/blog/what-is-a-cron-job/</loc>
    <lastmod>2026-05-17</lastmod>
  </url>
</urlset>
