Tyre Price Compare
A live price tracker that scrapes and compares Malaysian tyre retailers by size and brand.
category: technical · tags: Python, MariaDB, Web scraping, Cron
Tyre Price Compare answers a question that’s surprisingly hard to answer in Malaysia: “what’s actually the best price for this tyre size, right now?” Most retail sites either don’t publish price online or bury it behind a quote form — so this scrapes the sites that do, tracks price history, and surfaces the cheapest option per size and brand.
What it does
- Scrapes tyre listings daily from Malaysian retail sources with real published prices (starting with autolaju.com), normalizing brand/size/price into a common schema.
- Tracks price history over time rather than just a current snapshot, so trends and drops are visible, not just a single number.
- Sends a push notification via a self-hosted ntfy instance when a watched size/brand combination drops in price.
- Serves a public, live comparison dashboard — no login required, since it’s market data rather than anything personal.
Technology & approach
- Scraper: Python, run on a daily cron job, with a declarative source config so adding a new retailer is a config change rather than new scraping code for the common case.
- Database: MariaDB, self-hosted alongside the rest of the site’s infrastructure.
- Dashboard: PHP querying the database directly — live, no static rebuild step, the same pattern used by Race Compare.
- Notifications: the same cron + ntfy self-hosting pattern used across this site’s other automations.
It’s an early proof of concept, not a finished product — source coverage is still limited (a few major brands, a gap on some budget brands), and it’s built to be genuinely useful to check before buying tyres, not just a portfolio piece.