Production-ready cron monitoring

Your jobs are failing
right now.

Cron jobs are silent killers. They stop, they fail, they hang — and nobody knows until the damage is done. CronCraft™ watches so you don't have to.

croncraft — dashboard
$ croncraft status --all

Checking 6 monitored jobs...

db-backup
0 2 * * * — pinged 2m ago
OK
invoice-generator
0 9 1 * * — pinged 3h ago
OK
report-builder
*/15 * * * * — expected 4m ago
LATE
s3-sync
0 * * * * — pinged 58m ago
OK
cleanup-tempfiles
0 3 * * 0 — last seen 9d ago
FAILED

[!] alert dispatched: cleanup-tempfiles has not pinged in 9 days
[!] alert dispatched: report-builder is 4m past grace period

$ _

Everything you need.
Nothing you don't.

No agents to install. No daemons to manage. One curl at the end of your script is all it takes.

Dead man's switch

Jobs ping CronCraft™ when they complete. No ping by the deadline — you get an alert. Works with any server, any script, any language.

Grace periods

Set a configurable buffer for slow jobs. CronCraft™ waits the full grace period before declaring a miss. No false alarms at 3am.

⚡︎
Instant alerts

Email on every tier. Slack and webhook integrations on Pro+. Get notified the moment a job goes late, not the moment someone notices.

Dependency chains

Job B only runs if Job A succeeded. CronCraft™ tracks the relationship and alerts you if the chain breaks anywhere. Pro feature.

Run history

Every ping is logged. See timing, duration, IP, and status for every execution. Know exactly when things stopped working and why.

Self-hosted forever free

Full Docker compose setup. Own your data, your infrastructure, your monitoring stack. No subscriptions required if you run it yourself.


One ping.
All the peace of mind.

No agents. No config files on your server. No vendor lock-in. Add one line to your existing script and CronCraft™ does the rest.

01
Register your job

Give your job a name, paste in the cron expression, and set a grace period. CronCraft™ gives you a unique ping URL.

02
Add one line to your script

Curl the ping URL at the end of your job. That's it. The URL works from any server, any language, any environment.

03
Get alerted when it matters

If the ping doesn't arrive by the expected time plus grace period, CronCraft™ fires an alert. If it recovers, you get that too.

#!/bin/bash
# backup.sh — runs daily at 2am

# ... your actual job logic ...
pg_dump mydb | gzip > /backup/db-$(date +%F).sql.gz
aws s3 cp /backup/db-$(date +%F).sql.gz \
  s3://my-bucket/backups/

# Ping CronCraft on success.
# If this line never runs, you'll know.
curl -fsS https://croncraft.app/ping/abc123xyz \
  > /dev/null

# That's it. CronCraft handles the rest.

Start free.
Pay when it matters.

The free tier is actually useful. Self-hosted is always free. No credit card required to start.

Free
$0 / month
For side projects and getting started.

  • 5 monitored jobs
  • 7 days run history
  • Email alerts
  • Slack / webhook alerts
  • Dependency chains
  • Multi-user
Start free
Team
$49 / month
For larger orgs with shared infrastructure.

  • Unlimited jobs
  • 1 year run history
  • Email alerts
  • Slack / webhook alerts
  • Dependency chains
  • Multi-user + roles
Start with Team