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.



