Skip to content

changedetection.io: Self-Hosted Website Change Monitoring with 30k Stars and 203 Releases

Tool Spotlight Monitoring Open Source Mar 15, 2026

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.

dgtlmoon / changedetection.io

Best and simplest tool for website change detection, web page monitoring, and website change alerts.

Python 80.9% HTML 7.6% JavaScript 7.3% ★ 30.7k stars v0.54.4 Apache-2.0 1.7k forks 2,249 commits 125 contributors

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

👁️
Visual Selector
Point-and-click tool to select exactly which parts of a page to monitor. No need to write CSS selectors or XPath manually.
🤖
Browser Steps
Automate interactions before monitoring: login to sites, click buttons, fill forms, accept cookies, navigate search results.
💰
Price & Restock Tracking
Dedicated mode for product pages. Extracts pricing metadata, tracks price history, alerts on drops, back-in-stock notifications.
🔔
80+ Notification Channels
Discord, Slack, Telegram, email, Teams, webhooks, custom APIs, and everything else via the Apprise library. Jinja2 templating for content.
📊
JSON API Monitoring
Monitor API responses with JSONPath or jq filters. Parse embedded JSON in HTML pages. Conditional logic with jq operators.
📄
PDF Change Detection
Monitor text changes in PDF files, plus track filesize and checksum changes for binary-level detection.

// How It Works

Add URL Set check interval Filter (CSS/XPath/JSON) Detect change Notify

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

FeatureDescription
CSS SelectorsTarget specific elements by class, ID, or structure
XPath 1.0 / 2.0Advanced element selection with regex support via LXML
JSONPath / jqFilter and restructure JSON API responses with logic operators
Trigger on TextOnly alert when specific text appears or disappears
Ignore TextExclude volatile content (timestamps, ad blocks) from diffs
Regex FiltersRegular expression matching for extract and trigger rules
Conditional ActionsTrigger only when price is above/below threshold, keyword present/absent
SchedulingTimezone-aware schedules, business hours only, weekday/weekend limits

// Deployment

🐳 Docker One-Liner
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

⚠️ Commercial Licensing
The source code is Apache-2.0 for self-hosting, but there's a separate COMMERCIAL_LICENCE.md that applies if you're reselling the software as part of a commercial arrangement. Review this before integrating into a commercial product.

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.

Latest