changedetection.io
Self-hosted web page change detection and monitoring. Watch any URL for content changes and get notified by email, Slack, or 70+ other channels when something updates
Quick Start
docker run -d -p 5000:5000 -v changedetection:/datastore ghcr.io/dgtlmoon/changedetection.io:latest Overview
changedetection.io watches web pages for content changes and fires a notification when something updates. Add a URL, set a check interval, and it fetches the page on schedule, compares it to the previous version, and alerts you if anything is different. The visual diff shows precisely what text was added or removed, which makes it useful for tracking price changes, availability notices, regulatory updates, or any page where the specific content that changed matters.
The tool covers a wide range of monitoring scenarios. Watching a competitor’s pricing page for changes, tracking when a product comes back into stock, monitoring a job board for new postings, or getting alerted when a software changelog is updated are all common uses. Any page accessible over HTTP is a candidate.
Element-level monitoring via CSS or XPath selectors is the feature that makes it genuinely useful at scale. Rather than triggering on every banner rotation or footer timestamp update, you can target exactly the element that matters — a price span, a stock status label, or a specific section of a page. This reduces false positives significantly on pages with dynamic content that changes frequently outside the parts you care about.
JavaScript-rendered pages are supported through optional Playwright or Puppeteer browser integration. This adds resource overhead — a full browser running for each JS-rendered check — but opens up monitoring for single-page apps and dynamically loaded content that a plain HTTP fetch cannot see.
For anyone paying for Visualping, Distill, or a similar SaaS service, changedetection.io is a direct self-hosted equivalent with no per-check limits or subscription fees.
changedetection.io: Pros & Cons
| Pros (The Wins) | Cons (The Friction) |
|---|---|
| Visual diff: Shows exactly what text changed between versions. | JS pages need a browser: Playwright/Puppeteer adds significant resource overhead. |
| CSS/XPath selectors: Watch specific elements; reduces false positives. | No auth handling: Pages behind login require complex workarounds. |
| 70+ notifications: Slack, email, ntfy, webhooks via Apprise integration. | Rate limiting risk: High frequency checks can trigger blocks from target sites. |
| 31.7k stars: No per-check limits or subscription fees self-hosted. | Image content limits: Diff is text-based; image or SVG changes harder to catch. |
Use Cases
Specific ways to use changedetection.io for your workflow.
Deployment Strategy
Recommended ways to host changedetection.io in your own environment.