Roga Digital
All work
LL-005 · Automotive · Used-vehicle ops · Live · in production

Carevo · Logistics

Multi-lot vehicle ops, vendor coordination, and QR-coded key tracking for an Eastern Canadian used-vehicle dealership.

One mobile-first system for vehicles, services, vendors, lots, and deliveries — running across multiple Carevo lots since 2023, with vendors updating their own work and a QR scan on the key fob being the entry point.

Context

Used-vehicle dealership operations are a coordination problem dressed up as a paperwork problem. A car arrives. It needs a service. It needs a detail. It needs a motor-vehicle inspection. It moves between lots. It eventually sells, then needs to be delivered. Each step involves a different vendor, a different person, and a different way of finding out whether the previous step is actually done.

Carevo runs that operation across multiple lots in Eastern Canada. The brief was to put the whole flow — vehicles, services, vendors, lots, deliveries, and the audit trail behind all of it — behind a single mobile-first web app, with a QR scan on the key fob as the way in.

The brief

  • One system, every lot. Carevo runs vehicles across multiple lots; the app needs to be the single ledger for all of them.
  • Vendors are first-class users, not bolt-ons. Service shops, detailers, MVI vendors — they update their own work in the system rather than emailing status to a logistics coordinator.
  • The phone is the primary device. Lot staff and vendors are walking around vehicles, not sitting at a desk. The interface has to work with one thumb on a hot afternoon.
  • The key is the entry point. A QR tag on the key fob lets anyone with permission scan, see the vehicle’s current state, and update it. No “what’s the stock number?” hunt.
  • Build a real audit trail. Who did what to which vehicle, when. Vehicles have value; ops decisions need to be reviewable.

How it works

The app is a focused operations console — not a CRM, not a sales tool, not an inventory portal — and it stays focused on purpose.

Carevo Logistics dashboard with a left sidebar listing Dashboard, Vehicles, Services, Tasks, Vendors, Lots, Deliveries, and Audit. The main view shows an Action Items section (currently clear) and an In Progress section grouped by vendor (NAB, CarRevive) with a vehicle service request beneath each.
Dashboard — outstanding action items and in-progress work, grouped by the vendor responsible.

The dashboard is built around two questions: what needs my attention? and what’s already in flight, and with whom? Service requests are grouped by vendor, so the next phone call (or the next non-call) is obvious from one screen.

The vehicle ledger

Every vehicle across every lot lives in a single searchable list — colour, year/make/model, lot, status. Status surfaces (Sold, Available, Delivered) read at a glance because the goal isn’t to admire data, it’s to find a specific car fast.

Vehicles list with columns for ID, Color, Vehicle (year/make/model), Lot (Bedford Office or Main Office), and Status (Sold pills on some rows). A search bar, a 'Show delivered' toggle, and a 'New Vehicle' button sit above the list.
Vehicles — every car on every lot, searchable, filterable, with status surfaced in one column.

The vehicle detail view

Scanning a key tag — or tapping into a vehicle from the list — lands here. This is the screen that does the work.

