changedetection.io: Self-Hosted Website Change Monitoring with 30k Stars and 203 Releases
A self-hosted tool that watches web pages for changes and sends you alerts via Discord, Slack, Telegram, email, and 80+ other notification channels. Supports visual element selection, browser automation steps, price/restock tracking, JSON API monitoring, PDF changes, and conditional triggers. Docker one-liner to deploy.
Best and simplest tool for website change detection, web page monitoring, and website change alerts.
There's a surprisingly large category of problems that boil down to "tell me when this web page changes." Price drops on a product you're watching. Government regulatory updates that only appear on a website. Job postings on a company's careers page. A PDF that gets silently updated. Restock alerts. Security advisories. Legal document revisions. The list goes on.
changedetection.io is a self-hosted Python application that solves this with a web UI, a massive notification ecosystem, and support for everything from simple text changes to complex JavaScript-rendered pages behind login walls. With 30.7k stars, 203 releases, and active development, it's the most popular open-source website change monitoring tool available.
// Key Capabilities
// How It Works
You add URLs through a web UI running on port 5000, configure how often to check (from minutes to days), optionally set filters to target specific page elements, and configure notification channels. When a change is detected, you get a diff view showing exactly what changed — by word, line, or character. The tool supports both a fast built-in HTTP fetcher and Chrome/Playwright-based fetching for JavaScript-heavy sites.
For more complex scenarios, Browser Steps let you script interactions before the actual monitoring happens: log into a site, navigate to a specific page, fill in search criteria, accept cookie prompts. After the browser steps execute, the Visual Selector lets you pick which elements to watch. This combination handles the common case of monitoring content that's behind authentication or requires navigation to reach.
// Filtering & Triggers
| Feature | Description |
|---|---|
| CSS Selectors | Target specific elements by class, ID, or structure |
| XPath 1.0 / 2.0 | Advanced element selection with regex support via LXML |
| JSONPath / jq | Filter and restructure JSON API responses with logic operators |
| Trigger on Text | Only alert when specific text appears or disappears |
| Ignore Text | Exclude volatile content (timestamps, ad blocks) from diffs |
| Regex Filters | Regular expression matching for extract and trigger rules |
| Conditional Actions | Trigger only when price is above/below threshold, keyword present/absent |
| Scheduling | Timezone-aware schedules, business hours only, weekday/weekend limits |
// Deployment
docker run -d --restart always -p "127.0.0.1:5000:5000" -v datastore-volume:/datastore --name changedetection.io dgtlmoon/changedetection.io — that's it. Also available via docker compose, pip install, or the hosted SaaS at $8.99/month.The self-hosted version runs as a single Docker container (or via pip) and stores data in a local volume. For JavaScript-rendered pages, you add a Playwright-based browser container alongside it (included in the docker-compose.yml). The project also supports Raspberry Pi and ARM devices, per-watch proxy configuration, and importing watch lists from Excel files. A Chrome extension lets you add the current page to your monitoring list directly from the browser.
// Use Cases
The project's README lists an extensive set of real-world applications: price drop alerts, restock monitoring, government regulatory updates, job posting tracking, security advisory monitoring, website defacement detection, API response monitoring, RSS feed generation from web changes, PCI compliance monitoring, real estate listing changes, and regulatory compliance (RegTech). The tool is used across industries from network security to aerospace to data journalism.
// Considerations
JavaScript pages need a browser container. The built-in fetcher handles static HTML efficiently, but JavaScript-rendered pages require running a separate Playwright/Chrome container. This increases resource usage and deployment complexity. The SaaS plan includes this out of the box.
Scale considerations. changedetection.io is designed for individual or small-team use. If you're monitoring thousands of URLs at high frequency, you'll need to consider the resource implications — especially with browser-based fetching. There's no built-in distributed architecture for horizontal scaling.
Website terms of service. Automated page monitoring at high frequency can violate some websites' terms of service or trigger rate limiting. The tool includes per-watch proxy support and configurable check intervals, but users should be mindful of the targets they're monitoring.
291 open issues. With 30k+ stars and active usage, there's a substantial backlog of feature requests and bug reports. The project is actively maintained (203 releases, latest March 2026), but the issue count reflects the breadth of use cases people bring to it.
// Bottom Line
changedetection.io fills a need that most people don't realize they have until they need it. The ability to monitor any web page for changes — with visual element selection, browser automation, conditional triggers, and 80+ notification channels — covers an enormous range of practical scenarios. The Docker one-liner deployment and web UI make it accessible to non-technical users, while the XPath/JSONPath/jq filtering, REST API, and proxy configuration serve power users and automation workflows.
At 30.7k stars with 203 releases over active development, it's the clear leader in the self-hosted website monitoring space. Whether you're tracking price drops, monitoring competitor pages, watching for regulatory updates, or building automated workflows triggered by web content changes, changedetection.io is the tool most likely to do what you need out of the box.