changedetection.io — the self-hosted monitoring app
Popular open-source tool with a web UI, visual diff, and notifications. Excellent when a human watches pages from a dashboard. Trade-off: app-first, not API-first for structured signed events in your product.
Cron + scripts — the DIY primitive
Maximum control, zero dependencies. Best for one static page or internal checks. You maintain JS rendering, summaries, retries, and multi-URL scheduling yourself.
Meerkat — change detection as an async API
MIT-licensed, webhook-native agent task API. Describe a task, set frequency, pass webhook — structured results POST only when state changes. BYOK LLM keys. Self-host or Cloud.
Side-by-side
| changedetection.io | Cron + scripts | Meerkat | |
|---|---|---|---|
| Interface | Web UI | Your terminal | REST API + webhooks |
| Best audience | Teams wanting UI | Solo dev, one page | Devs embedding in app |
| Signed webhooks (HMAC) | Basic | You build it | Built-in |
| Retries / idempotency | Limited | You build it | Built-in |
| "What changed" summaries | Visual diff | You build it | Structured payload |
| Beyond monitoring | Monitoring focus | Anything you code | Monitoring, scraping, tracking |
Meerkat in one request
curl -X POST https://cloud.meerkatagents.com/api/v1/tasks \
-H "Authorization: Bearer $MEERKAT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"task": {
"task_type": "recurring",
"description": "Monitor this page and report what changed",
"input_params": { "url": "https://example.com/pricing" },
"frequency": "every 2 hours",
"output_webhook": "https://your-app.com/hook"
}
}'