Built in-houseDispatchHospitality

Delivery driver dispatch for local restaurants

Small restaurants can't justify their own delivery drivers, and the big apps take a large cut. We're building a platform where local restaurants share a pool of agency drivers: a restaurant taps to request one, and the system assigns the right driver and tracks the job to the door.

Built forAn in-house product
UsersRestaurants, drivers, an agency admin
StartedSeptember 2026
StatusIn development

The problem

A takeaway on a busy Friday might need three drivers; on a Tuesday, none. Employing drivers for the peaks doesn't pay, and national delivery apps take a big share of every order. A local agency can share drivers between restaurants, but only if handing out jobs is instant and fair. Phone calls and group chats don't scale past a couple of restaurants.

What's built so far

  1. A restaurant app. Staff log in, request a driver in a couple of taps, and watch each job's status live on a board.
  2. An agency console. The admin sets up restaurants and drivers, sets rates, watches a live operations board with countdowns, dispatches by hand when needed, and has a kill switch to pause everything.
  3. An automatic dispatch engine that picks a driver the moment a job is created (below).
  4. Security from day one. Invite-only accounts, two-factor login for the agency, and each restaurant can only ever see its own jobs. That is enforced by the database itself, not just the app.
Restaurant screen: a form to request a driver, and two live deliveries, one with the driver on the way and one out for delivery
What a restaurant sees: request a driver on the left, and every delivery's progress live on the right.

Screenshot uses demo data.

The dispatch engine

  1. RequestA restaurant asks for a driver.
  2. AssignThe next available driver in the rotation is picked instantly.
  3. ConfirmThe driver has a short window to accept.
  4. WidenNo answer? The job goes out to all free drivers, first to claim wins.
  5. EscalateStill nobody? The admin is alerted to dispatch by hand.

The hard part is when two things happen at once, like two restaurants requesting at the same moment or two drivers tapping "claim" together. The engine lives in the database and locks at exactly the right point, so a driver can never get two jobs at once and a job can never have two drivers.

Tested properly

Getting dispatch wrong means cold food and angry restaurants, so the testing is unusually thorough for a product this early:

  • Over 1,000 automated tests: 409 database tests, 536 unit tests, 53 end-to-end browser tests (including accessibility), and a harness that fires real parallel requests to prove there are no double assignments.
  • 100% coverage of every line and branch of the database logic.
  • Mutation testing: deliberately broken versions of the dispatch engine are run against the tests to prove the tests catch them. All 62 were caught.
  • Speed and cost budgets are checked on every change. It's designed to run on free tiers until there's real volume.

What's next

The restaurant app, the agency console and the dispatch engine are done. Next come the driver app (clock on and off, job card, navigation, proof of delivery), instant notifications, then statements and payouts, ahead of a pilot with one restaurant and two drivers.

If your business hands out jobs by phone or group chat, whether that's drivers, engineers, cleaners or couriers, the same dispatch approach applies.

Still handing out jobs over WhatsApp?

Tell us how work gets assigned in your business today. In 15 minutes we'll tell you honestly what a proper system would take.