Everything a heartbeat monitor should have. Nothing it shouldn't.
Real schedules, rich pings, a status model with one meaning per state, and alerts wherever your team already looks. Capable enough to stand next to anything, lean enough for one person to run.
Describe any schedule. We will hold it to the second.
Cron expressions with real timezones, simple periods from one minute to a year, and systemd OnCalendar. Each check gets its own grace window, so a job that runs a little late never pages you.
A ping that carries context, not just a heartbeat.
Send start and finish to measure run duration. Report an explicit fail or a non-zero exit code, and attach up to 100 kB of logs or an exception trace. When something breaks, you already have the why.
A check has exactly one state.
Five states, one meaning each, and only down ever pages you.
Created, inert. No alerts until the first ping arrives.
Pinging on time. Late is derived inside the grace window. Informational, never paged.
Deadline blown or an explicit fail. One alert out; recovery sends the all-clear.
Muted by hand for maintenance. Auto-resumes on the next ping.
Built for the way you already work.
Nine alert channels
Email, Slack, Discord, Telegram, webhooks, and PagerDuty on every plan, plus WhatsApp, SMS, and voice call with bundled credits on higher plans.
A real dashboard
A status board, ping timeline, downtime history, and surfaced delivery failures, because a broken alert is the worst kind.
Management API
Create, pause, and list checks over a clean REST API with read-only and read-write keys per project.
Status badges
Drop a live SVG badge into any README so a project's heartbeat is visible at a glance.
Teams & projects
Group checks into projects and invite teammates with owner, member, or read-only roles.
Reports & recovery
Daily, weekly, or monthly summaries by email, plus a one-shot all-clear the moment a check recovers.
See it watch your first job.
Free for 20 checks, no card required. Add one curl line and you are monitored.