FixPoint Drive
Vehicle ownership, made simpler.
A live app that keeps every vehicle in a household in one place: its documents, what's due next and what to do about it.
- Role
- Frontend, server layer and the Docker build
- When
- September 2026 to now
- Status
- Live, launching in Bhopal
- Sheet
1 day
from the first commit to the full MVP frontend
6 days
to the first production release
425
of the frontend's 437 commits in its first month are mine
148
test files, with Playwright end to end tests on top
Overview
People buying their first vehicle in India get a stack of paperwork nobody explains: the RC, insurance, PUC, service dates and challans. It usually ends up split across the glove box, the phone gallery and email.
FixPoint Drive puts every vehicle in a household in one place, with its documents and what's due next. FixPoint is Mohit Sharma's company; we rebuilt the product from scratch in September 2026. The full MVP frontend landed the day after the first commit, and the first version reached production six days in.
What I built
Frontend
- The whole Next.js 16 app: the public website (features, pricing, partners, FAQ and more), sign up and onboarding, vehicles, documents, reminders, cost calculators, partner tools for service centres, driver accounts and an SOS page.
- Four themes, including Simple, with larger text and 56px controls for older family members.
- API calls typed from the backend's OpenAPI schema, with server data kept in TanStack Query.
Server layer
- Next.js route handlers between the browser and the Django API: sign in by email, an emailed code or Google, and sessions kept in HttpOnly cookies.
- One refresh path for Django's rotating refresh tokens, and a proxy that forwards each visitor's IP so rate limits count people, not the server.
- Document files and streamed AI chat responses served through the same layer.
Delivery
- A standalone Next.js server in a Docker image, shipped by its own GitHub Actions pipeline, set up by Sahil, independent of the backend.
- Release time cut from about 32 minutes to about 10, by fixing a stalled build cache and moving the long end to end suite off the release path.
- Feature flags and a capability registry, so each feature switches on in production as soon as its API is ready.
Quality
- Vitest unit tests, and Playwright end to end and accessibility tests on mobile and desktop.
Working as two
- A written list of API asks for Sahil, now past 120 items, most with a “done when” line.
How it works
- Browser
- Next.js route handlerssessions in HttpOnly cookies
- Django APIby Sahil
The browser talks only to Next.js route handlers, which keep the session in HttpOnly cookies and forward each request to the Django API.
Key decisions
Build the screens ahead of the API
The frontend is built ahead of the backend. Anything whose API isn't ready yet shows “Coming soon”, so every record a user sees is real.
In Fig. 1:BrowserDjango API
Work document status out from expiry dates
The app computes each document's status (expired, due soon, active) from its expiry date, and every due date shows where it came from.
In Fig. 1:Browser
Treat dates read from a document as suggestions
When a document is uploaded, its dates are read and shown with a “Use this date” button. Nothing is saved until the owner confirms, and nothing is labelled verified.
In Fig. 1:Browser
Say “All good” only when every date is known
A vehicle shows “All good” once its insurance, PUC (not for electric vehicles) and service dates are known and none is due. Otherwise it lists exactly what's missing.
In Fig. 1:Browser
Keep tokens out of the browser
The browser never holds a JWT. Route handlers keep the session in HttpOnly cookies, and every refresh goes through one function because Django rotates refresh tokens.
In Fig. 1:BrowserNext.js route handlersDjango API
Ship as soon as the core works
Features go live behind flags as soon as their core works, and the remaining API work is tracked openly on the asks list.
What's live
- Sign in by email, an emailed code or Google
- Vehicles, with make and model suggestions
- A document vault, with dates read from uploads
- What's due next, for every vehicle
- 51 cost calculators
- Driver accounts, service booking and partner tools
- Four themes, including Simple
Why the design keeps changing
On 25 October we started the design of the app's signed in screens again from nothing.
We change the design on purpose. Each round teaches us more about who the app is for and what the brand should feel like, and we keep going until we look at it and say: this is the one.
Stack
Frontend
Server layer
Testing
Delivery
Backend (Sahil)