changedetection.io

Monitor web pages for changes

Productivity & Notes Apache-2.0 beginner ★ 34,698 stars

What is changedetection.io?

changedetection.io watches web pages and notifies you when they change. It can track full pages or specific elements, handle pages rendered by JavaScript, and push notifications through dozens of channels including email, webhooks and chat apps.

Best for

Anyone tracking price drops, job postings or competitor pages

Why choose changedetection.io

changedetection.io is one of those tools whose value becomes obvious the first time it saves you. It watches a web page — a price, a job listing, a government notice, a competitor's pricing table, a restock page — and tells you when it changes. The privacy argument is unusually strong here, because the hosted monitoring services do exactly what their name suggests: they fetch and process pages on your behalf, which means they see everything you are watching. Self-hosted, the watching happens from your own network.

Replaces

  • Visualping
  • Distill.io
  • Wachete

Key features

  • Full-page or element-specific monitoring
  • JavaScript-rendered page support
  • Browser steps and interactions
  • Many notification channels

What to watch out for

Modern websites fight back. Pages rendered entirely in JavaScript, sites hidden behind bot checks, and single-page apps that never change their HTML but rewrite everything client-side — all of these need the built-in browser engine or custom steps, and even then some sites simply cannot be reliably monitored. Notification reliability depends on the channel you pick; email works, but the more exotic options need their own API keys and occasionally break. Nobody will alert you if the monitor itself stops working, so periodic self-checks matter.

How to deploy

  • Docker

Getting started

Use the Docker image with the browser engine included if you plan to monitor anything modern; the lightweight image is faster but will fail on JavaScript-heavy pages. Configure a notification channel and send a test message before you add a single URL, because discovering your alerts never worked after a month of monitoring is the classic failure. Start with a small interval like hourly rather than every minute — hammering a site is how you get blocked. Set the global setting for how differences are treated, or you will get an email about a timestamp changing every time.

Typical setup

It runs best on a small always-on machine — the same VPS or home server as the rest of the stack — in Docker with the browser-engined image. People typically monitor a mixture of things: prices, job postings, stock pages, government notices, release notes, and their own services' status pages. Notifications usually go to a chat webhook or a dedicated email address rather than a personal inbox, on the grounds that a monitoring tool which can spam you will eventually be muted.

Who should look elsewhere

Do not rely on it for anything where a missed alert has serious consequences — financial obligations, legal deadlines, safety-critical notices. Monitoring a modern website is best-effort by nature: pages can render differently for a bot, bot checks can block you, and the tool cannot tell you that it silently stopped working. Use it for convenience, and use something contractual for obligations.

Project health

  • GitHub stars: 34,698
  • Last code push: 2026-09-28
  • Open issues: 392
  • Status: actively developed

Figures pulled from the GitHub API and refreshed periodically.

More in Productivity & Notes