All work

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?

CarWatch LK home page: median asking prices for used vehicles, with a trend line per model.
CarWatch LK2026

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