honest-price-tracker

๐Ÿ’ฐ Honest Price Tracker

Privacy-first price tracking extension for Chrome. No cookie hijacking. No fake coupons. Just honest price tracking.

License: MIT Chrome Web Store GitHub Stars


๐ŸŽฏ Why Honest Price Tracker?

The Problem with Honey & Others

Extensions like Honey and Rakuten have a dark secret:

โŒ They hijack your affiliate cookies - replacing the creatorโ€™s commission with their own
โŒ They upload your browsing data - tracking every product you view
โŒ They show fake coupons - that never work, just to collect your clicks
โŒ Hidden revenue model - you think itโ€™s free, but youโ€™re the product

Our Solution

โœ… 100% Privacy-First - All data stays on YOUR device (IndexedDB)
โœ… No Cookie Modification - We NEVER touch your cookies
โœ… No External Upload - Zero network requests (except to retailers)
โœ… 100% Open Source - Audit every line of code yourself
โœ… Transparent & Honest - No hidden agendas, no dark patterns


โœจ Features

๐Ÿ“Š Price Tracking

๐Ÿ”” Price Alerts

๐Ÿ“ˆ Price History Visualization

๐Ÿ”’ Privacy Guaranteed

๐ŸŽจ User Interface


๐Ÿš€ Installation

From Chrome Web Store (Coming Soon)

  1. Visit Chrome Web Store (link pending review)
  2. Click โ€œAdd to Chromeโ€
  3. Done! Visit any Amazon/eBay/Walmart product page to start tracking

From Source (For Developers)

# Clone repository
git clone https://github.com/mingshi/honest-price-tracker.git
cd honest-price-tracker

# Install dependencies
npm install

# Build extension
npm run build

# Load in Chrome
# 1. Open chrome://extensions/
# 2. Enable "Developer mode"
# 3. Click "Load unpacked"
# 4. Select the `dist/` folder

๐Ÿ“– How to Use

1. Track a Product

2. View Price History

3. Set Price Alert

4. Manage Settings


๐Ÿ†š Comparison

Feature Honest Price Tracker Honey Keepa
Privacy 100% local, no upload โŒ Uploads browsing data โŒ Uploads to servers
Cookie Modification โœ… Never โŒ Hijacks affiliate cookies โœ… Doesnโ€™t modify
Price Tracking โœ… Amazon, eBay, Walmart โœ… Multiple sites โœ… Amazon only
Alerts โœ… Free browser notifications โœ… Free โŒ $18/month for alerts
Open Source โœ… MIT License โŒ Closed source โŒ Closed source
Cost โœ… Free forever Free (but youโ€™re the product) Free (limited) / $18/mo
Coupons ๐Ÿšง Coming soon (verified only) โŒ Fake coupons N/A
On-Page Widget โœ… Yes โŒ No โœ… Yes

๐Ÿ”ง Technical Details

Architecture

Project Structure

honest-price-tracker/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ background/       # Service worker (monitoring, alerts)
โ”‚   โ”‚   โ”œโ”€โ”€ index.ts      # Background script entry
โ”‚   โ”‚   โ””โ”€โ”€ monitor.ts    # Price monitoring service
โ”‚   โ”œโ”€โ”€ content/          # Content scripts (page injection)
โ”‚   โ”‚   โ”œโ”€โ”€ index.ts      # Product detection & tracking
โ”‚   โ”‚   โ””โ”€โ”€ inject.ts     # On-page widget injection
โ”‚   โ”œโ”€โ”€ extractors/       # Price extraction logic
โ”‚   โ”‚   โ”œโ”€โ”€ amazon.ts     # Amazon price extractor
โ”‚   โ”‚   โ”œโ”€โ”€ ebay.ts       # eBay extractor (TODO)
โ”‚   โ”‚   โ””โ”€โ”€ walmart.ts    # Walmart extractor (TODO)
โ”‚   โ”œโ”€โ”€ storage/          # IndexedDB wrapper
โ”‚   โ”‚   โ””โ”€โ”€ db.ts         # Database operations
โ”‚   โ”œโ”€โ”€ components/       # Reusable UI components
โ”‚   โ”‚   โ””โ”€โ”€ PriceChart.ts # Price history chart
โ”‚   โ”œโ”€โ”€ popup/            # Extension popup UI
โ”‚   โ”‚   โ”œโ”€โ”€ index.html
โ”‚   โ”‚   โ”œโ”€โ”€ index.ts
โ”‚   โ”‚   โ””โ”€โ”€ popup.css
โ”‚   โ””โ”€โ”€ options/          # Settings page
โ”‚       โ”œโ”€โ”€ index.html
โ”‚       โ”œโ”€โ”€ index.ts
โ”‚       โ””โ”€โ”€ options.css
โ”œโ”€โ”€ dist/                 # Built extension (load in Chrome)
โ”œโ”€โ”€ tests/                # Unit tests
โ”œโ”€โ”€ assets/               # Icons and images
โ”œโ”€โ”€ manifest.json         # Extension manifest
โ”œโ”€โ”€ webpack.config.js     # Build configuration
โ””โ”€โ”€ tsconfig.json         # TypeScript configuration

