← All workSystem 02 / 04
Live store · white-label editionSingle-vendor commerce platform

One store,every brand.

It started as a live apparel store and became a white-label commerce product: the same codebase runs any single brand's app, storefront and admin — rebranded, re-themed and reconfigured without touching code.

Client
Fashion retail · India
Role
Full-stack engineer
Surfaces
Shopper app · SSR storefront · Brand admin · White-label studio
The brief

The first version was a direct-to-consumer apparel store for kids and families, built on a marketplace core and narrowed to a single vendor.

The second turned it into a product: one codebase, deployed per brand, where catalogue structure, checkout rules, couriers, loyalty, theme and fonts are all configuration — so a new client is a setup, not a fork.

01

Shopper app

A native app with server-driven home layouts, wishlists, reviews, loyalty and order tracking.

02

Storefront

A server-rendered web store built for search, with sitemaps and fast product pages.

03

Brand admin

Catalogue, variants, inventory, orders, returns, campaigns and content for the store owner.

04

White-label studio

A top-level console to rebrand a deployment — theme, fonts, features and app config.

System map

How it fitstogether.

Every surface talks to one platform core. This is the shape of the system as it runs in production.
Shopper appWeb storefrontBrand adminWhite-label studioPlatform coreCommerce API+ workersCatalogue & variantsQuote engineStock reservationsOrders & returnsBrand configRazorpayCourier networksMeta catalogueObject storagePush & SMS
The hard parts

What made ithard — and how.

The problems that don't show up in a screenshot, but decide whether a product survives real users.
01

Never selling the last unit twice

The problem

Two shoppers checking out the same last item at once is how stores oversell.

The approach

Checkout re-quotes the cart on the server and places a short timed hold on stock; a sweep releases holds on unpaid orders, so inventory stays honest under concurrency.

Stock holdsConcurrency
02

One price, many modifiers

The problem

Sales, membership discounts, coupons, coins and pincode-based shipping all affect the same total.

The approach

A single quote engine composes every modifier in a fixed order and works in the smallest currency unit, so the app, the web store and the invoice always agree.

Pricing engineShipping rules
03

Rebranding without a fork

The problem

Every client wants their own look and feature set — but forks rot.

The approach

One public configuration endpoint returns brand, feature flags, light and dark themes, fonts and app settings; the apps render from it, so each client is just data.

White-labelFeature flagsTheming
04

Products as data, not schema

The problem

Clothes have sizes and colours; electronics have specs; every vertical differs.

The approach

An attribute engine with typed custom fields and multi-axis variant templates generates per-SKU price, stock, barcode and media — and seeds ready catalogues for six verticals.

EAVVariants
Inside the system

Everythingit does.

01Three-level catalogue with typed custom attributes
02Multi-axis variants with per-SKU stock and media
03Coupons, tiered sales and buy-X-get-Y
04Courier integrations with live tracking
05GST-ready invoices
06Returns with reason codes, QC and refunds
07Subscribe & save, memberships, coins and referrals
08Product feed for catalogue ads
09AI listing generation built in, ready to switch on
Built with
Built with
01

Backend

Node.js · TypeScript · FeathersJS · MongoDB · BullMQ

02

Apps & web

React Native · Expo · Next.js · Reanimated

03

Commerce

Razorpay · Courier APIs · Meta catalogue

04

Platform

Object storage · Push & SMS · PDF invoices · CI/CD

Building something like this?

Let’s scope yours.