
About Shopa.guru
I’m a shopper who likes building tools. Shopa.guru is the one I wanted: honest price history, better search and more data for shopping.
80+ shops · ~2 million prices a day · history since January 2024
It follows Czech e-shops for groceries, drugstores, electronics, DIY and sport, plus a lot of European bike shops. It’s a side project, built and run by one person in spare time.
Three things that bugged me
Prices that play gamesCrossed-out “original” prices that barely existed, and prices raised just before a sale. Deals ignores the shop’s “was” price and compares with what it really charged.
Search that can’t find thingsMany shops, especially on older systems, have a search that misses what they sell. Search looks through every monitored shop at once.
Too little to go onWhat does it usually cost? What’s new? Price history on every product, new arrivals in Deals, offers from cycling forums and the odd pattern written up in Posts.
What counts as a real deal
A product shows up in Deals only when today’s price is at least 5% below the lowest price the shop asked in the previous 90 days. The shop’s own “was” price is ignored.
Price increases work the same way, against the 90-day high. A product with no price in the last 90 days is listed as new, and needs some history before it can count as a discount.
Common sense over the legal minimum
EU rules compare a discount with the lowest price of the last 30 days. Here the window is 90 days, and a coupon anyone can use or a free club anyone can join counts as a price too. A “discount” that’s only big compared with a price nobody really paid isn’t one.
Where the data comes from
- Every morning
A scraper visits each shop and saves the price of every product it can find.
- Prices anyone can get
What an anonymous visitor sees, no logins or personal coupons. For some shops that includes public coupon codes and club prices, because anyone could use them.
- A polite visitor
Once a day, one page at a time by default, mostly category pages where one request covers dozens of products. I want shops to barely notice.
- No arms race
The scraper gets past routine bot checks. If a shop works hard to keep me out, I stop watching it, and shop elsewhere. Their choice.
- Sometimes with gaps
Shops change their websites and bot protection all the time, so a scraper breaks now and then. The Shops page shows how each shop’s latest run went.
No price history for a product?
Usually the shop isn’t monitored, the product was listed only recently, or the scraper doesn’t reach that part of the shop’s catalogue. And if a price looks wrong, let me know.
Browser extension
Not in the Chrome Web Store yetShows the price history right on the shop’s product page, next to matching offers from Heureka and Idealo and the Hlídač shopů history.
Is it like Hlídač shopů?
Yes, and Hlídač shopů came first. It’s run by a team, has years of history and covers more of the big Czech and Slovak shops, so use it too. Shopa.guru started as a way to watch the shops I actually buy from, which is why there are so many bike shops from across Europe.

Missing a shop? Found a wrong price?
Tell me, or suggest anything else. Messages are anonymous unless you leave a contact.
Credits
- Hlídač shopů – the original and the inspiration
- Crawlee – scraping library, by Apify
- Impit – gets past picky bot protection
- TimescaleDB – where all those prices live
- Hetzner – the servers, for cheap
- Coolify – deploys this website
- Next.js – the website
- Mantine – UI and charts
- WXT – the browser extension
- Sentry – errors (hopefully few)
- PostHog – analytics (barely used)
- Leprechaun icon – by Alpár-Etele Méder