Project
Roulette

Gift Exchange Organiser

Draw names so nobody gets themselves and nobody sees the assignments.

IntermediateWeb appSocial8–16hAI-buildable 4/5no setupworth shipping

Secret Santa with exclusion rules — partners shouldn't draw each other, and the organiser must not see the result. The constrained derangement is a real algorithmic problem, and keeping it secret from the person running it is a nice design constraint.

UI
Logic
Useful

Hosting · Free forever

Deploys free on GitHub Pages, Cloudflare Pages or Vercel Hobby.

Deploy it and share a link.

Core features · 7

  • Add participants with names
  • Define exclusion pairs that must not be matched
  • Draw assignments so nobody draws themselves
  • Each participant sees only their own assignment via a private link
  • The organiser cannot see the assignments
  • An impossible set of constraints is detected before drawing
  • Wishlists can be attached to each participant

The interesting part

  • Generating a derangement that satisfies arbitrary exclusions
  • Proving no valid assignment exists rather than retrying forever
  • Keeping results genuinely hidden from whoever runs it

Once it works

  • Add a budget and gift suggestions
  • Add a redraw that preserves already-revealed assignments
  • Add anonymous questions to your recipient

Suggested stack

reacttypescripttailwindsupabase

Track it