A dispatch console that dispatchers actually defend
Replacing three legacy tools with one dense, keyboard-first console for logistics teams.
- Engagement
- 22 weeks
- Team
- 2 designers, 3 engineers
- Stack
- React, TypeScript, WebSockets
- Year
- 2025
Results
- Average time to assign a load
- −52%
- Tools in the dispatcher workflow
- 3→1
- Dispatcher adoption within 30 days
- 97%
Loom's dispatchers moved between three systems to assign a single load: a legacy desktop client for inventory, a web portal for carriers, and a spreadsheet nobody would admit to owning. The average assignment took nine minutes and a lot of alt-tabbing.
Designing for experts, not first-timers
Dispatchers use this software eight hours a day. Optimising for a gentle first-run experience would have made their eight-hundredth hour worse. We designed for density: everything on one screen, keyboard shortcuts for every frequent action, and no confirmation dialogs on reversible operations.
- A three-pane console with loads, carriers and map always visible
- Command palette covering every action in the product
- Optimistic updates with inline undo instead of confirm dialogs
- Live status over WebSockets, with an explicit stale-data indicator
The design system came first
Dense interfaces punish inconsistency, so we built the component library before the screens. Thirty-one components, each with defined focus, hover, disabled and loading states, all driven by tokens so Loom could ship the high-contrast variant their night shift asked for without touching a component.
Nordwell is the rare studio that leaves the codebase better than they found it. Six months after handover we are still shipping on the foundation they built.
Rollout
We ran a four-week pilot with six dispatchers in one terminal, sitting with them for the first two. Adoption was voluntary and reached 97% within thirty days — the fastest internal rollout Loom has had, largely because the pilot group ended up selling it to their colleagues for us.