Skip to content

mevfiew/dropwatch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dropwatch

Watch product prices across any store. Get notified when they drop. 100% local, no tracking.

screenshot

What it does

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.

Features

  • 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

Privacy

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.

Install

Until the extension is live on the Chrome Web Store, you can load it manually:

  1. Clone or download this repo
  2. Open chrome://extensions
  3. Enable "Developer mode"
  4. Click "Load unpacked" → select this folder

Known limitations

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.

How it works

  • src/popup.js runs when you open the extension. It asks Chrome for activeTab access and runs a short detection script in the current tab that returns the page's HTML. The parser in src/lib/parser.js then 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_permissions for that store's origin. On approval it hands off to the service worker in src/background.js, which stores the product and schedules a chrome.alarms entry.
  • 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.notifications if 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.

Contributing

Issues and PRs welcome. This is a hobby project — don't expect enterprise-grade support, but real bug reports will get real responses.

License

MIT — see LICENSE.

About

Chrome extension that watches prices across any store and alerts on drops. 100% local, no tracking.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors