A 100-minute show that needed every seat sold.
Three tiers, private tables, VIP, corporate, and gift vouchers — sold from one site, on one Stripe session, without a third-party redirect breaking the spell.




- Client
- The Magicians Table
- Sector
- Live Entertainment · Ticketing
- Engagement
- Audit → Build → Launch
- Year
- 2025
✱ § 01 · The brief
What they actually needed.
The Magicians Table runs an immersive adults-only magic experience in London Bridge — Reserved (£69+), Premium (£79+), VIP (£120), plus private tables for ten and corporate packages. The show has been extended seven times. The site, however, was a static landing page that handed visitors off to a generic ticketing platform.
Buyers came in for the story — Dieter Roterburg's carnival, the £4★ reviews, Derren Brown's quote — and crashed into a checkout that looked nothing like the brand. Mobile performance on the embedded iframe was poor. Group bookings, corporate inquiries, and gift vouchers all funneled through the same single-purpose form.
“The hardest sell isn't getting people interested — it's keeping them after we've earned their attention.”
✱ § 02 · Our approach
Three bets, in order.
Native seat selection on a single domain.
Pulled the seat-map state from the ticketing API and rendered the date picker, tier selector, and seat sheet inside the site itself. No iframe, no redirect — Stripe checkout opens in a sheet over the same brand chrome.
Keep Dieter's voice through to the receipt.
Story-rich copy from homepage to confirmation email. The transactional email reads like the show's prologue. No template chrome — every touchpoint stays in character.
Split the funnel by intent.
Group bookings, corporate evenings, and gift vouchers each got their own purpose-built form with the right questions and the right CTAs — not one generic 'inquiry' page absorbing all three.
✱ § 03 · Process · 8 weeks
From kickoff to shipped.
Wk 1
Audit + show familiarisation
Watched the show. Pulled six months of analytics. Mapped the funnel from the booking flow back to the homepage to find the exact step buyers dropped at — the iframe handoff.
Wk 2–3
Information architecture + design
Designed the unified booking sheet, the three intent-specific forms (group / corporate / gift), and the editorial reviews wall. Synced with the venue move to The Vaults — design accommodates both addresses.
Wk 4–6
Build · Next.js + ticketing API
Custom Next.js storefront, Stripe checkout in a sheet, ticketing API integration with seat-map state, Resend transactional emails. First end-to-end test booking end of week 5.
Wk 7
Soft launch + measurement
Cut over weekend traffic for two weeks. Watched the seat-map polling and the 'private table for 10' inquiry split closely. Tweaked Apple Pay placement on the seat sheet.
Wk 8
Full cutover + handover
100% of traffic to the new site. Trained the front-of-house team on the corporate inquiry inbox. Old landing page kept hot for 14 days as fallback.
✱ § 04 · Gallery · key screens
Selected screens.


✱ § 05 · Results · measured 6 months post-launch
What changed, in numbers.
- +210%
- Ticket conversion
- 96
- Lighthouse mobile
- −41%
- Checkout time
Pre-launch baseline 1.1% → 3.4%
Performance score, post-launch
Median product → completion
✱ § 07 · In their words
The first weekend after cutover sold three of the four VIP private tables. People stayed in the brand long enough to spend.
Director
The Magicians Table · The Magicians Table
✱ § 08 · Tech stack
What's running.
- Storefront
- Next.js · Tailwind v4
- Ticketing
- Custom · third-party API
- Payments
- Stripe · Apple Pay · Google Pay
- Resend · custom templates
- CMS
- Sanity (reviews + show notes)
- Hosting
- Vercel · Cloudflare
✱ § 09 · Team
Who built it.
- Affan Manzoor
- Project lead
- ChampX design
- Design + brand voice
- ChampX engineering
- Storefront + ticketing
- ChampX content
- Email + form copy
✱ § 10 · Honesty section
What we’d do differently.
01 · Localised the date picker too late
Half of the first-week traffic was tourists checking dates against a US calendar. Added timezone-aware formatting and a 'show all in your timezone' toggle in week 9.
02 · Voucher emails got flagged at first
First batch of gift voucher PDFs landed in Gmail spam. Tightened DMARC + SPF, switched the PDF renderer, and re-warmed the sending domain over two weeks.
03 · Corporate quote form needed an SLA
Inquiries piled up over weekends with no auto-reply. Added a 1-hour acknowledgement template and a Monday-priority queue rule.




