Every December our office does a Secret Santa, and every year it dies in the same place: the organiser sends a link, half the group has to create an account, three people never confirm their email, and someone ends up drawing names out of a hat on the day.

So I built SantaWheel. The constraints I set for myself:

  • No accounts. The organiser pastes the participant list, gets one shareable link. That's the whole onboarding.
  • No email collection. Nothing is stored on a server. The draw happens client-side from a seed in the URL.
  • Exclusions that actually matter. Couples, siblings, and the two people who swapped gifts last year. You mark the pairs, the algorithm re-rolls until nothing conflicts.
  • Three modes. Secret Santa (one-way), White Elephant (stealing rounds), and generic gift exchange.

The interesting part was the exclusion solver. A naive shuffle fails constantly once you have more than two exclusions — you need to detect the impossible cases up front rather than retry forever. If the constraint graph has a cycle that covers every participant, no valid draw exists, and telling the user that immediately is better than a spinner that never ends.

It's free, no ads, and the whole thing runs in the browser.

https://santawheel.com