iVoy - Operations dashboard for delivery logistics
Internal dashboard powering the delivery operation - riders, routes, orders, pricing, multi-package handling, Strapi-driven content.

The product
iVoy's operations dashboard is the control room behind the customer app: riders, routes, live orders, pricing tables, package catalogs and tenant-level configuration. Non-engineers use it daily - dispatchers, ops, customer support - so usability was the gating constraint.
What I shipped
- Data layer. Apollo + GraphQL for every query and mutation, normalized cache so entity updates propagate across views instantly.
- Live map views with Leaflet - rider locations, order origin/destination markers, clustering when density spiked.
- Tenant-aware content via Strapi - each tenant could configure promos, categories and messaging without a deploy.
- Bulk operations for dispatchers: mass status updates, mass reassignment, CSV exports.
What made it hard
The dashboard was the stress test for the shared GraphQL schema used by the customer app. Any schema change had to be deliberate - breaking the dash meant breaking operations, which meant breaking deliveries. I invested early in typed GraphQL codegen and cross-team review rituals to keep the blast radius contained.
Takeaway
Internal tools deserve the same design love as customer-facing products. A slow dash means a slow operation, which means bad deliveries. Shipping performance wins here mattered more than polish.