shipped
live, in production
Premium gym wear, storefront + admin built end-to-end.
Visit
Live site02 · Outcomes
Numbers, not adjectives. The stats below are pulled from production. Anything still live, still measured.
shipped
live, in production
no template
every layer hand-coded
where the orders come from
tuned for phone checkout
single source of truth
transactional core
03 · Overview
Obsessed sells gym wear that's worn at the gym, not on the way to brunch. The store is a custom build, no Shopify theme cosplay. Admin panel handles stock, drops, order fulfilment, returns, and the customer-analytics view the founder actually opens at 2 AM. Performance-tuned for mobile because that's where every order comes in.
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.
Brand wanted a premium gym-wear store that didn't read like a Shopify theme. Most traffic + orders mobile, so the brief led with phone checkout. Operator side needed an admin clean enough that the founder runs it without engineering touch.
MySQL schema first — products, variants, orders, accounts. REST API on Express. React + Redux Toolkit on the frontend, sharing state across cart and account. No theme layer, no plugins — every screen built directly off the same data.
Mobile checkout first. Listing + product detail + cart + account scaled up to desktop from the same components. Admin handles stock, orders, refunds, and customer comms in a single panel.
Live since 2024. Founder runs day-to-day without engineering touch — drops, listings, refunds, customer messages all from the admin.
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.
Hand-coded gives full control. No theme constraints, no plugin tax, no Liquid-template ceiling on what the brand can look like. Every layer is optimised for this build, not for a templating engine someone else owns.
One relational store for products, orders, accounts, admin events. ACID on the cart and order ledger; reports and audits read straight off the same schema instead of joining across services.
Most orders come from a phone, so the mobile flow led every iteration — checkout, listing, account, then desktop scaled up from the same components. Reversing that path always leaves mobile feeling like an afterthought.
06 · Let’s build
I take 4–5 freelance projects a year. Cold pitches welcome. I reply within 24 hours on weekdays.