Watch any web page — or just the part you care about — on your own machine. Click a price, a stock badge, or a job listing, and get a webhook (or a desktop ping) the second it changes. No subscription, no per-check fees, no Docker.
Most page-change tools were built before SPAs ate the web. They fetch HTML, miss the JavaScript-rendered prices, and bill you per check. LumaBrowser uses a real browser, runs on your machine, and is free without an asterisk.
| Visualping | Distill.io | ChangeTower | changedetection.io | LumaBrowser | |
|---|---|---|---|---|---|
| Free tier | 5 pages, 150 checks/mo, 60-min minimum | 25 local + 5 cloud monitors, 1k checks/mo | 3 URLs, 6 daily checks | Free if you self-host with Docker | Full app, no monitor limits |
| Cheapest paid plan | $10/mo Personal | $15/mo Starter | $9/mo Power User | $8.99/mo cloud | Optional — free covers it |
| Real browser (JS / SPAs) | Limited on free tier | Limited on free tier | Limited on free tier | Add-on Playwright fetcher | Yes — every check |
| Element picker (no CSS) | Yes | Yes | Yes | Manual XPath / JSONPath | Click to pick |
| Webhook on change | Business tier ($100/mo) | Paid tiers | Paid tiers | Yes (self-host) | Built in — free |
| Authenticated pages | Higher tiers only | Limited | Limited | Manual cookie config | Your logged-in session |
| Setup | Cloud account | Cloud account or browser ext | Cloud account | Docker + Python | Download & run |
Competitor pricing as listed by each vendor at time of publication. Free tier on LumaBrowser ships with anonymous usage analytics enabled by default; see what we collect. Paid tiers carry the NO_TELEMETRY entitlement and shut all of it off.
This comparison reflects publicly available pricing and feature information gathered to the best of our knowledge from each vendor's public materials. Vendors update plans frequently and we're a small team — if anything here looks wrong, please email [email protected] with the correction and a source, and we'll update the page.
No CSS, no XPath, no developer tools. Open the monitor, click Pick elements, and the page opens with a live overlay. Hover anything to highlight it, click to select. The price tile, the headline, the in-stock badge, an inbox row — whatever matters. Everything else on the page becomes invisible to the monitor, so a footer copyright change doesn't spam your webhook.
Three of the most common reasons people install LumaBrowser. The pattern is always the same: pick the element, set the schedule, route the webhook.
Pick the price element on every competitor page that matters. Get a Slack message the moment one of them moves. The most common reason teams cancel Visualping or ChangeTower and switch over.
Watch a search results page for the first job, apartment, ticket, or restock. The monitor only fires when the list actually changes — a header re-render or a tracking pixel won't wake you up.
Point the webhook at your automation platform. The change payload includes the diff summary, before/after checksums, and a 2 KB content preview — enough to branch your workflow without a second scrape.
The differences that actually matter the day you set up monitor #6 and it just works.
React, Vue, Svelte, Angular — if your browser sees it, the monitor does. No add-on tier required.
Run 5 monitors or 500. The only ceiling is your laptop's memory, not a billing tier.
Checks run inside your normal browser session, so cookies and SSO carry over. No credential sharing with a cloud vendor.
Each monitor can ping a desktop notification AND POST a structured JSON payload to any URL. Pick one, both, or neither.
Monitors, history, checksums, and the URLs you watch live in a SQLite file on your machine — never sent anywhere. Anonymous app analytics are documented in detail and off on paid tiers.
Download an installer, double-click. The thing changedetection.io makes you set up — we ship as an app.
Once LumaBrowser is running, every monitor is a JSON object. Wire it up from the UI, or from any HTTP client — the same endpoint that powers the n8n / Zapier integration.
Create the monitorcurl -X POST http://localhost:3000/api/page-change-detector \
-H "Content-Type: application/json" \
-d '{
"name": "Acme pricing page",
"url": "https://acme.com/pricing",
"checkIntervalMs": 300000,
"webhookUrl": "https://hooks.slack.com/services/XXX/YYY/ZZZ",
"desktopNotifications": true
}'
{
"monitorName": "Acme pricing page",
"url": "https://acme.com/pricing",
"timestamp": "2026-05-03T17:22:08.412Z",
"diffSummary": "+1 / -1\n+ Pro plan: $39/mo\n- Pro plan: $49/mo",
"changeCount": 4,
"textPreview": "...first 2 KB of the new content..."
}
Pipe that JSON into Slack, Discord, n8n, Zapier, an SMS service, or your own backend. Every field is documented and stable.
Full REST API reference, monitor fields, and webhook schema →LumaBrowser's Website Change Monitor is free, runs locally, and ships in the same download as the rest of the platform. Cancel the subscription, install once, never think about monitor caps again.