Case study
2026
MTGSell
A storefront platform any trading-card shop can be dropped into, with the whole back office behind it: inventory, orders, point of sale, and automated price syncing.
- Client Personal project
- Discipline Web App
- Duration Ongoing
- Budget band Personal project
The problem
A card shop selling online needs far more than a shop page. It needs inventory that matches what is on the shelf, orders that reconcile with the till, prices that track a market moving daily, and staff accounts that cannot quietly do anything they like.
Off-the-shelf storefronts handle the front half and leave the rest as a spreadsheet problem.
What I did
Built as a TypeScript monorepo. A Next.js shop with search, cart and checkout runs over a Fastify API, backed by Postgres, Redis and OpenSearch, so search stays fast as the catalogue grows.
Behind it sits the half nobody sees: catalogue and inventory management, orders, a point of sale, analytics, audit logging, roles and two-factor authentication, plus a scheduler that syncs pricing from TCGplayer so the shop is not repricing by hand.
Branding is per shop, so the platform can be dropped into a different store without a rebuild.
Outcome
A working platform with a public storefront and a full back office. The live link is a demo instance dressed as an example store, since the branding is per shop.
The interesting half is the unglamorous half. Audit logging, roles, and reconciliation are what decide whether a shop can actually run on the software, and they are exactly what gets cut from a cheap quote.