Vehicle detail view for a 2025 MAZDA CX-5 (V5628). Status pills (Available / Sold / Delivered) and condition pills (Fuel / Battery / Tire / Engine / Dirty) sit at the top, followed by quick actions (Edit Details, Add Task, Add Note, Request Move, Request Service). Below: Vehicle Specs (VIN, Stock #, Trim, Color), Location & Mileage (Home Lot, Cleanliness rating 'Lightly Used 4/10', mileage), and a Notes section.
Vehicle detail — status, condition, location, and the actions someone standing next to the car actually needs.

A few things earn their keep on this screen:

  • Status and condition are separate. Sold is a status; Dirty or Low fuel is a condition. Treating them as one field would conflate “what’s happening to the car” with “what’s wrong with it right now.”
  • Cleanliness as a numeric rating. Detail vendors care about the gap between current state and target state, not a yes/no flag.
  • Quick actions are verbs, not menus. Request Move, Request Service, Add Task, Add Note — the actions someone standing next to the vehicle would actually take, surfaced one tap from the scan.
  • Tabs (Details / Services / Tasks / Logs / Tag). The Logs tab is the per-vehicle audit trail; the Tag tab regenerates the QR if a key fob’s tag is lost or replaced.

Services and vendor coordination

A service request is a small workflow — created with instructions, assigned to a vendor, tracked through stages, and closed out when the vendor marks it complete.

Vehicle Services tab for the same 2025 MAZDA CX-5 showing a service request in Complete state with a stepped progress indicator. Service Instructions: 'MVI Needed'. Home Lot: Main Office. Vendor: CarRevive. Created May 4, 2026 by Colton; Last Updated May 8, 2026. A 'View Request' button at the bottom.
Service request — instructions, vendor, lot, timestamps, and the person who created it. Stepped progress indicator at the top.

The vendor portal is the same application, scoped down. A vendor signs in and sees only the requests assigned to them, can update progress, and can close the request when the work is done. Logistics doesn’t have to chase a status update; the vendor is the one with the wrench.

Deliveries

When a vehicle sells, it gets delivered — and Carevo wanted both the operational view (which cars are queued for delivery) and the management view (how the lot’s actually performing month over month).

Deliveries view with a note that records older than 3 months are auto-removed every Sunday. A 3-Month Delivery Comparison shows May (current) at 137 deliveries, April at 0, and March at 3, with horizontal bars. Stat tiles below show Total (140), Monthly Average (47), Best Month (May 137). Below that, a 'Vehicles for Delivery' grid lists upcoming deliveries.
Deliveries — the operational queue and a rolling three-month performance view, with auto-cleanup of stale records.

The auto-cleanup line at the top is doing real work: ops data ages out automatically so the view stays focused on the current quarter rather than slowly turning into a graveyard.

How it’s built

  • Front end — Nuxt 4 on Vue 3.5, TypeScript, Tailwind. shadcn-vue / radix / reka primitives for the component layer; Lucide and Iconify for the icon set.
  • State — Pinia for client-side state, scoped narrowly because the source of truth lives server-side.
  • Backend — Supabase for auth, real-time, and Postgres hosting. Prisma sits on top of the same Postgres for schema-first model definitions and typed queries from server routes.
  • QR layervue-qrcode-reader for in-browser camera scanning (no native app install for vendors), qrcode for tag generation, and the per-vehicle Tag tab to regenerate or reissue if a key fob’s tag is lost.
  • Multi-vendor access — vendors are first-class users with a permission model that scopes them to their own assigned work. The same application code serves Carevo staff and vendors; access is what differs.
  • Observability — Sentry for errors and performance; an Audit surface in-app for the operational version of the same question (“what changed, by whom, when”).
  • Quality gates — Vitest with happy-dom for unit and component, ESLint and Prettier on every commit, a pnpm ready script that runs lint, format, schema validate, typecheck, tests with coverage, and a build before anything ships.
  • Hosting — small footprint; cheap to run at the per-lot scale Carevo needed.

Outcome

The app has been the daily operations system for Carevo’s lots since 2023. What it changes:

  • Vendors update their own work. Logistics doesn’t field “what’s the status?” calls because the status is in the system, updated by the person doing the work.
  • The QR-on-the-key flow eliminates the lookup tax. Scan the key, see the vehicle, take the action. No stock-number hunt, no spreadsheet open in another tab.
  • Multi-lot operations on one ledger. Vehicles, vendors, services, lots, deliveries — one system, queryable across the whole operation.
  • A real audit trail. Per-vehicle logs and an organization-wide audit surface, because vehicles have value and ops decisions need to be reviewable.

The screenshots in this case study are pulled from the live application — the May 2026 delivery numbers (137) are real production data, not a demo.

A note on the build

Carevo is the longest-running project in the studio’s portfolio, and the one with the most context worth knowing.

It went from blank repo to MVP in four months, with a couple more months of focused tweaking after that, and has been continuously maintained since. The first release was in 2023 — before the AI-coding revolution. There was no Claude Code, no Cursor, no agentic dev loop. It was built one line at a time, by hand, the way real-product software was always built.

That’s worth knowing for two reasons. First, because the surface area you’ve just read about — multi-lot vehicle ledger, vendor portal, QR flow, services, deliveries, audit — is what a single developer can ship in four months when the brief is clean and the stack choices earn their keep. Second, because the parts that have aged well have aged well because they were thought about up-front. There was no AI to hand-wave a pattern into existence; every choice was made on purpose.

The same product today would be faster to build. It would not, on its own, be better.

What’s next

Active maintenance and incremental capability work, driven by what Carevo’s lot operations actually need next. For specifics on the QR flow, the vendor permission model, the multi-lot schema, or how a stack like this scales without ballooning costs — book a call.

Got a project like this?

The first call is a free 30 minutes.