Modernising the logistics industry.
One design system. Three products. One logistics platform built from scratch.
Last-mile delivery runs on speed. The tools behind it should too
Shippr needed a complete digital ecosystem to orchestrate last-mile deliveries across European cities. This meant building a dense dispatch dashboard for operations, a streamlined mobile app for drivers on the road, and an intuitive client portal for partners.
I led the product design from day one, shaping not only these three distinct products but also creating the foundational design system that held them all together.

Three audiences. Three distinct contexts. One reality
The reality of logistics is fragmentation. Dispatchers stare at maps and heavy tracking tables all day, optimizing routes in real-time. Drivers scan packages under the rain, needing crystal-clear instructions with one hand on the wheel. Clients just want their items delivered seamlessly and need instant reassurance.
Each audience has radically different constraints. Yet, underneath the surface, they all manipulate the exact same delivery data. The challenge was designing a system flexible enough to serve all three user bases without feeling like three completely different companies.

The Shippr customer platform providing real-time oversight for B2B partners.
Shared foundations to prevent platform split
With three product squads advancing in parallel, the risk of design divergence was high. We needed a common language from the very beginning.
Together with the frontend development team, we established a deeply integrated system library. It started with core typography, spacing tokens, and color scales designed to pass strict accessibility requirements across both bright office screens and dark-mode mobile environments.

A unified typography and token system shared across the dashboard, client portal, and driver app.
Designers and developers don't adjust. They assemble
We shifted the complexity upstream. Every component was engineered to cover edge cases, states, and exhaustive variants before it ever reached a page design.
By solving interaction models inside the component, we freed up the team's mental bandwidth. When it's time to build a new feature, designers and developers don't waste time nudging pixels or arguing over hover states. They assemble. The system works like a box of Lego: pick the piece, place it, and ship it to production.

1:1 component parity. What gets prototyped perfectly matches the React components deployed in production.

Inputs fields system demo
Where I learned to build a product from nothing
Shippr was a 0-to-1 story. No existing product, no existing team, no existing system. Over six years, the platform grew to serve international markets (Brussels, Paris, London) and the design system became the backbone that made that scale possible.

Overview of the courrier app