ShopZY
A B2B e-commerce platform built around the parts that actually run a wholesale business: inventory, orders and shipments. Currently in progress.
- Timeline
- Ongoing
- Context
- Personal project
- My role
- Solo — architecture, frontend, backend, auth
Illustrative representation of the interface — not a screenshot of client software.
The problem
B2B commerce is not consumer commerce with bigger numbers. The hard part is not the storefront — it's inventory that has to stay truthful, orders that move through fulfilment stages, and shipments that need tracking against those orders.
I'm building it partly because it's a genuinely good systems problem: multiple entities that all have to stay consistent with each other.
What I worked on
Everything — architecture, data model, API design, front end and auth. It's a solo build.
Next.js with TypeScript on the front end, Django REST Framework with PostgreSQL behind it.
JWT-based authentication, Google social login and secure session handling.
Interactive dashboards for managing inventory, orders and shipments.
How it worked
Django REST Framework exposes the domain; Next.js consumes it with typed API boundaries so a backend contract change surfaces as a type error rather than a runtime surprise.
Auth is JWT-based with Google social login layered on the same identity, and session handling kept deliberately conservative — short-lived access tokens with refresh, rather than long-lived tokens sitting in local storage.
Inventory, orders and shipments are modelled as related entities with explicit state, so an order's fulfilment stage and the stock it reserves stay consistent.
Challenges
Keeping inventory honest under concurrent orders is the interesting part — reservations, not just decrements.
Social login next to credential login means one user can arrive through two doors and has to come out as one account.
Working out how much structure to build before there are real users, without over-engineering ahead of a requirement.
Outcome
In active development — no outcome metrics to report yet, and I'd rather leave this section honest than fill it.