A franchise courier network was running on a compiled vendor system nobody could touch. I rebuilt it as a multi-tenant SaaS they fully own.
The problem
The client runs a courier franchise network. HQ plus branches, every shipment flowing through one legacy vendor system.
The vendor was gone. The software was compiled, so no source code, no support, no way to add a feature. The business kept growing. The software stayed frozen.
The constraint
800,000+ rows of live operational data sat inside that system. Waybills, branches, rates, tracking history, years of it.
You cannot ask a courier business to pause deliveries while you rebuild their software. Whatever I shipped had to read that data correctly from day one.
What I built
I reverse-engineered the data layer first. Mapped every table, every relationship, every edge case the old system had collected over the years. Only after the map was complete did I write the first line of the new platform.
The rebuild: a multi-tenant SaaS on Next.js, tRPC and Postgres. Each branch gets its own isolated workspace. HQ sees everything across the network. Booking, waybill generation, rate management, live tracking, reporting.
The numbers
793 automated tests passing in CI. 800,000+ legacy rows migrated cleanly. One codebase serving every branch.
Real parcels for real customers move through this system daily, so I treat every deploy like it can break someone's delivery. The tests run before any change reaches production. Every time.
Where it stands
The client owns their system now. New features ship in days. No vendor dependency left.
Stack: Next.js, tRPC, PostgreSQL, Figma
Role: Full-stack engineering, data migration, system architecture
Like this project
Posted Jul 23, 2026
Rebuilt a courier network's legacy system into a multi-tenant SaaS.