Self-hosting & cloud

PriceBuddy - Self-Hosted Price Tracker for Any Online Store

PriceBuddy bets its whole value on one hard problem: getting a reliable price off any shop page you throw at it. Most trackers handle Amazon and a handful of big retailers, then quietly fail on the niche store where you...

PriceBuddy - Self-Hosted Price Tracker for Any Online Store

PriceBuddy bets its whole value on one hard problem: getting a reliable price off any shop page you throw at it. Most trackers handle Amazon and a handful of big retailers, then quietly fail on the niche store where you actually wanted the alert. PriceBuddy’s answer is to let you define how each store is read — with CSS selectors, regular expressions, or JSONPath — and to fall back on a headless Chrome and an LLM when a plain HTTP fetch isn’t enough. That flexibility, not the dashboard, is the reason to look at it.

It’s a self-hosted Laravel application (PHP is 88% of the codebase, with Filament for the admin UI), and it’s actively maintained: version 1.0.51 shipped on 20 June 2026, one of 22 releases, against roughly 970 stars, 54 forks, and 15 contributors. The flip side of that activity is about 55 open issues — normal for a tool at this pace, but worth a glance before you commit.

Getting it running

Setup is deliberately boring, which is the point:

touch .env && docker compose up -d

Grab the project’s docker-compose.yml, run that, and you land on http://localhost:8080 with a default admin@example.com / admin login to change. The whole stack — app, database, and the background cron that actually fetches prices and fires notifications — comes up together, so there’s no separate scheduler to wire in. Docker is the only stated prerequisite; a manual install exists but the project doesn’t recommend it.

How it tracks “anything”

The scraping model is the core of the tool, and it has three layers:

  • Selectors you control. Each store is configured with CSS selectors, regex, or JSONPath, so you tell PriceBuddy exactly which element on the page holds the price. Paste a link from a store that’s already known and it works immediately; for a new one you define the rule once.
  • A real browser for stubborn pages. Sites that render prices in JavaScript defeat simple fetchers. PriceBuddy hands those to SeleniumBase driving Chrome in its own container, reached over a REST API, so client-side prices still resolve.
  • Optional AI repair. When a rule breaks or a page is awkward, it can call an LLM — OpenAI, Anthropic, Gemini, or a local Ollama model — to pull the price out and even suggest fresh selectors. This is opt-in, not a hard dependency, so the tool runs fine without handing anything to a third party.

On top of extraction, it tracks availability as distinct states — in stock, pre-order, back order, out of stock, discontinued — which means you can ask it to tell you when something comes back in stock, not only when it gets cheaper. Unit-price comparison and multi-store comparison for the same product round out the buying-decision side. Checks can run on a schedule from every five minutes up to once a day.

Notifications and day-to-day use

Alerts go out through a long list of channels: in-app, email, Pushover, Gotify, Apprise, Telegram, Discord, and ntfy. It’s multi-user, with per-user settings, product tags, and dashboard filtering, plus price-history charts and an optional SearXNG hook for discovering products to add. Light/dark mode and a mobile-responsive UI are there too. None of this is novel on its own, but it’s a complete enough feature set that you won’t immediately hit a wall.

The catch worth reading: the license

This is where PriceBuddy needs a clear-eyed look. The LICENSE.md is GPL-3.0 with modifications, and the modifications matter: it adds a non-commercial restriction. Personal, self-hosted use is free and unrestricted, but the license states you are “prohibited from distributing, selling, or offering access to the software in any manner that involves profit-making activities” — which it spells out to include selling a hosted version or bundling it into a paid product. So it’s open source you can read, run, and modify at home, but it is not OSI-standard GPL and you cannot build a paid service on it. If you’re an individual self-hoster that changes nothing; if you had any commercial plan, read the license first.

Who it’s for

PriceBuddy fits the person who already self-hosts, wants price and stock alerts across many stores — including the obscure ones — and is comfortable writing the occasional CSS or JSONPath rule to make a new store work. The Selenium-and-AI fallbacks mean you rarely have to give up on a page. If you’d rather not configure selectors at all, or you want a tool that surfaces multiple candidate prices and lets you arbitrate, the PriceGhost write-up in the self-hosting section covers a close alternative with a different philosophy.

The honest summary: a mature, well-maintained, genuinely flexible price tracker whose only real asterisk is a non-commercial license. For home use that asterisk is harmless.

See for yourself

Read the feature list, skim the license, and pull the compose file at github.com/jez500/pricebuddy, or browse the project documentation at pricebuddy.jez.me.

Share

X LinkedIn