Games & interactions
Seven playable interactions, one promise: the visitor earns the offer. Games routinely double the opt-in rate of a plain form, and every outcome is decided server-side, so odds stay private and results can't be gamed.
How outcomes work (and why they're fair)
- The server draws the result. Prize weights and reward tiers never reach the browser; a curious visitor reading the page source learns nothing about the odds.
- One roll per visitor. Outcomes are locked per session and game; refreshing the page can't re-spin the wheel.
- Three mechanic classes. Deterministic (everyone wins the same: scratch), single draw (one weighted pick: spin, plinko, slots, doors), and multi-prize (a set of wins: pick-a-card).
- Weights are yours. Every prize row has a label, a win-% weight and a offer tier. Setting one slice to 100% builds the classic "guaranteed win that feels like chance."
- Accessible by default. Every game announces its result to screen readers, resolves under reduced-motion settings (result without the ride), and works by keyboard.
All games share four inspector controls: Wait after result (the pause before advancing), Celebrate (confetti), an easing choice, and the prize list.
The lineup








Spin to win
Single draw. The prize wheel. Each slice is a prize row; in the wizard, slice 1 always wins.
- Motion: spin duration (0.5–20s), wind-up counter-rotation, full turns (1–14), deceleration easing (the default "wheel" has the longest, most suspenseful tail), motion blur on the rim, wait-after-landing.
- Wheel: center label ("TAP TO SPIN") or a center logo image, alternating slice background/text colors, pointer color, rim pegs, max width.
Scratch off
Deterministic: every player reveals the same prize, which keeps the moment magical and the offer predictable.
- Prize: the label (feeds
{{prize}}), lead-in text ("You've got"), and which offer tier it grants. - Scratch feel: reveal-at coverage (20–100%), brush size, scratch dust particles, foil color, cover label ("SCRATCH HERE").
- Card: width, height, radius, colors. Keyboard players reveal with Enter/Space.
Want scratch over arbitrary content (an image, a code, a whole layout)? Use the Scratch cover element instead.
Plinko
Single draw. A ball bounces down pegs into a prize bucket.
- Board: peg rows (3–14), board surface / peg / ball colors and radii, optional ball image (your product as the ball), bucket text/background/divider styling.
- Motion: drop duration (0.6–8s), "gravity" fall easing, ghost trail, peg-hit flash with recoil, celebrate, wait.
Slot machine
Single draw. Reels spin and line up on the payline. Symbols can be glyphs or images, and a symbol can be marked a losing spin for near-miss drama.
- Machine: reels (3–5; the last is the suspense reel), visible rows (middle is the payline), symbol size, lever label ("PULL"), cabinet/reel/payline colors.
- Motion: spin duration, reel stagger (each reel stops later than the last), wind-up, "settle" easing with overshoot bounce, motion blur, celebrate, wait.
Pick a card
Multi-prize: the one game that issues a set of rewards. Cards on a table; each flip reveals a prize. Limiting flips below the card count leaves prizes face-down: visible, almost-won, excellent motivation.
- Table: cards on the table (2–12), flips allowed (0 = flip everything), columns, card size/ratio/gap, card-back image or glyph, face styling.
- Completion loop: counter ("You won {n} of {total} gifts"), continue button ("Flip {left} more"), finish button ("Claim all gifts"), or finish automatically.
- Motion: flip duration, spring easing, hover lift, per-card celebrate, wait. All cards are decided server-side at once and claimed together.
Pick a door / Mystery box
Single draw. Doors (or boxes) hide prizes; the tap is ceremony, the draw is weighted. Optionally open the other doors after the pick to show what was behind them.
- Layout: columns (1–6), door size, door image or glyph ("?"), face/interior/prize-text colors, caption.
- Motion: flip duration, spring easing, celebrate, wait.
Mini quiz & Yes/No
Not games of chance, but openers in the same family:
- Mini quiz: a question with answer choices; the pick records as zero-party data, can personalize later copy via
{{answer:key}}, and can branch the flow. The highest-signup-rate opener in the catalog. - Yes / No: a micro-commitment ("Want 15% off your first order?"). Saying yes measurably raises follow-through on the form.