Inspiration

We're students in Lithuania, and we kept seeing friends buy used cars almost blind. Our market is full of imported cars with patchy histories, and the same model can be a solid buy with one engine and a money pit with another. If you don't know cars, you don't know which engines to skip, what a fair price looks like, or what to check when you go to see one. We wanted something that explains all of that in plain language, for people like us.

What it does

CarCompass helps you decide which used car to look for. It doesn't list cars for sale. It covers 50 popular used cars, where each entry is one generation of a model with one specific engine.

You start in Find. You set a budget and drag a triangle between budget, reliability and performance, because you can't max out all three. The app gives you a top 3, and each card tells you what to search for in the ads: the engine, the years, the mileage and a fair price range. Below that it lists the cars you'll see at that price but should avoid, with a better pick for each one.

In Research you choose a car, a year and a mileage. You get a short bottom line, the problems that usually show up around that mileage with their repair costs, and better alternatives. Sometimes that's the same car with a safer engine. Sometimes it's the safest choice overall, with a note on what you give up.

When you're going to see a car, Before you buy checks the seller's price against typical asking prices. It tells you if the price looks suspiciously cheap, fair, or worth negotiating, and then gives you red flags and a checklist for that exact car. The app also warns you when the mileage is unusually low for the car's age (rolled-back odometers are a common trap here), and you can tap any technical word to see what it means.

How we built it

It's a static web app made with React, TypeScript, Vite and Tailwind, hosted on GitHub Pages. There's no backend and no accounts. The ranking, scores, price estimates and mileage logic are plain TypeScript functions with over 150 unit tests, plus Playwright tests for the full user journey and accessibility.

We researched the data for every car: the known problems and when they appear, repair costs at Lithuanian independent garages, and asking prices from autoplius.lt in November 2026. The photos come from Wikimedia Commons.

There are two versions. On our laptop, the app has an AI assistant (Claude) that knows which car you're looking at, and we used that version for the demo video. The public version has no AI or API code at all, so no keys can leak, and an automated check fails the build if any slip in.

We're not professional developers. We planned the project with Claude, then built it with Claude Code in small phases, with tests at every step.

Challenges we ran into

The hardest bugs were in logic that looked right on paper. When we ran the formulas on real data, the "Budget" corner of the triangle turned out to favor cars that are cheap to run, so a €30,000 Tesla won "Max budget". Cars far over budget could still show up as top matches, and the price estimate sometimes went up as mileage went up. we rewrote those rules and locked the expected results into regression tests.

The alternatives were another problem. The app suggested a slow Toyota sedan to someone looking at a sporty BMW, which isn't helpful. We added car classes and split alternatives into "similar but safer" and "safest overall".

Data gaps caused trouble too. One car had ads for only some of its years, so the app invented a €1,450 price for a 2018 model. Now it never estimates a price far from real ads.

Accomplishments that we're proud of

Thirteen models appear with two different engines, and the app shows why one is a good buy and the other isn't. That's the thing we most wanted beginners to understand. Prices are always shown as ranges from real ads, never as what a car is "worth". And the public demo is safe to share, because automated checks stop keys or AI code from ever reaching it.

What we learned

We learned to plan before coding: write a spec, build in small phases, and test first. Real data broke assumptions that seemed fine in our heads, and running the formulas on actual cars found bugs no amount of reading would have. We also learned that beginners read words better than numbers. "Cost to run: Low" is clearer than "7.4 out of 10".

What's next for CarCompass

The AI assistant needs to see the whole screen, including your search results and the cars you're comparing, not only the car page. After that: more cars, a Lithuanian translation, and possibly links to real listings that match a "what to search for" card.

Built With

  • anthropic-api
  • claude
  • claude-code
  • eleven-labs
  • github
  • github-actions
  • playwright
  • react
  • react-router
  • tailwindcss
  • typescript
  • vite
  • vitest
  • wikimedia-commons
  • zod
Share this project:

Updates

Submission history