Book a 20-min call

Proof

National logistics operator

One fleet and dispatch platform replacing three legacy systems, carrying over a thousand concurrent users.

39%

Revenue growth, year one

LogisticsProject outsourcing9 months, ongoing

The challenge

The operator ran its business on three systems that had each been correct at the time they were bought. A transport management system held bookings and invoicing. A separate warehouse tool held stock and gate movements. Dispatch itself lived in phone calls, messages and a wall planner. None of the three agreed on what a shipment was, so the same consignment carried three identifiers and three statuses.

The cost was operational rather than technical. Controllers spent their shift reconciling instead of moving freight. Customers were quoted delivery windows that the dispatch team could not commit to. Month-end took a week because invoicing had to be checked against movements that were recorded somewhere else. Growth had already stalled twice on the same constraint: adding vehicles added reconciliation work, not capacity.

Two previous attempts to replace the transport management system had been abandoned mid-way, so the internal appetite for a big-bang cut-over was gone. Anything we proposed had to keep the operation running from day one.

What we did

We started with four weeks in the depots, mapping the shipment lifecycle as it actually ran, including the exceptions that never appeared in any process document. That produced a single shipment model covering booking, allocation, transport, delivery and invoicing, with one identity carried through all of it. Everything after that was built against that model.

Delivery ran in stages that each stood on their own. First the operational core and dispatch, running in parallel with the existing process on one lane. Then the driver application with offline capture, proof of delivery and cash-on-delivery collection, because that was where the customer-visible improvement was. Then warehouse movements, then invoicing, then the customer tracking portal in Arabic and English.

Each legacy system was retired only once the replacement had run a full month alongside it and the numbers matched. Historical data was migrated with a reconciliation report per stage, and the old systems were left readable for finance and customs history rather than switched off. A rollback path existed at every cut-over point and was tested before each one.

The outcome

One platform now carries dispatch, transport, warehouse movements and invoicing, and the three legacy systems have been retired in sequence. Controllers work from one screen. A shipment has one identifier from booking to invoice, which removed the reconciliation work that had been absorbing most of the operations team's day.

The platform handles over a thousand concurrent users across depots, drivers and customer accounts at peak. Vehicle utilisation improved because dispatch could see the whole fleet and its constraints in one place, and delivery promises became something the operation could hold. In the first year after launch the operator reported 39% revenue growth, driven by capacity it could now sell with confidence.

We continue to run and extend the platform under a support arrangement, with monitoring, incident response and a rolling backlog agreed each quarter.

Results

1,000+

Concurrent users at peak

3

Legacy systems retired

5 days

Cut from month-end close

Stack we use

Node.jsReactReact NativePostgreSQLPostGISKafkaRedisAWSKubernetesTerraform
The difference is that everyone is now looking at the same shipment. We stopped arguing about which system was right and started arguing about how to move more freight.Head of Operations, national logistics operator

Next step

Start with a 20-minute call.

Tell us the roles you need filled, the system you need built, or both. You will speak to someone who has done the work, and leave the call with a route forward.