How the Live Spin Actually Works
August 2, 2026
Open a wheel’s share link from three different devices and spin it once, and all three land on the same name at the same instant — no refresh needed, no one seeing a different result than anyone else. Here’s what actually happens between pressing Spin and that moment.
1. The owner presses Spin
The browser sends a single request — no parameters — because the server already knows which wheel belongs to that owner. There’s nothing in the request for anyone to tamper with; it’s just a trigger.
2. The server draws the winner
Using a cryptographic random source weighted by each name’s slice size, the server picks a winner, writes the result to the draw history, and bumps that name’s win counter — all in a single transaction. This happens before anything is sent back to a browser, including the owner’s own.
3. One instruction, broadcast to everyone
Instead of telling each screen “the winner is X” and letting every browser animate it however it likes, the server publishes one instruction — which name won, how much random jitter to apply, how many full turns to make, and how long the spin should last — to every screen currently watching that wheel.
4. Every screen runs the identical animation
Because the jitter and turn count come from the server rather than being generated separately in each browser, every screen’s wheel traces the exact same rotation and stops at the exact same resting angle. Nobody’s browser is deciding anything on its own — it’s just playing back instructions everyone received at once.
Joining mid-spin
Open the link while a spin is already in progress and you don’t miss it — you get a catch-up event carrying only the time remaining, so your screen joins the same animation already underway instead of showing nothing until the next round.
How it stays live
The connection is a persistent server-sent-events stream, kept alive with a periodic ping so proxies and load balancers don’t quietly close it as idle. The same stream also carries a live viewer count and pushes an update whenever the owner changes names or settings, so everyone watching always sees the current state of the wheel, not a stale one.
Why it’s built this way
A wheel that animates a random result independently in each browser can show a different “winner” to different people, or let someone reload their way to a better outcome. Deciding the result once, on the server, before broadcasting it removes both problems — see the random name picker guide for how that compares to simpler pickers, or the about page for the full story of why this exists.