CarShop
A search-and-compare engine that pulls used-car listings from across Jamaica's classifieds sites into one place, with AI-enriched details, a price-by-year view, and a loan calculator.
- 37,000+
- used vehicles aggregated
- Many sites, one search
- into a single pool
- AI-enriched
- details, price-by-year and a loan calc
The problem
Buying a used car in Jamaica means opening five or six classifieds sites, each with its own search, and trying to compare in your head. CarShop pulls all of those listings into one place so you can actually search and compare across the whole market at once.
What it does
It continuously gathers listings from Jamaica's existing car-classifieds sites, cleans them up into one consistent format, and removes duplicates of the same vehicle appearing on more than one site. The homepage is a single fast search over that combined pool — filter by make, model, year and price, with bottom-sheet filters on a phone.
Each vehicle page adds what the original listings usually don't: AI-enriched details, a chart of how price varies by year for that model, and a loan calculator — plus a clear link back to the original listing to make contact. It installs like an app, and behind it runs a full admin back-office for the team managing listings, dealers and data quality.
Key features
The whole market in one search
Instead of opening several classifieds sites, you search one combined pool of listings — so comparing a Honda across the whole island is one search, not six tabs.
Duplicates collapsed automatically
The same car posted to three sites shows up once, not three times, so the list you're scanning is the real set of vehicles, not noise.
Price-by-year, so you know if it's fair
A chart of how that model's price moves by year tells you at a glance whether an asking price is reasonable — context a raw listing never gives you.
A loan calculator right there
You can work out the monthly payment on the car you're looking at without leaving the page or guessing.
Straight back to the source to buy
Every vehicle links out to its original listing, so making contact is one click — CarShop is where you find and compare, not another middleman.
Where it stands
It aggregates and compares listings from other sites — it isn't a place individual sellers post their own cars, and there's no in-app buyer/seller messaging. Contact happens on the original listing.
Under the hood — for the technically-minded
How it's built
A set of site-specific collectors pull listings from Jamaica's classifieds sites on a schedule, normalize them into one shared shape, and deduplicate by a vehicle fingerprint so the same car across two sites becomes one record. The app itself is React Router 7 over Postgres with Drizzle, with Redis and a background-job runner behind the collection pipeline.
It's a real migration story, not a greenfield app: an older Elixir/Phoenix and Next.js stack was moved to React Router 7 and Drizzle, and shares its backend, database and sign-in with a sibling property-search app. Sign-in is delegated to a self-built OAuth identity service with passkey support that the team wrote for both apps.
The hard problems
One clean pool out of many messy sources
Each source site formats listings differently and re-posts the same car more than once. The hard part is normalizing all of it into one consistent shape and deduplicating by vehicle fingerprint, so a search returns the real set of cars rather than a pile of near-duplicates.
A search-and-compare tool, not a middleman
CarShop deliberately doesn't insert itself between buyer and seller — there's no messaging layer or seller-posting flow. It aggregates, enriches and compares, then links straight back to the source, which keeps its role honest and its scope focused.
Security reviewed before it shipped
The platform went through two rounds of adversarial security review with tracked findings, and the fixes shipped with in-code notes referencing the specific issues — including a deliberate 'fail closed, never sign sessions with a public constant in production' rule.
Built with
- React Router 7
- Drizzle
- Postgres
- AI enrichment
- PWA
Building something in this space?
Work with us →