Healthchecks.io alternative: Heartcron vs Healthchecks.io
Healthchecks.io is a well-known cron job monitor, open source and loved by developers, and Heartcron’s ping URLs work the same way. The main difference is scope. Healthchecks.io only listens for pings: its docs say it isn’t the right tool for monitoring website uptime with HTTP requests. Heartcron watches cron jobs and checks websites, ports, SSL certificates and domains in the same account. Healthchecks.io in turn offers self-hosting, SMS and phone call alerts and many more integrations. The facts about Healthchecks.io come from its pricing page and docs.
At a glance
| Heartcron | Healthchecks.io | |
|---|---|---|
| Free plan | 20 cron jobs + 10 site checks | 20 checks |
| Paid plans | $9: 100 jobs + 50 site checks $29: 500 + 200 $79: 2,000 + 1,000 | $5: same limits as free $20: 100 checks $80: 1,000 checks |
| History | 7 days on Free, 90 days from $9, a year from $29 | 100 log entries per check on Free, 1,000 on Business |
| Website, port, SSL and domain checks | Yes | No, pings only |
| Cron expressions with time zones | Yes | Yes, plus systemd OnCalendar |
| Start, fail, log, exit code pings | Yes | Yes |
| Job output kept with a ping | 100 KB on paid plans, 10 KB on Free | 100 KB |
| Checks created on the first ping | Yes, ?create=1 | Yes, create=1 (off by default) |
| Public status pages | 1 on Free, up to 1,000 on paid plans | Not on its pricing page |
| Alert channels | Email, Telegram, Slack, Discord, webhooks | Many, including email, Slack, webhooks, PagerDuty, Opsgenie, Pushover; SMS, WhatsApp and phone calls on Business |
| Self-hosting | No | Yes, open source (BSD 3-clause) |
| Open-source CLI | heartcron (MIT) | Not needed for basic use: curl works with both |
Where Heartcron is the better fit
- Cron jobs and websites in one place. HTTP status and keyword checks, TCP ports, SSL certificate expiry and domain expiry sit next to your cron jobs, share the same alert channels and appear on the same status page. With Healthchecks.io you’d need a second service for that.
- History by time, not by count. A job that runs every minute fills 100 log entries in under two hours. On Heartcron the Free plan keeps a week of history whatever the frequency.
- More checks for the money. $9 a month covers 100 cron jobs and 50 site checks; Healthchecks.io’s 100-check plan is $20.
- Status pages for customers on every plan, with 90 days of uptime.
- A wrapper CLI that sends the start, exit code, duration and the end of the output in one command:
heartcron run backup -- /srv/backup.sh.
When Healthchecks.io is the better choice
- You want to run it on your own servers. Healthchecks.io is open source; Heartcron is a hosted service only.
- You need SMS, WhatsApp or phone call alerts, or PagerDuty, Opsgenie, Pushover and other integrations Heartcron doesn’t have yet.
- Your schedules are written as systemd OnCalendar expressions and you don’t want to translate them to cron.
- You need only cron monitoring, with 20 checks and a short history, and want to support an independent open-source project.
Switching from Healthchecks.io
The ping API is the same shape, so in most scripts you only change the URL:
| Healthchecks.io | Heartcron |
|---|---|
https://hc-ping.com/<uuid> | https://ping.heartcron.com/<uuid> |
…/<uuid>/start, /fail, /log, /<exit-code> | The same |
https://hc-ping.com/<ping-key>/<slug>?create=1 | https://ping.heartcron.com/<ping-key>/<slug>?create=1 |
Create the checks with the same schedules, or let ?create=1 create them on the first ping and set the schedules afterwards. The docs list every signal and limit.