CarWatch LK
Used-vehicle asking price trends, collected from public marketplaces.
- Kind
- Product
- Role
- Solo: data pipeline, web app, deployment
- Period
- 2026
- Status
- Live
- Stack
- TanStack Start, React 19, TypeScript, Supabase, Cloudflare
What is a fair asking price for a given model and year, and how has it moved?

Why it exists
Vehicle prices are negotiated in the dark. Listings are scattered across marketplaces, sellers ask whatever they hope to get, and the number disappears the moment a vehicle sells, so buyers have nothing to anchor a negotiation to.
How it works
A collector reads asking prices from public marketplaces, normalises each listing into model, year and price, and stores snapshots over time in Supabase. The web app turns that history into trends: what a model-year is being asked for now, and how that number has moved.
The site is a TanStack Start app running on Cloudflare, with the ingestion pipeline kept separate so a scrape failure never takes the site down.
Trends, not listings
The product deliberately does not re-publish marketplace listings. It keeps the history of asking prices, because movement over time is the thing no single listing can tell you.
More value per data point, but the product is only as good as its longest time series.
Public data only
Every number comes from public marketplaces, and the pipeline runs against saved fixtures in tests so a markup change is caught before it corrupts the history.
No privileged data, so coverage is bounded by what is public.
Want something like this built?
Email me