Developer Handoff & Design Notes
Immersive, scroll-driven 3D experience for the /live show page.
A standalone, cinematic web experience that runs on its own page. As the visitor scrolls, the camera drifts through a velvet-lounge Las Vegas backdrop while real show photography floats past at different depths, gold particles and flipping Workman Magic cards drift through the air, and a five-beat story leads to one clear conversion action. It is intentionally separate from the main marketing site — the main site should stay fast, direct, and SEO-focused; this page is the experiential showpiece you link to.
It is self-contained static files — HTML, JavaScript, and images. No build step, no server-side code, no database. Any standard web host (including cPanel file manager) can serve it.
index.htmlThe experience itself. Open/serve this file.support.jsRuntime that renders the page (loads React + Babel from CDN). Keep beside index.html.image-slot.jsDrag-and-drop image component used for the photos.uploads/The 4 local images used: background, logo, card artwork, and Chris finale photo.Developer-Handoff.htmlThis document.Upload the whole folder as-is to a subdirectory on the server, keeping the file structure intact (the files reference each other with relative paths).
# Example: via cPanel File Manager or FTP public_html/experience/ ├─ index.html ├─ support.js ├─ image-slot.js └─ uploads/ ...
Then the experience lives at https://workmanmagic.com/experience/. Point your existing “The Show” / “Enter the Experience” link there, or embed it full-screen inside another page with an iframe:
<iframe src="/experience/" style="border:0;width:100%;height:100vh"
allow="autoplay; fullscreen"></iframe>
The finale changes automatically. Add one line in the <head> of index.html, before support.js:
<!-- Show is on sale --> <script>window.WORKMAN_TICKETS_ON = true;</script> <!-- No show currently on sale (collect emails instead) --> <script>window.WORKMAN_TICKETS_ON = false;</script>
If the line is omitted, it defaults to tickets mode.
<form id="magicForm"> submit (in index.html) to your email platform (Mailchimp, Klaviyo, ConvertKit, etc.) or a backend endpoint.Each photo is an <image-slot> with a src attribute — just change the URL. Recommended: keep the same orientation as noted.
| Slot id | Role in story | Orientation |
|---|---|---|
chris-follow | Scene 2 — the magician to follow | Portrait |
react-1 … react-5 | Scene 4 — audience reactions at depth | Mixed (1,3,5 landscape · 2,4 portrait) |
chris-finale | Scene 5 — hero shot by the call-to-action | Portrait |
https://www.workmanmagic.com/live — search & replace to change.FNYalGnprTM — change that id in index.html (search onReel) to swap the video.