bc6090abe885ae136a961a247cca5c9cd9577a6e
Save a search and get a shareable URL at /share/<id> that preserves: - Search query - Selected stores - Filter text - Excluded stores - Sort column and direction Backend: - New shared_searches table (migration 005) - POST /api/share — saves search state, returns share_id - GET /api/share/:id — loads saved search config Frontend: - Share button appears on results page after search completes - Copies link to clipboard with confirmation message - /share/[id] page loads saved config, re-runs search with same store selection, and restores all filters - Shows "Shared" badge in header with "Search Again" link Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Price Hunter
A self-hosted price comparison engine. Search across multiple online stores simultaneously, compare prices, and find the cheapest option — all from a single, clean interface.
Features
- Unified search — One search bar, all your stores, results sorted by price
- Store management — Add stores with CSS selector configs, organize by category
- Store testing — Per-store test pages to verify scraping before going live
- Categories & groups — Filter searches by category or custom store groups
- Scrape health — Monitor success rates, response times, and error logs per store
- Self-hosted — All data stays local. No ads, no tracking, no external dependencies.
Quick Start
Development
npm install
cd src/client && npm install && cd ../..
npm run dev
Open http://localhost:5173 (frontend) — API runs on http://localhost:3000.
Docker
docker compose up
Open http://localhost:3000.
Tech Stack
- Backend: Node.js, Fastify, sql.js (SQLite)
- Frontend: SvelteKit, Tailwind CSS
- Scraping: Cheerio (CSS selectors)
- Deployment: Docker
Adding a Store
- Go to Stores > Add Store
- Fill in the store name, base URL, and search URL (use
{query}as the search term placeholder) - Define CSS selectors for: product container, name, price, link, and optionally image
- Save and use the Test page to verify results
- Enable the store to include it in searches
License
MIT
Description
Languages
Svelte
56.7%
TypeScript
39.6%
JavaScript
1.4%
CSS
1.2%
Dockerfile
0.5%
Other
0.6%