Skip to content

Brands & Ventures · Brand · Multi-line Commerce

SubmissionIsHealing

Architected the full multi-brand commerce platform for a personal brand — courses, journaling, and a handmade wing — all from one system.

Technical Co-founder & System Architect/2026/Live (In Development)
submissionishealing.com
LIVE
015currencies (PKR / USD / GBP / AED / EUR)
02~22CMS collections, 12 reusable content blocks
03187 URLs301-redirected in the Wix migration (44 posts, 250 orders)
043sub-brands consolidated under one umbrella
01

THE WORK

The Situation

One founder, several product lines, and three disconnected Shopify stores waiting to happen.

A founder was launching multiple lines under one name — a course, an editorial brand, a handmade wing. The instinct was to spin up a store per line. That path ends in three admins, three checkouts, and three sets of customer data that never agree.

The Job-to-be-Done

THE JOB TO BE DONE

When I'm launching several product lines under one personal brand,

I want to sell courses, handmade goods and editorial content from a single platform,

So I can grow each line without stitching disconnected tools together.

The Approach

I treated this as a bespoke multi-brand commerce platform, not a theme on a hosted store. The founder needs to add a line — or retire one — without a migration or a new vendor. So the data model came first: one catalog, one customer, one ledger, with sub-brands as a dimension rather than separate systems.

The second decision was ownership. A personal brand is edited daily, not quarterly. I gave the owner a visual composer over the live site and scoped theming per sub-brand, so each wing keeps its own face without forking the house defaults. Editing is a first-class workflow, not a developer ticket.

The third was independence. No HubSpot, no Klaviyo, no GA4. Marketing automation and analytics live inside the platform, on first-party data the founder owns outright. Fewer vendors, fewer seams, and a customer record that stays whole.

The System

The stack is Next.js 16 and React 19 with Payload CMS v3 embedded at /admin, backed by Drizzle ORM on Postgres 16. A Turborepo splits the web app from a dedicated BullMQ worker on Redis that runs the slow and stateful work — email sequences, attribution, image processing, webhooks. Checkout is Stripe multi-currency across PKR, USD, GBP, AED and EUR; media sits on Cloudflare R2 behind a CDN, with legacy 301s served from a Worker.

Two pieces carry the depth here. First, an in-house email-sequence and lead-scoring engine plus a first-party analytics ledger with identity stitching — the replacement for the usual third-party marketing stack. Second, a Payload visual "Composer" that lets the owner compose live page regions, with per-sub-brand theming layered over shared house defaults. The Wix cutover used an interim storefront on a byte-compatible Drizzle schema, which made the import a zero-rewrite copy and the switch visually seamless — 44 posts, 250 orders, and 187 URLs carried over and 301-redirected. The whole thing runs isolated and self-hosted on Dokploy and Hetzner, with its own Postgres, Redis and network, and Sentry plus Pino for observability.

One catalog, one customer record, one analytics ledger — sub-brands are a dimension in the data, not separate systems to reconcile.

Status

Live and in development. The platform is in production; the first live commerce product is the Sarf Companion Arabic workbook, with the journaling and handmade wings rolling out on the same core. The handmade line — The Niyyah Thread — runs as its own scoped wing on this platform (shown separately). I am part-owner and technical co-founder, and the system is built to absorb each new line as it ships.

02

GALLERY · 02 FRAMES

NEXT EXHIBIT

Building something like this?

Start a Conversation →