DEV Community

Alex Chen
Alex Chen

Posted on

I Stopped Paying $20/Month for a Status Page — GitHub Actions Checks My Sites for Free

My three side projects needed a status page. Statuspage.io wanted $20/month — $240 a year to tell people "yes, the site is down."

I replaced it with Upptime: an open-source monitor that runs on GitHub Actions' free tier, commits uptime data to git, and publishes a status page on GitHub Pages. Total cost: $0. Setup time: 25 minutes.

What You Get for Free

Feature Statuspage.io ($20/mo) Upptime ($0)
Check interval 30s (paid tiers) 5 min (Actions cron limit)
Response time graphs ✅ (auto-generated weekly)
Incident history ✅ (GitHub Issues)
Custom domain Paid plan ✅ free (Pages + CNAME)
SLA / audit trail Enterprise Every check is a git commit

The Setup

# .upptimerc.yml — the entire config
sites:
  - name: API
    url: https://api.example.com/health
  - name: Blog
    url: https://blog.example.com
    expectedStatusCodes: [200, 301]

status-website:
  cname: status.example.com
  name: byteox status
Enter fullscreen mode Exit fullscreen mode

Fork the Upptime template, edit one YAML file, enable GitHub Pages. Done. It opens a GitHub Issue when a site goes down and closes it when it recovers — your incident log is your issue tracker.

4 Months of Real Numbers

  • 3 sites monitored, checked every 5 minutes = ~26,000 checks/month
  • GitHub Actions usage: ~340 minutes/month of the 2,000 free minutes
  • Uptime detected: caught 2 real outages (a cert expiry I'd forgotten, and a Fly region hiccup) within 5 minutes
  • False positives: 1 (GitHub Actions runner network blip — it self-closed 6 minutes later)

The 5-minute interval is the honest limitation. If you need sub-minute detection for a paying customer, pay for a real monitor. For side projects and portfolios, 5 minutes is faster than any user will email you.

Hot take: status pages are a solved problem that companies charge $240/year for because "it's only $20." GitHub's free CI minutes are the most underpriced resource in dev tooling right now.

What are you running on free CI minutes that probably shouldn't work as well as it does?


I generated the config and the custom theme tweaks with MonkeyCode (free, local): https://ly.cyberserval.tech/iIETXiF

Top comments (0)