I Stopped Paying $49/Month for Uptime Monitoring — A GitHub Actions Cron Job Watches 12 Sites for $0
Description and use
The author replaced a paid uptime monitoring SaaS with a free GitHub Actions cron job that checks 12 sites every 5 minutes, opening a GitHub issue on failure. Over 8 months, no outages were missed, cost $0, using 520 minutes of the 2000 free minutes.
Problem
Need inexpensive, reliable uptime monitoring for 12 sites with 5‑minute checks and email alerts.
Outcome
Zero cost uptime monitoring for 12 sites, 5‑minute granularity, no missed outages, ~3 false positives/month, 520 minutes/month used out of 2000 free minutes.
Workflow
- Create .github/workflows/uptime.yml with schedule cron every 5 minutes
- Define matrix of 12 site URLs
- Run curl to get HTTP status code with timeout
- If status not 200, use actions/github-script to create issue titled "DOWN:
<site>" with body containing HTTP code and timestamp - Receive issue notifications via email and GitHub app
- Manually close issue to log recovery
Evidence
8‑month cost $392 for SaaS vs $0 for GHA
Failure opens a GitHub issue → issue notifications hit my email and phone via the GitHub app
- Record date: 2026-09-19T21:15:27.381Z