Delivery Operations That Balance to the Dinar
Every parcel, every driver, every dinar accounted for, even with no signal.
- Product strategy
- UI/UX design
- Web development
- Backend development

Offline-firstdriver app with scan sync built for real routes
Last-mile delivery in the region runs on cash and patchy coverage, and most software assumes neither. We built Driva as the operations backbone for a delivery business: parcels come in, a driver PWA scans them on the route even offline and syncs later, cash-on-delivery is settled with dual approval, and a double-entry ledger keeps the money provably correct. Dispatch sees the whole fleet live.
- Timeline
- Ongoing
- Team
- 1 Product Engineer, 1 Full-stack Engineer
The challenge
A delivery operator loses money in two places. parcels that fall through the cracks and cash that cannot be reconciled. The team needed drivers to keep scanning and updating deliveries in areas with no signal, then sync cleanly when they reconnect, without creating duplicates or losing a scan. On top of that, cash-on-delivery had to be auditable end to end, from the customer’s payment to the settled books, with no room for a number that does not add up. Off-the-shelf courier tools handled none of this for how the business actually runs.
What changed
- Offline-first
- Driver scans sync when signal returns
- Double-entry
- Cash-on-delivery balances to the dinar
- Live
- Fleet and parcels tracked in real time
- FR · AR · EN
- Built for the region from day one
The offline app changed how our drivers work, and for the first time our cash actually reconciles at the end of the day. We can add routes without wondering where the money went.
Strategy
We modeled the business as three processes, ingestion, the driver route, and settlement, and made the cash ledger the source of truth everything else answers to.
Design
The driver screen is built for one hand on a phone in the field; dispatch gets a calm control room that shows exactly where every parcel and driver is.
Build
A driver PWA with offline scan-and-sync (no lost scans, no duplicates on reconnect), a double-entry cash ledger, cash-on-delivery settlement with dual approval, and live fleet tracking over WebSockets, on a Next.js + Postgres + Redis/queue stack in French, Arabic, and English.
Grow
Because the ledger balances by construction, the operator can scale routes and drivers without losing trust in the numbers.
The stack
- Next.js 15
- React 19
- Auth.js
- Prisma
- PostgreSQL
- BullMQ
- Redis
- WebSockets
- next-intl
