Skip to main content

Dev Station Technology

Building TruckFleet Labs: Fleet Operations That Survive a Dead Signal

Custom Software Development

A short-haul operator came to us running 42 trucks on a spreadsheet with nine tabs and a group chat with 61 people in it. The setup worked for four years, on the condition that one dispatcher stayed at the desk. On the day he was away, it took the stand-in half a shift to find out where the trucks were.

Dev Station built TruckFleet Labs: a dispatch console on the web and an iOS app for drivers. The part that decided the whole project was not the map. It was what happens when a driver loses signal in a basement loading bay.

TruckFleet Labs dispatch dashboard with fleet KPIs, delivery performance chart and live truck map
Driver app running offline in the field, with the trip still progressing, 30 GPS points and 2 delivery records held on the phone until signal returns

The Challenge

Six problems shaped the brief, and every one of them came from a real cost the operator could name.

1. Forty Minutes to Answer One Question: A customer rang about eight pallets. The spreadsheet cell was empty, the driver phone was engaged, and the warehouse said the truck left at six.

2. Sixty-Eight Phone Calls a Day: The dispatcher spent most of the working day asking drivers where they were, and taking the same question from customers.

3. Proof of Delivery That Did Not Exist: Six disputes a month over whether a drop had happened. Each one cost around three hours of phone calls and paper searching, with no photo and no signature to end the argument.

4. Loads Leaving Short: Trucks left the dock missing a consignment, and the error surfaced at the first drop. Every one of those turned into a return trip.

5. Route Order Set by Habit: Drivers sequenced their own stops. One daily route ran 112 km because it included an 11 km doubling back that nobody had questioned.

6. No Signal, No Record: Loading bays, basements and steel-framed units kill mobile data. Any system that required a live connection at the moment of delivery was going to lose records.

Our Solution​

  • A console built around one tick: sixteen screens refresh on a single cycle, set to 1, 2.5 or 5 seconds.
  • Offline by default: every record is written to the phone first, then drained from a queue the driver can see.
  • Proof that ends an argument: receiver name, PO number, a photo and a signature before a drop can be closed.
  • A loading gate at the dock: every consignment is scanned, or the truck is not released.
  • The trailer as a grid: slots A1 to C5, tap to assign, hard stop at 13,500 kg.
  • Route sequencing with the saving shown: stops re-ordered, metrics counted down, the saving stated in kilometres.
  • Location tracking with a stated boundary: GPS only between 06:00 and 18:00, and only once a trip is underway.
  • Licences tied to roles: five roles, six permission switches, seats enforced per role at the point of invitation.
Cargo assignment screen with a side-on trailer slot grid and a capacity ring at 48 percent of 13.5 tonnes

Technology Stack

  • Dispatch console: React 18, TypeScript, Vite
  • Charts and maps: SVG rendered in-house, no charting library, stroke-draw and position transitions handled by CSS rather than per-frame redraws
  • UI: Geist type family, Lucide icons, a single status colour system applied across all sixteen screens
  • Driver app: native iOS, SQLite on device, background location restricted to the dispatch window, canvas capture for signatures
  • Backend: Python 3.13, FastAPI, Pydantic 2
  • Database: PostgreSQL with PostGIS for stops, legs and geofences
  • Queue and cache: Redis for the sync queue and the live update fan-out
  • Telematics ingest: MQTT, with position and engine data normalised before storage
  • Media: S3 compatible object storage for delivery photos and signature images
  • Authentication: role-based access control, SSO and audit log on the enterprise tier
  • Payments: Stripe subscriptions with per-role seat enforcement
  • Testing: pytest on the backend, Playwright for the console, XCTest for the iOS app
  • Deployment: Docker multi-stage build with Docker Compose

Key Outcomes & Impact

  • Calls asking where a truck is: 68 a day down to 23
  • Morning route planning: 50 minutes down to 12
  • On-time delivery rate: 91.4% up to 95.8%
  • Failed drops needing a return trip: 17 a month down to 9
  • Paperwork disputes: 6 a month down to 1, from the photo and signature requirement alone
  • Trucks missing a service date: 2 or 3 a month down to zero
  • Fuel on 11 fixed-route trucks: down 6.2% after route sequencing, which covered the platform cost several times over
  • One route: 112 km down to 97 km, an 11 km return leg removed
  • Driver adoption: all 38 drivers using the app by week three
  • Sync outage: 2.5 hours with no live view and no data loss, 71 queued records delivered automatically
  • Built by Dev Station: custom software for engineering, manufacturing, logistics and industrial teams in the UK and the US, covering offline-first field apps, device and telematics integration, inspection and proof-of-work platforms, and the data layer behind them
Route planning screen with stop sequence, map legs and distance, drive time, fuel cost and CO2 metrics

Talk to the engineers, not a sales team

Thirty minutes on your current system and the integration constraints. No sales pitch.

Our Certificates

Let's Talk