Case Study

Driver Management App for Last-Mile Logistics Operator

A React Native driver app that eliminated paper-based job sheets, reduced failed delivery attempts by 29%, and saved an estimated 3.2 hours of admin per driver per week.

Client
Swiftline Logistics
Industry
Logistics
Duration
16 weeks
Delivered
July 2025
Cross-Platform App DevelopmentWeb Application DevelopmentApp UI/UX Design

Key Results

  • Admin time saved: 3.2 hrs/driver/week

  • Failed delivery attempts -29%

  • Proof of delivery digitised: 100%

  • Driver onboarding: 3 days → 4 hours

  • Fuel cost reporting automated

The Challenge

Swiftline Logistics operates 140 delivery drivers across four regional depots. Their existing workflow relied on:

  • Paper job sheets printed at depot each morning
  • Manual proof-of-delivery signatures on carbon-copy forms
  • Drivers calling dispatch to report failed deliveries or route issues
  • End-of-day manual data entry of completed jobs into their TMS

The inefficiency was significant: the operations manager estimated that the admin burden of the paper-based system cost the equivalent of four full-time administrative roles. Failed deliveries — where drivers couldn't locate addresses or customers weren't home — were being re-attempted without any additional context.

The objective: replace the paper system with a driver-facing mobile app that integrated with their Transport Management System (TMS) and eliminated manual data entry.

Architecture

Offline-First Design

The most critical architectural decision was offline-first. Drivers operate in areas with unreliable mobile coverage — industrial estates, rural routes, underground car parks. The app had to work without connectivity and sync when it returned.

Implementation:

  • WatermelonDB for local SQLite storage on device — all job data available offline
  • Sync queue that batches completed jobs and PODs and uploads on connectivity restoration
  • Conflict resolution for the edge case where dispatch updates a job while the driver is offline
  • Background sync via React Native Background Fetch — syncs every 15 minutes even when app is not in foreground

Proof of Delivery

Digital POD replaced carbon-copy forms:

  • Recipient signature captured via React Native Skia canvas (high-quality rendering at any resolution)
  • Photo capture for parcel-at-door deliveries and damage documentation
  • GPS coordinate captured at time of POD signature — geofenced validation checks driver is within 100m of delivery address
  • POD package (signature + photo + timestamp + GPS) uploaded encrypted to S3 and linked to job record in TMS

Route Optimisation Integration

We integrated with Google Maps Platform for:

  • Turn-by-turn navigation launched directly from job view
  • "What Three Words" API for precise delivery location where house numbers are unclear
  • Estimated arrival time calculation fed back to the operations dashboard

Fleet Operations Dashboard

A companion Next.js dashboard for depot managers:

  • Live job status board — all drivers, all jobs, real-time status
  • Exception alerts — failed deliveries, jobs delayed by more than 30 minutes
  • End-of-day summary generation (replacing manual reporting)
  • Driver performance metrics — jobs completed, POD compliance rate, average time per delivery

Results

Administrative efficiency:

  • Paper job sheets: eliminated entirely
  • Manual TMS data entry: eliminated entirely
  • Estimated admin time saved: 3.2 hours per driver per week
  • Driver onboarding time (learning the system): reduced from 3 days to 4 hours

Delivery performance:

  • Failed delivery first-attempt rate fell from 14% to 9.9% (-29%) — attributed to better address information and customer notification features
  • POD compliance rate: 100% (vs 87% on paper forms, which were sometimes lost or illegible)

Operational visibility:

  • Operations managers gained real-time visibility across all 140 drivers for the first time
  • Fuel cost reporting automated from GPS data — previously required manual odometer logging

App reliability:

  • Offline mode triggered an average of 14 times per driver per day
  • Zero data loss events attributed to offline sync in the first 90 days
  • Crash-free session rate: 99.6%

Technical Challenges

The signature capture component required significant iteration. Early versions using standard React Native touch handling produced signatures that looked thin and inconsistent on high-DPI displays. Migrating to React Native Skia — with pressure-simulation based on touch velocity — produced signatures that were both accurate and legally defensible.

The offline sync conflict resolution took longer than anticipated. The edge case of a dispatch-side job update colliding with a driver-side completion required a last-write-wins policy with an audit log — which became a valuable feature in its own right for dispute resolution.

Build your field operations app →