Skip to content
DebuggersEdge

Case study · Logistics

An offline-first mobile app for crews with no signal

Technicians filled in paper job sheets that were re-typed into a spreadsheet two days later, so dispatch never knew what had actually been completed.

Logistics
A lorry on an open road under a clear sky
Logistics

Chapter 01

The challenge

Technicians filled in paper job sheets that were re-typed into a spreadsheet two days later, so dispatch never knew what had actually been completed.

Getting from there to a working product was not only a matter of writing code. A few things made this project harder than it first looked:

  • Most job sites had no mobile coverage, so anything that needed a connection would not be used
  • Two technicians could edit the same job before either synced
  • Crews were used to paper and had little patience for a slower replacement
  • Dispatch needed the data in the spreadsheet format the rest of the business already relied on

Chapter 02

What we did

A React Native app with a local database and conflict-aware sync, plus a lightweight dispatch dashboard on the web.

1.Local-first data

The full day's jobs, checklists and customer details are stored on the device. The app behaves identically with or without signal.

2.Conflict-aware sync

Changes are queued and merged field by field in the background, with the rare genuine conflict flagged to dispatch instead of silently overwritten.

3.Faster than paper

Large targets, sensible defaults and photo capture in place of written descriptions, tested with technicians on site before build.

4.Dispatch dashboard

A web console showing live job status, with exports matching the existing reporting format so nothing downstream had to change.

Chapter 03

The outcome

Headline result

Job data available same-day instead of after 48h

  • Paper job sheets removed entirely
  • Shipped to both stores in 9 weeks

Chapter 04

Built with

The tools chosen for this project, each for a reason specific to the problem rather than out of habit.

  • React Native
  • Expo
  • SQLite
  • Node.js
  • PostgreSQL
  • Next.js

More work

Other problems we have solved.

A bright, empty clinic reception desk

Healthcare

Replacing three tools with one booking platform

Scheduling, reminders and payments lived in three disconnected systems, and reconciling them was somebody's entire Friday.

No-shows reduced by automated reminders

Next step

Have a problem that looks like this one?

Tell us about it in a few sentences. We will reply within one business day with an honest read on scope, cost and whether we are the right team.