Customers pay for status pages, team features, alert routing to SMS and PagerDuty, and a monitor hosted independently of their own infrastructure.
REPLACEMENT BRIEF
cron monitoring
Can AI replace Cronitor?
A heartbeat URL that alerts when a job misses its window is roughly a hundred lines of code. Build it if you have a place to run it that will not fail along with the jobs it watches.
Reviewed · DeepFeather editorial
known limits their status pages and team features; alert routing (SMS, PagerDuty)
Build an automated heartbeat monitoring daemon that accepts HTTP pings from scheduled jobs, evaluates grace intervals, and triggers alerts on missed runs.
Build the personal version →AT A GLANCE
- price
- $10/mo
- listed annual price
- $120/yr
- replaceable scope
- Build an automated heartbeat monitoring daemon that accepts HTTP pings from scheduled jobs, evaluates grace intervals, and triggers alerts on missed runs.
- build time
- 2–4 h
Build promptreviewed prompt · not run
the prompt
Curated promptBuild me a cron-job monitor like Cronitor / Healthchecks. Requirements:
- Each monitored job gets a unique ping URL (/ping/:uuid). The job's crontab
line just appends `&& curl -fsS <url>` · document this.
- Define jobs in SQLite via a basic-auth /admin page: name, expected period
(e.g. every 60 min) and grace time. Store every ping with timestamp.
- A scheduler loop checks each job: if now > last_ping + period + grace, the job
is LATE → send one alert webhook (Discord/Slack/Telegram, URL in .env) with
the job name and how late it is. Alert again on recovery. No alert spam ·
one per state change.
- /admin dashboard: each job as a row with green/amber/red status dot, last ping
time ("7 min ago"), and a 24h ping histogram as inline SVG.
- Support /ping/:uuid/fail for explicit failure reports with an optional body
shown in the alert.
- Python or Node, single process, systemd unit included.The prompt stays readable first. Choose a launch option when you are ready.
$ open in your agent (prompt prefilled, you press enter) or copy it raw
Build Pack
Build a Cronitor replacement: the plan
What to build, what to skip on purpose, and how to tell it works. Use any agent or prompt you like — the acceptance tests decide whether it worked.
- Estimated time
- 2–4 h
- Estimated monthly cost
- $0–6/mo
Editorial estimate, not a measured run · Reviewed
In scope
- A unique ping URL per job (/ping/:uuid) that a crontab line calls after the job succeeds
- An explicit failure endpoint (/ping/:uuid/fail) with an optional body that appears in the alert
- Jobs defined in SQLite with a name, expected period and grace time; every ping stored with a timestamp
- A scheduler loop that marks a job late once last ping + period + grace has passed
- One webhook alert per state change (late, failed, recovered) to Discord, Slack or Telegram
- A basic-auth /admin dashboard: status dot, "last ping 7 min ago" and a 24-hour ping histogram
Non-goals
- Cron-expression parsing — jobs are period-based
- SMS, phone or PagerDuty escalation and on-call routing
- Public status pages, teams or multiple users
- Monitoring the monitor: if this machine is down, nobody is alerted
Recommended stack
- Runtime
- Python or Node, one processOne service to keep alive, no queue or worker fleet
- Storage
- SQLiteJobs and ping history with zero database operations
- Process manager
- systemd unitRestarts on crash and on boot
- Alerts
- Incoming webhook URL from .envDiscord, Slack and Telegram all accept a plain HTTP POST
Data model
jobsid (uuid)nameperiod_secondsgrace_secondsstatelast_ping_atstate is up, late or failed; alerts fire only when it changespingsidjob_idtskind (ok/fail)bodyIndex on (job_id, ts) for the 24-hour histogram
Steps
- Service and schemaStart the single-process app and create the jobs and pings tables, with an index on (job_id, ts).
- Ping endpoints/ping/:uuid records an ok ping; /ping/:uuid/fail records a failure with the request body. Unknown uuid → 404.
- Scheduler loopEvery 30–60 seconds, mark a job late when now > last_ping + period + grace, and up again when a ping arrives.
- State-change alertsPOST to the webhook only on transitions (up → late, any → failed, late/failed → up), with the job name and how late it is.
- Admin dashboardBasic-auth /admin to add and edit jobs, showing a status dot, relative last-ping time and a 24-hour histogram as inline SVG.
- Package and documentShip a systemd unit, an .env example and a README showing the `&& curl -fsS <url>` crontab pattern.
Acceptance tests
- Append `&& curl -fsS <ping url>` to a crontab line that runs every minutePings appear and the job shows green
- Stop the job and wait period + graceExactly one late alert arrives
- Start the job againOne recovery alert, then silence while it stays healthy
- curl /ping/:uuid/fail with a bodyThe failure alert includes that body text
- Kill the processsystemd restarts it and jobs and history are still there
Only you can do this
- Run it on a different machine from the jobs it watches
- Create the Discord, Slack or Telegram webhook and put its URL in .env
- Add the ping to each real crontab line
- Choose a period and grace time that fit each job
What drives the cost
$0 on a machine you already run. Otherwise one small VPS; the upper bound assumes a low-end plan of a few dollars a month, so check your provider's price.
what AI can build
Build an automated heartbeat monitoring daemon that accepts HTTP pings from scheduled jobs, evaluates grace intervals, and triggers alerts on missed runs.
The prompt was editor-reviewed; no completed build is recorded.
The honest tradeoff
why people still pay
what you lose
xtheir status pages and team features
xalert routing (SMS, PagerDuty)
xcron expression insights
Start with existing software
prior art · use these instead of building, if you'd rather
EVIDENCE LEDGER
What this page can prove
The verdict judges replaceability. The evidence level records what DeepFeather actually checked.
The prompt was editor-reviewed; no completed build is recorded.
Current catalog reference
known limits · their status pages and team features; alert routing (SMS, PagerDuty)
BUILD FEEDBACK
Did you try this build?
Report the outcome. Submissions enter a manual evidence queue and never auto-upgrade the verdict.
Want next week’s replacements?
New verdicts + most-wanted, weekly. Free. One-click out.
Share this verdict
questions
Can AI replace Cronitor?
Likely for the core workflow. This is an editorial catalog judgment, not a verified build; validate any result against your own acceptance criteria.
How much does Cronitor cost?
Cronitor is listed at about $10/month (paid plan, checked 2026-07-29), or $120 per year. This is a pricing reference, not evidence of a completed replacement or realized savings.
What do I lose by replacing Cronitor?
Honestly: their status pages and team features; alert routing (SMS, PagerDuty); cron expression insights. If any of those are load-bearing for you, keep paying.
Is there an open-source alternative to Cronitor?
Yes — Healthchecks (excellent open-source cron monitoring). Using prior art is also a valid exit; the prompt is for when you want it exactly your way.