Project 002 — build · Jul 2023

Vent.

Vehicle Expense Normalization Tool. A garage for people who track every part, mod and dollar: service history, fill-ups, registration, loans, and cost-of-ownership analytics on top of all of it.

When
July 2023 — ongoing
Stack
Next.js · TypeScript · Supabase · MUI · Turborepo
Status
Live
Site
vent-tool.vercel.app →
Vent’s landing page: keep your vehicle running longer, for less
The landing page.
Sector 1 — why

It started as a spreadsheet.

Tabs in a spreadsheet for one car: Overview, Expense, Loan, Engine Rebuild. Someone who does their own work wants the full financial and mechanical history. Someone newer to it wants to know what doing the work themselves is actually saving. Vent is meant to answer both without the spreadsheet.

I have tracked a lot of my cars in Excel over the years. At some point I was tired of looking at Excel.

Sector 2 — how

How it’s built.

The repo has personas, themes, epics and a phased roadmap, and the work follows it. Phase 1 restructured the code into a Turborepo monorepo (a Next.js web app, an Expo scaffold for iOS, and a shared @vent/core data layer) and redesigned the layout: left sidebar, a Forza-style garage grid you can drag to reorder, and a vehicle dashboard with a stat strip and a service timeline.

Phase 2 was the core: two-step VIN onboarding with NHTSA lookup, service events with line items and photos, per-vehicle analytics. Phase 3 added fill-ups, registration, loan tracking (cash or financed, APR, term, payment schedule), a combined vehicle history, and an analytics page with total cost of ownership and $/month and $/mile per category. Phase 4 is the community side: a public build page per vehicle, an Explore feed, comments, a forum with full-text search, notifications. A marketplace and garage-level analytics come after that. Phase 5 is the native iOS app on the same core.

Underneath, Supabase handles Postgres and auth with row-level security on everything, and public reads go through security-definer RPCs. A DynamicForm component turns a Zod schema and a list of sections into a react-hook-form UI. MUI for components, Recharts for the analytics.

Sector 3 — what stuck

Lessons.

  • Putting a UX gate in the roadmap before the community phase meant those features landed on a consistent product instead of a half-redesigned one.
  • Sharing a data layer between web and mobile was easy to set up early. It would have been a pain to add later.
“Every part, every mod, every dollar.”

Try it.

Free to start. Add a vehicle by VIN and most of the details fill in from the lookup.

Open Vent →