← All case studies

Case study · In production

Fleet management: from WhatsApp to a production application

Scattered photos and untraceable reports become a searchable history for every vehicle.

  • Next.js
  • FastAPI
  • PostgreSQL
  • Supabase
  • Docker

The problem

Drivers reported vehicle damage over WhatsApp. Photos arrived without reliable context, there was no management dashboard or audit trail, and information went missing.

The process, before and after

Before

  1. A driver spots damage to a vehicle
  2. They take photos and send them over WhatsApp
  3. Someone in the office manually gathers the photos and context
  4. The information is copied into a spreadsheet or email
  5. There is no searchable history for each vehicle

After

  1. The driver scans the vehicle’s QR code
  2. They upload photos and complete a guided form with a checklist and digital signature
  3. The system validates and stores the information with vehicle, date and status metadata
  4. The report moves through draft → submitted → reviewed → resolved
  5. Management uses a central dashboard with a complete history for each vehicleIn production
Before and after: each process, step by step.

How I built it

It was built as a custom product from the start: Next.js, FastAPI, PostgreSQL, Supabase photo storage with signed URLs, and Docker containers on a VPS — designed for a photo-heavy workflow, without the interface or performance limits of a generic template.

A logistics business uses it in production every day.

What I learned

Production exposed a CORS misconfiguration and timeouts when uploading 12 MP photos. A full product rebrand also touched the database, API, frontend, email templates, Docker and storage bucket. The lesson: version the API from day one and introduce structured logging early to avoid pain later. User-facing error messages were improved after launch, not before.

Get in touch