changedetection.io
Monitor unlimited web pages for changes and get notified — price tracking, browser automation, and 85+ notification channels, free when self-hosted.
Best for: Anyone monitoring more than 20 web pages — price trackers, researchers, compliance teams, and data journalists who want commercial-grade features without per-page SaaS pricing.
TL;DR
- What it is: An open-source (Apache 2.0) self-hosted tool that monitors websites for changes and sends notifications via 85+ channels — email, Slack, Telegram, Discord, webhooks, and more. Includes price tracking, restock alerts, and browser automation.
- Who it’s for: Anyone monitoring more than a handful of web pages — price trackers, researchers, data journalists, compliance teams, bargain hunters, and developers watching API endpoints or competitor pages.
- Cost savings: Visualping charges $10-48/month for 65-500 pages. Distill.io charges $15-40/month. changedetection.io self-hosted monitors unlimited pages for the cost of a $5/month VPS. Their own hosted SaaS is $8.99/month for 5,000 URLs.
- Key strength: Feature depth for the price. Visual selectors, browser automation steps (login, click, fill forms), price/restock detection, JSON/XML API monitoring, CSS/XPath filtering, regex triggers, and 85+ notification channels — all free when self-hosted.
- Key weakness: JavaScript-heavy sites require a Playwright/Chrome sidecar container adding ~500MB-1.5GB RAM. No multi-user support. The visual diff is text-based, not pixel-level like Visualping. No scheduling calendar — just intervals.
What is changedetection.io
changedetection.io monitors web pages and notifies you when something changes. You give it a URL, optionally set CSS selectors to target specific parts of the page, choose a check interval (from 1 minute to daily), and pick notification channels. When the targeted content changes, you get an alert with a diff showing what changed.
The project describes itself as the “best and simplest tool for website change detection, web page monitoring, and website change alerts.” It’s the most popular open-source website change monitoring tool with 30,700+ GitHub stars — a significant margin over any alternative.
What makes it more than a simple URL diff checker is the stack of features built around the core monitoring: visual CSS selectors for targeting specific page elements, interactive browser steps for logging into sites and navigating before monitoring, structured price and restock detection for e-commerce pages, JSON/XML API monitoring with JSONPath expressions, and an integration with Apprise that supports 85+ notification platforms.
The project is written in Python (Flask), deployable via Docker Compose, and offers both a self-hosted open source version and a hosted SaaS at $8.99/month. The SaaS includes a Chrome browser in the cloud and dedicated proxies — the self-hosted version requires you to set up the browser container yourself if you need JavaScript rendering.
Why people choose it over Visualping, Distill.io, and Huginn
Versus Visualping. Visualping is the most popular commercial website change monitoring SaaS. Free tier monitors 5 pages with daily checks. Paid plans start at $10/month for 65 pages (6-hour checks) and scale to $48/month for 500 pages with 2-minute checks. changedetection.io self-hosted monitors unlimited pages with check intervals down to 1 minute — for the cost of a $5 VPS. The feature comparison is also favorable: browser automation steps, price tracking, API monitoring, 85+ notification channels, and a REST API. Where Visualping wins is pixel-level visual comparison (screenshot diffing) and a Chrome extension for easy URL adding. For anyone monitoring 50+ pages with custom selectors and automation, changedetection.io is dramatically more capable and cheaper.
Versus Distill.io. Distill.io is another commercial SaaS with a browser extension focus. Plans run $15-40/month depending on check frequency and page count. It has a slicker browser extension UX for quickly selecting page elements. changedetection.io’s visual selector (available with Playwright) achieves the same result but requires the self-hosted setup. On features, changedetection.io has a wider notification system and deeper automation capabilities.
Versus Huginn. Huginn is the old-school open-source option — think of it as a self-hosted IFTTT/Zapier for data extraction and monitoring. It’s technically powerful but the UI hasn’t aged well and the learning curve is steep (you configure JSON “agents” rather than using visual selectors). changedetection.io is what you switch to when you want Huginn’s power with a modern web UI.
On the hosted SaaS at $8.99/month. The project’s own hosted offering is worth considering as a middle ground. At $8.99/month for 5,000 URLs with a Chrome browser included, it’s half the price of Visualping’s comparable tier and includes all the advanced features. You give up data sovereignty but avoid Docker maintenance.
Features: what it actually does
Core monitoring:
- Monitor unlimited URLs with configurable check intervals (1 minute to daily)
- Text-based diff viewer with word, line, and character-level comparison
- CSS/XPath selectors to target specific page elements
- Visual selector tool for point-and-click element targeting (requires Playwright)
- Regex-based trigger filters: “Trigger on text”, “Remove text by selector”, “Ignore text”, “Extract text”
- PDF monitoring — detect text changes in PDF documents
- JSON/XML API monitoring with JSONPath expressions
Browser automation (Playwright/Chrome):
- Interactive browser steps: login, click buttons, fill forms, accept cookies, navigate menus
- JavaScript-rendered page support via headless Chrome/Playwright
- Visual selector available after browser steps complete
- Stealth mode to avoid bot detection
Price and restock tracking:
- Extracts pricing from HTML meta tags and structured data
- Price history dashboard per watch
- Upper/lower price threshold alerts
- Percentage change triggers
- Works with Amazon, eBay, Walmart, and most e-commerce sites
Notifications (via Apprise integration):
- 85+ notification platforms: email, Slack, Discord, Telegram, NTFY, Matrix, Rocket.Chat, Office 365, webhooks, and more
- Per-watch notification routing — price drops to Telegram, restock to Discord, competitor changes to Slack
- Custom webhook payloads for integration with n8n, Home Assistant, or custom scripts
Technical features:
- REST API with OpenAPI documentation for programmatic management
- RSS/Atom feed generation for changes
- CSV import/export of watch lists
- Backup/restore functionality
- Docker and docker-compose deployment
Pricing: SaaS vs self-hosted math
Concrete savings math:
Say you’re monitoring 200 web pages with 5-minute intervals and need JavaScript rendering for half of them. On Visualping, that’s their $48/month Professional plan. On changedetection.io self-hosted:
- Hetzner VPS (2 vCPU, 4GB RAM): ~$6/month
- Playwright sidecar: included in the Docker Compose setup
- Total: $6/month for unlimited pages
Over a year: Visualping = $576. changedetection.io self-hosted = $72. Savings: $504/year.
At 500+ pages with price tracking: Visualping = $1,188-2,400/year. Self-hosted = $72-144/year. Savings: $1,000-2,200/year.
Deployment reality check
changedetection.io has one of the simplest self-hosted setups. Docker Compose and you’re done — unless you need JavaScript rendering.
Basic setup (HTTP-only monitoring, 10 minutes):
docker compose pull && docker compose up -d
Access at http://your-server:5000. This handles static HTML pages, RSS feeds, JSON APIs, and any page that doesn’t require JavaScript rendering. Resource usage: under 1% CPU, ~100MB RAM for 20+ watches.
Full setup with Playwright (JavaScript sites, 15 minutes): The Docker Compose file includes an optional Playwright container that runs a headless Chrome browser. Enabling it adds ~500MB-1.5GB RAM but unlocks visual selectors, browser automation steps, and JavaScript-rendered content monitoring.
What you actually need:
- A Linux server or NAS with Docker installed
- 256MB-512MB RAM for HTTP-only monitoring, 1.5-4GB RAM with Playwright
- Port 5000 accessible (or reverse proxy with HTTPS)
- No database setup required — uses SQLite internally
What can go sideways:
- JavaScript sites without Playwright. Without the browser sidecar, changedetection.io falls back to simple HTTP fetching, which misses JavaScript-rendered content. Many modern sites render nothing without JavaScript.
- RAM with many Playwright watches. At 200 watches with 5-minute intervals using Playwright, expect ~1.5GB RAM and periodic CPU spikes.
- SQLite limits. The SQLite backend handles up to ~5,000 watches before list operations slow down. There’s no PostgreSQL backend option.
- No multi-user support. Single user per instance with no team management.
- Bot detection. Sites like Cloudflare-protected pages can block monitoring despite stealth mode.
- Notification overload. With many watches on short intervals, you can flood your notification channels. Per-watch notification routing and “trigger on text” filters are essential.
Realistic time estimate: 10 minutes for HTTP-only setup. 15-20 minutes with Playwright. 1 hour including notification configuration and first batch of watches.
Who should use this
Use changedetection.io if:
- You monitor more than 20 web pages and want to stop paying per-page SaaS pricing.
- You need price tracking and restock alerts for e-commerce products.
- You want to monitor pages behind login walls using browser automation.
- You monitor JSON/XML API endpoints alongside web pages.
- You need flexible notification routing to different channels per watch.
- You’re comfortable with Docker and basic server administration.
Use Visualping instead if:
- You monitor fewer than 10 pages and the free/cheap tier covers you.
- You need pixel-level visual comparison (screenshot diffing).
- You want a Chrome extension for one-click adding of new watches.
- You don’t want to maintain any infrastructure.
Use the changedetection.io hosted SaaS ($8.99/month) if:
- You want the features of self-hosted without Docker maintenance.
- 5,000 URLs is enough for your use case.
- You want a Chrome browser included without managing the Playwright container.
Sources
This review synthesizes 5 independent third-party articles along with primary sources from the project itself. Inline references throughout the review map to the numbered list below.
- [1] jussiroine.com (2023-12-04) — “Self-hosting changedetection.io for monitoring websites” — deployment-experience (link)
- [2] xtom.com (2025-02-01) — “How to Monitor Websites with Changedetection.io and Notify Yourself of Any Changes” — tutorial-deployment (link)
- [3] ilovefreesoftware.com (2022-01-06) — “Free Self Hosted Website Change Monitor: changedetection.io” — overview-features (link)
- [4] noted.lol (2024-10-01) — “changedetection.io vs Visualping: Self-Hosted vs SaaS Website Monitoring” — comparison (link)
- [5] selfhosted.show (2025-01-01) — “Advanced Website Monitoring with changedetection.io: Price Tracking, API Monitoring, and Automation” — critical-advanced (link)
- [6] GitHub repository — official source code, README, releases, and issue tracker (https://github.com/dgtlmoon/changedetection.io)
- [7] Official website — changedetection.io project homepage and docs (https://changedetection.io)
References [1]–[7] above were used to cross-check claims about features, pricing, deployment, and limitations in this review.
Deploy
Features
Integrations & APIs
- Plugin / Extension System
- REST API
- Webhooks
Automation & Workflows
- Triggers / Event-Driven
Compare changedetection.io
Related Monitoring & Observability Tools
View all 92 →Firecrawl
94KTurn websites into LLM-ready data — scrape, crawl, and extract structured content from any website as clean markdown, JSON, or screenshots.
Uptime Kuma
84KFancy self-hosted uptime monitoring with 90+ notification services, status pages, and 20-second check intervals — the open-source UptimeRobot alternative.
Netdata
78KReal-time infrastructure monitoring with per-second metrics, 800+ integrations, built-in ML anomaly detection, and AI troubleshooting — using just 5% CPU and 150MB RAM.
Elasticsearch
76KThe distributed search and analytics engine that powers search at Netflix, eBay, and Uber — sub-millisecond queries across billions of documents, with vector search built in for AI/RAG applications.
Grafana
73KThe open-source observability platform for visualizing metrics, logs, and traces from Prometheus, Loki, Elasticsearch, and dozens more data sources.
Sentry
43KSentry is the leading error tracking and application performance monitoring platform, helping developers diagnose, fix, and optimize code across every stack.