Watch product prices across any store. Get notified when they drop. 100% local, no tracking.
Visit a product page on any major retailer, click the Dropwatch icon, and hit Track this. The extension re-checks the price every 6 hours in the background. When the price drops by more than your threshold, you get an OS notification and a badge on the extension icon. Everything stays in your browser.
Works out of the box on any site that ships JSON-LD or Open Graph product markup — which covers most major retailers. Confirmed working on Bol.com, Coolblue, Zalando, H&M, Albert Heijn, and many more.
- One-click tracking from any product page with structured data
- Background price checks every 6 hours — uses your own browser session and cookies so bot-detection treats it like normal browsing
- Drop threshold default 10%, editable per product
- OS notifications + extension icon badge on new lows
- Full local price history (capped at 200 points per product)
- No account, no server, no analytics
No data leaves your device. Ever. The only outbound network requests are to product URLs you explicitly chose to track, and only to re-check the price.
See privacy-policy.md for details.
Until the extension is live on the Chrome Web Store, you can load it manually:
- Clone or download this repo
- Open
chrome://extensions - Enable "Developer mode"
- Click "Load unpacked" → select this folder
Amazon is not supported in v1.0.0. Amazon's product pages do not ship JSON-LD or Open Graph product markup — they render prices inside DOM elements only. A per-store Amazon extractor is planned for v1.1.
Sites behind aggressive bot detection may return CAPTCHA pages to the background fetch — the extension skips those gracefully. Visiting the page manually refreshes the price.
src/popup.jsruns when you open the extension. It asks Chrome foractiveTabaccess and runs a short detection script in the current tab that returns the page's HTML. The parser insrc/lib/parser.jsthen reads any<script type="application/ld+json">blocks or Open Graph meta tags to normalize the product data.- When you click Track this, the popup asks Chrome for
optional_host_permissionsfor that store's origin. On approval it hands off to the service worker insrc/background.js, which stores the product and schedules achrome.alarmsentry. - Every 6 hours (plus a few minutes of jitter), the alarm fires. The service worker fetches the product URL (with your cookies attached thanks to the granted host permission), re-parses the response, appends to the price history, and fires
chrome.notificationsif the drop crosses your threshold AND the new price is strictly lower than the previously-notified low.
No bundler. Plain JS. MV3. npm test runs Node's built-in test runner against real and synthetic fixtures.
Issues and PRs welcome. This is a hobby project — don't expect enterprise-grade support, but real bug reports will get real responses.
MIT — see LICENSE.