Data Schema (IndexedDB)

// Object Store: products
{
  id: string;              // "{retailer}_{productId}"
  url: string;             // Product URL
  title: string;           // Product name
  retailer: string;        // "amazon" | "ebay" | "walmart"
  productId: string;       // ASIN, item ID, etc.
  currentPrice: number;    // Latest price
  lowestPrice: number;     // Historical low
  highestPrice: number;    // Historical high
  averagePrice: number;    // Average price
  currency: string;        // "USD", "EUR", etc.
  firstTracked: number;    // Timestamp
  lastChecked: number;     // Timestamp
  checkCount: number;      // Total checks
}

// Object Store: price_history
{
  id?: number;             // Auto-increment
  productKey: string;      // Foreign key to products
  price: number;           // Price at this point
  timestamp: number;       // When recorded
  source: string;          // "manual" | "auto"
}

// Object Store: alerts
{
  id?: number;             // Auto-increment
  productKey: string;      // Foreign key to products
  targetPrice: number;     // Alert threshold
  notified: boolean;       // Already sent notification?
  createdAt: number;       // Timestamp
}

// Object Store: settings
{
  key: string;             // Setting name
  value: any;              // Setting value
}

๐Ÿ› ๏ธ Development

Prerequisites

Setup

# Install dependencies
npm install

# Start development mode (watch mode)
npm run watch

# Build for production
npm run build

# Run tests (requires setup)
npm test

# Lint code
npm run lint

Testing Extension

  1. Build: npm run build
  2. Open Chrome: chrome://extensions/
  3. Enable โ€œDeveloper modeโ€
  4. Click โ€œLoad unpackedโ€ โ†’ select dist/ folder
  5. Visit Amazon product page to test

Adding a New Retailer

  1. Create extractor: src/extractors/{retailer}.ts
  2. Implement interface:
    export function is{Retailer}ProductPage(): boolean
    export function extract{Retailer}Product(): Promise<ProductData>
    
  3. Register in src/content/index.ts
  4. Add permission in manifest.json: *://*.{retailer}.com/*
  5. Update src/content/inject.ts with injection point

๐Ÿค Contributing

We welcome contributions! See CONTRIBUTING.md for guidelines.

Ways to Contribute

Development Workflow

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/my-feature
  3. Make your changes
  4. Test thoroughly
  5. Commit: git commit -m "feat: add my feature"
  6. Push: git push origin feature/my-feature
  7. Open a Pull Request

๐Ÿ“‹ Roadmap

โœ… MVP (v0.1.0) - Current

๐Ÿšง v0.2.0 - Next

๐Ÿ”ฎ v0.3.0 - Future


๐Ÿ“œ License

MIT License - Feel free to use, modify, and distribute.

TL;DR: You can do whatever you want with this code, as long as you include the original license.


๐Ÿ”’ Privacy Policy

Full policy: PRIVACY_POLICY.md

Summary:


๐Ÿ“ž Support


๐Ÿ™ Acknowledgments


โญ Star History

If you find this project useful, please consider giving it a star on GitHub!

Star History Chart


Made with โค๏ธ and honesty

No dark patterns. No hidden agendas. Just price tracking done right.