shipped
live, in production
Band merch storefront with fan accounts, an admin-first operator console, and a realtime band ↔ support chat baked into the admin panel.
Visit
Live site02 · Outcomes
Numbers, not adjectives. The stats below are pulled from production. Anything still live, still measured.
shipped
live, in production
front · back · admin
one set of hands
automation core
platform run from one console
single source of truth
transactional core
03 · Overview
Official merch store for a roster of bands. The brief boiled down to one line: one console covers all of it. Operators run drops, fulfilment, and the band-facing comms from a single admin panel without engineering touch. Realtime chat over Socket.IO connects the support team to each band directly inside the admin — restock alerts, drop coordination, and approval threads stay on one rail instead of scattered emails. Single MySQL store keeps products, orders, and chat threads on one ledger with proper foreign keys instead of cross-system wiring.
04 · Gallery
Secondary mockups, detail crops, mobile and desktop variants. Click any shot to open it full-size.
05 · Process
Four phases. Each one with a deliverable the client could see, not a slide deck of intent.
Mapped the team's manual workflow — order spreadsheets, email replies, scattered band-side coordination. The brief boiled down to one line: one console covers all of it.
MySQL schema first — products, variants, orders, chat threads. REST API on Express. Socket.IO sidecar for the band ↔ admin chat. Frontend on React + Redux Toolkit, sharing state across cart, account, and the operator panel.
Admin panel led every iteration. Customer-facing screens built off the same data the operators were already managing. Automated stock and drop notifications, scheduled emails, refund flow with a soft audit trail.
A year live, no rollbacks. The merch team runs drops, listings, and band coordination directly from the admin — no engineering touch needed for routine cycles.
06 · Decisions
Tech is downstream of decisions. These are the calls made early enough to compound the right way. The ones a code review six months later still agrees with.
Realtime chat connects the support team to each band directly inside the admin panel. Drop coordination, restock approvals, and one-off questions stay on a single rail instead of fragmenting across emails and DMs.
One relational store for products, orders, support threads, admin events. ACID on the cart and order ledger; the support module joins cleanly via foreign keys, no cross-database wiring.
Operator console before the customer-facing pages. Inventory, orders, support, scheduled comms — all in one panel so the merch team doesn't bounce between tools or wait on an engineer for routine work.
06 · Let’s build
I take 4–5 freelance projects a year. Cold pitches welcome. I reply within 24 hours on weekdays.