Virtual UEFA Champions League group stage draw with full UEFA seeding and country-protection rules.
Live demo → https://uclvirtual.com
A faithful simulation of the UEFA Champions League group stage draw ceremony. Pick teams, run the random draw, and watch groups form under the same constraints UEFA applies in the real ceremony — pot balancing, country protection, home/away distribution.
Built as a side project to scratch a personal itch: the existing online draw simulators either skip the actual rules or hide what they're doing under the hood. UclVirtual is fully rule-aware and shows its work.
- Full UEFA-compliant draw logic — four seeding pots, no two clubs from the same country in the same group, balanced pot distribution across all eight groups
- Team selection — pick a team and run the draw to see who you'd face in the group stage
- Home and away awareness — each pairing tracks both legs, so fixtures are generated correctly
- Live demo deployed on Vercel with a custom domain — no install needed to try it
- React (TypeScript)
- Tailwind CSS for styling
- Deployed on Vercel with custom domain (uclvirtual.com)
git clone https://github.com/sayinbrahim/UclVirtual.git
cd UclVirtual
npm install
npm startThe dev server runs at http://localhost:3000.
npm run buildThe production-ready bundle goes into the build/ folder.
A side project at the intersection of two interests: football and clean rule-driven simulations. The Champions League draw has surprising edge cases — country protection becomes especially tricky once you have four English clubs and the seeded clubs can't be drawn against each other. UclVirtual implements those constraints transparently instead of hiding them.
Possible future additions:
- Knockout stage bracket simulation
- Historical season replay (input past pot assignments and watch alternative draws)
- Europa League and Conference League draw modes
- Group stage standings simulator with match outcomes
MIT — see LICENSE for details.