A multi-outlet ordering platform that finally shipped one queue.
Six restaurant brands, one shared kitchen, three different POS systems, and an online ordering page that converted at 1.4%. We rebuilt the ordering flow, not the brand.



Product
Spring
Celebrations
Vegan
Gift Sub
Legends- Client
- Ding Dong Dimsum
- Sector
- F&B · Multi-outlet ordering
- Engagement
- Discovery → Build → Launch
- Year
- 2025
✱ § 01 · The brief
What they actually needed.
Ding Dong runs six dim-sum and bao concepts out of one cloud kitchen in London. The brands looked great, the kitchen ran tight, but the website tried to be six storefronts at once (six menus, six checkouts, six loyalty programs) and it converted like none of them.
Each brand had its own Shopify theme, its own Klaviyo flow, and its own out-of-stock logic. Customers ordered from one brand, abandoned, and never saw the cross-promotion for the brand next door. Ops staff fielded WhatsApp messages from couriers because POS items disappeared mid-order.
“We don't need six websites. We need one ordering site that knows when the kitchen has run out of soup dumplings.”
✱ § 02 · Our approach
Three bets, in order.
Collapse six brand-specific checkouts into one shared cart.
Single payment session across all brands: Apple Pay first, card second, Tabby for orders over £40. Cross-brand cart so a customer can drop a bao bun and a chilli oil into the same order. Everything funnels through one Stripe account.
Move loyalty out of email and into the cart.
Replaced the per-brand Klaviyo discount cycle with a unified rewards balance visible in-cart. Free delivery at tier 2, early-access drops at tier 3. Email now ships order receipts and post-purchase notes. It doesn't sell.
Pull live kitchen capacity into the menu.
Custom KDS integration polls the kitchen every 90 seconds. Out-of-stock items grey out before they're added to cart instead of failing post-checkout. Out-of-stock alerts surface to ops via a single WhatsApp number, not six.
✱ § 03 · Process · 14 weeks
From kickoff to shipped.
Wk 1–2
Discovery + audit
Session replays on 180 abandoned carts. Three customer interviews. Pulled 90 days of order data from Shopify + Stripe + the existing POS to model the friction points.
Wk 3–4
Information architecture
Re-modeled six brand catalogs into one menu with brand sub-sections. Mapped the unified cart, the cross-brand promotions matrix, and the loyalty tiers.
Wk 5–8
Build · phase one
Next.js storefront with Sanity-backed menu, single-page checkout, Stripe Connect for the payment session, KDS poller. First end-to-end order placed end of week 8.
Wk 9–10
Soft launch + measure
Cut over 10% of mobile traffic for two weeks. Watched the funnel daily. Two rounds of small fixes, mostly scroll-jank on the menu and a Tabby threshold edge case.
Wk 11–12
Full cutover + loyalty
100% of traffic to the new platform. Migrated the existing Klaviyo audiences into the unified loyalty profile. Old per-brand sites kept hot for 30 days as a fallback.
Wk 13–14
Handover + 90-day support
Trained the in-house ops team on the menu CMS and the WhatsApp alert thresholds. Opened a 90-day support window for monitoring and small refinements.
✱ § 04 · Gallery · key screens
Selected screens.


✱ § 05 · Results · measured 6 months post-launch
What changed, in numbers.
- +147%
- Online orders
- −52%
- Checkout drop-off
- 4.1×
- Repeat order rate
Year-on-year, 6 mo post-launch
Pre-launch baseline 71% → 34%
Cross-brand cart attribution
✱ § 07 · In their words
Six brands, one kitchen, one ordering site. Online orders climbed from week one, and the kitchen stopped getting calls from couriers about out-of-stock items.
Operations Lead
Ding Dong · Ding Dong Dimsum
✱ § 08 · Tech stack
What's running.
- Storefront
- Next.js 16 · Tailwind v4
- CMS
- Sanity (menu) · Stripe (catalog)
- Payments
- Stripe · Apple Pay · Tabby
- Loyalty + ops
- Custom rewards · WhatsApp alerts
- Analytics
- GA4 · Plausible · custom Stripe dash
- Hosting
- Vercel · Cloudflare
✱ § 09 · Team
Who built it.
- Affan Manzoor
- Project lead
- ChampX design
- Design + storefront
- ChampX engineering
- Storefront + checkout
- ChampX ops
- POS + KDS integration
✱ § 10 · Honesty section
What we’d do differently.
01 · Started too late on the KDS poller
Modeled out-of-stock from order data first, then wired the live poller in week 7. Should have been week 3. The data model needed real signal earlier.
02 · Underweighted Apple Pay on Android
Tabby + card was the assumed Android stack. Google Pay added in phase two after we saw 19% of Android sessions bouncing at payment.
03 · Loyalty tiers shipped quiet
No on-site announcement, just a banner. Most customers found out they had tier-2 perks weeks after qualifying. Added a profile banner and a one-time email six weeks post-launch.



