Fusion Vibes
A lucky draw nobody can argue with
A live-draw system for a 1,200-guest annual dinner: setup, an operator cue desk, an LED display and results. It’s provably fair and keeps running if the Wi-Fi drops.
Where it started.
Fusion Vibes runs corporate dinners where the lucky draw is the moment everyone waits for: 1,200 guests, 500 prizes, a ballroom watching the screen. Spreadsheets and random-name websites can’t prove a draw was fair, and a dropped venue connection in the middle of a live show is not an option.
How we approached it.
We built the draw like a stage production. Organisers set up guests, prizes and branding ahead of time. On the night, an operator works a cue desk while a separate display link drives the LED wall. Every result is chosen and sealed before the animation plays, using cryptographic randomness that can be replayed and audited. The show carries on offline if it has to.
Where it stands.
The system is built and tested for its first event: an annual dinner in Penang on 21 November 2026. Guests get a show; the organiser gets a draw they can prove was fair, with a full audit trail afterwards.
The system behind it.
Fusion Vibes, taken apart: from the screen people use to the work that keeps it running.
-
Interface
What the ballroom sees
- LED display 16:9
- Pearl orbit · Floating glass
- Operator cue desk
- Bulk + on-stage draws
-
App
Three screens, one show
- /events/[id]/setup
- /events/[id]/control
- /display/[token]
- /events/[id]/results
-
Draw engine
Sealed before reveal
- core/crypto
- core/draw
- core/recovery
- core/sync
- api/events/[id]/seal
- exports · winners.csv
-
Data
Every draw on the record
- events
- participants
- prize_groups
- draw_sessions
- draw_attempts
- winner_assignments
- audit_events
- display_tokens
- display_style
-
Operations
Built for show night
- Offline snapshot · IndexedDB
- Installable PWA
- Vitest · draw engine
- Playwright
- Vercel
What we built.
Event setup
Import the guest list by CSV, build the prize ladder, set branding and run a pre-flight check before the doors open.
Operator cue desk
Arm, draw, hold, void. A calm control room for the person running the show, with every action logged.
LED display
A 16:9 public display opened with a secret link: a 485-winner bulk round, then fifteen on-stage reveals. Organisers pick its look in setup, Pearl orbit or Floating glass, with a live preview.
Provably fair
Winners are sealed before the reveal using cryptographic randomness. The draw can be replayed to prove the result, with no hidden weighting.
Offline recovery
If the ballroom Wi-Fi drops, the laptop keeps a local snapshot and the draw continues, syncing once it’s back online.
Results & audit
Winners export to CSV and a full audit trail exports as JSON for the client’s records.
Under the hood.
- Frontend
- SvelteKit, Svelte 5, Tailwind 4, shadcn-svelte
- App
- Installable PWA, IndexedDB (Dexie), Display tokens, CSV import
- Data & backend
- Neon Postgres, Drizzle, Better Auth, Zod
- Quality
- Vitest draw-engine tests, Playwright
- Infrastructure
- Vercel
By the numbers
- 1,200 guests in one live draw
- 485 winners sealed in a single bulk round
- 15 on-stage reveals, each sealed before it plays
