A wholesale platform with two faces
- Client
- Footwear brand, US
- Role
- Developer, ongoing
- Stack
- React · TypeScript · Supabase
- Status
- In production
The problem
A brand selling through wholesale has two audiences inside one product catalogue. Its own sales team needs cost prices, margins, every account's order history and the ability to place orders on a retailer's behalf. The retailers buying from them need their own pricing, their own orders, and no sight of anyone else's.
One codebase, one database, two populations who must never land on each other's screens. The failure mode isn't a crash. It's a retailer seeing a number they were never meant to see.
What I worked on
- Role separation across the application, so that a user's role decides not just what is hidden but which views exist for them at all.
- Chasing down the cases where a click in the sales view could still hand a user the retailer view, which is the bug class that matters most here.
- Account and permission handling for super admins, who legitimately need both worlds, without that becoming a back door into either.
- A release cadence of small fixes, shipped and verified against real accounts rather than a staging fiction.
- Executive-level analytics reporting: the handful of numbers a brand actually needs to look at, rather than a dashboard nobody opens.
How it went
The work is ongoing. The pattern that made the difference was treating role confusion as a first-class bug rather than a cosmetic one, and testing each fix from inside a real account of each type. Most reports of "it looks wrong" turned out to be the same underlying routing issue wearing different clothes.