finds.dev← search

// the find

dgtlmoon/changedetection.io

★ 34,793 · Python · Apache-2.0 · updated Oct 2026

Best and simplest tool for website change detection, web page monitoring, and website change alerts. Perfect for tracking content changes, price drops, restock alerts, and website defacement monitoring—all for free or enjoy our SaaS plan!

A self-hosted Flask app that polls URLs on a schedule, diffs each fetch against the last one, and sends changes through Apprise to whatever notification service you use. It suits people who want to watch prices, stock levels, job pages, or government notices without a SaaS middleman.

- The fetcher is chosen per watch: a plain HTTP fetcher for most pages, and Playwright, Puppeteer, or Selenium only for JavaScript-heavy ones, so the browser cost is paid only where it's needed.

- Filtering goes further than most tools in this space: CSS, XPath 1 and 2, JSONPath, jq, regex, and a visual selector, so a watch can be narrowed to the one element that actually changes.

- Notifications go through Apprise, which gives dozens of destinations for free, and Jinja2 templates let you shape the message body.

- It has a REST API with an OpenAPI spec and a one-line Docker install, so it fits into existing automation without much glue.

- The README is mostly a sales page. A large part of it is hosted-plan pitches, affiliate proxy links (Bright Data, Oxylabs), and a 'support us' section, which makes it harder to tell what the self-hosted project does on its own terms.

- The README leads with LLM change filtering but says it is 'available in our subscription/hosted service from June 2026'. The repo has an llm/ package, so it's unclear what a self-hosted install actually gets. If you do enable it, page diffs go to a third-party model, and the hallucination and data-protection disclaimers are worth taking seriously. Treat the summaries as hints.

- JavaScript rendering and the visual selector both need a separate headless browser (Playwright or sockpuppetbrowser). That's extra infrastructure to run and keep patched, and the default fetcher will miss anything rendered client-side.

- The README reads like one maintainer's project ('I offer commercial support') with a short contributor list. Pin your version, and expect the release pace to follow one person's time.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →