My Garage
A digital garage for car enthusiasts with a private fleet: every invoice, inspection and repair in one timeline, instead of scattered across a mailbox.
My Garage is a digital garage for people who love cars: one place for the full history of every car you own, from invoices and inspections to mileage and costs. Easy to keep up to date, and easy to share when you sell a car.
Where it started
I'm a car enthusiast, and a big part of that lives on YouTube. Channels like Top Dead Center and AutoAlex are what I put on in the evening, and I genuinely enjoy every video. My list of YouTubers working on cars has grown steadily over the years.
They've infected me a little, too. My own fleet has grown along with that list, to four cars by now.
And four cars need looking after. Maintenance, repairs, inspections, parts. What I was missing was one place to keep track of all of it.
The problem
My maintenance history was scattered. Every invoice is somewhere in my mailbox, some paperwork is in a drawer, and the rest lives in my head. That works, until you need it.
When I want to sell one of the cars, I'll be digging through emails and folders to show how well it was maintained. And sometimes I simply want to know: when were the brakes last done? When was the gearbox oil last changed? Answering a question like that shouldn't take an evening of searching.
That got me thinking. I couldn't find a tool that does this well.
Why not an existing app?
There are plenty of fleet management apps, but they're built for businesses: lease cars, drivers, cost centres, reports for a fleet manager. That's not me.
What I wanted is something for people with a private fleet, whether that's one car or five, who want to keep track of their cars without turning it into an administration job. Something that does most of the work itself, starting from the paperwork you already have.
Buying a used car is a matter of trust
Thinking about selling my own cars, I started looking into the problems around buying and selling used cars. One thing stood out: unless you're an experienced mechanic, it all comes down to trust.
As a buyer, you mostly have to believe what the seller tells you. And there are plenty of sellers who'd rather leave something out.
There are tools like Carfax that check a car's past for damage, mileage and other red flags. They're useful, but they only show what was registered somewhere. What they don't show is what the owner actually did to the car.
Some maintenance does get registered, but that record is far from complete. New tyres, different wheels, a new set of shock absorbers: none of that ends up in any official history. Yet it says a lot about how a car was looked after.
That's where a dossier kept by the owner can help. A complete, documented history of maintenance, repairs and upgrades, with the original invoices as proof, gives a buyer something to go on beyond the seller's word. For an honest seller, that's an easy way to earn extra trust. For a buyer, it's a lot more reassuring than "always been well maintained".
How it works
- Look up a registration plate. Choose the country, enter the plate, and see what public sources already know about the car: make, model, first registration, fuel, inspection expiry and, where available, inspection history. No account needed for that first step.
- Add it to your garage. Confirm the details, add the current mileage, and optionally earlier or foreign registrations, for imported cars.
- Import the paperwork. Upload a batch of PDFs or take photos of paper invoices. Multiple photos can be grouped into one document, with the page order adjusted.
- Let AI make proposals. Each document is read in the background. The result is a proposal: date, mileage, garage, amount, currency and the individual work items. Anything it can't read stays "unknown".
- Review and confirm. A review screen shows every proposal next to the original document. Confirm, correct, reject, or move it to another car. Proposals without warnings can be confirmed in bulk.
- The timeline. Confirmed events appear on the car's timeline, grouped by year, each with the original document attached as proof. Mileage, costs and documents each get their own view.
- A report. The history can be turned into a clean report that looks official, without ever claiming more than the data actually shows.
Design principles
- Proposed is not confirmed. AI output is always a suggestion. Only what the owner confirms lands on the timeline, and the original proposal is kept as an audit trail.
- Missing data is never a claim. "Nothing found" doesn't mean "no damage" or "no issues". Every type of data has an explicit status: found, checked but nothing found, not supported for this country, temporarily unavailable, or out of date.
- Keep the original. Original documents, units and currencies are stored as they are. Miles stay miles, pounds stay pounds. Conversion only happens for comparison, never in place of the original.
- Countries differ, the dossier doesn't. The same car dossier works everywhere. Public sources enrich it where they exist. Where they don't, documents and manual entries make it fully usable.
- Never silently merge. Possible duplicates are flagged, and the owner decides. Corrections made by the owner are never overwritten by a later sync.
- Adding a car proves nothing. Looking up or adding a car is not proof of ownership, and the app says so.
Under the hood
- Laravel with Livewire and Flux for the interface
- PostgreSQL for data, Redis and Horizon for background jobs
- Document processing in background jobs with clear statuses, automatic retries and protection against duplicates, so a document is never processed twice
- Country adapters for public vehicle data: the RDW in the Netherlands and the DVSA MOT history in the UK, behind one shared interface
- Everything runs in Docker, both locally and on staging
Status
In active development as a side project. In place so far:
- plate lookup for the Netherlands and the UK, plus manual entry for other countries
- accounts and a personal garage
- the vehicle page with timeline, documents, mileage and costs
- the import pipeline and the review flow
- a sample report
- reminders, data export and account deletion
The AI extraction is still a placeholder: before picking a model, I'll test candidates on a set of thirty real documents, judged on accuracy, how often they honestly say "unknown", the time needed to correct them, and cost.
Learnings
- Public data is uneven. The UK publishes the full MOT history, including the mileage at every test. The Netherlands publishes inspection findings, but not a complete inspection or mileage history. Designing for "partial" from the start was essential.
- "Unknown" beats a good guess. For a car's history, a wrong date or mileage is worse than an empty field. The extraction is explicitly allowed to say it doesn't know.
- Edge cases are the product. One invoice covering two cars, a payment receipt that belongs to an earlier invoice, a mileage that goes down after a dashboard replacement, a month without a day. Most of the design work went into cases like these.
- Review has to be fast. If confirming a proposal takes longer than typing it in, nobody imports anything. "Confirm and next" became the most important button in the app.
- Plan before you build. Writing out flows, data model and failure paths before writing code saved a lot of rebuilding, especially once a second country entered the picture.
Next steps
- Testing extraction models on real documents and picking one
- Connecting the live public data sources
- A small group of testers using it with their own cars and paperwork
- Importing invoices by email
- A public beta