A full tournament management system. Built for a live pickleball event. Ran without a single crash.
Handles everything from player registration to final bracket — in real time, on mobile, courtside.
Built and deployed live for the Serve & Smash Series pickleball tournament. The app ran the entire event — 30+ players, full knockout bracket, live scoring — on Streamlit with a Supabase real-time backend.
- Player Registration — Team/player onboarding with seeding
- Automated Bracket Generation — Single-elimination knockout draw
- Live Scoring — Match results update the bracket in real time
- Leaderboard — Live standings visible to all participants
- Admin Panel — Match management for the tournament director
- Mobile-First — Designed for courtside use on phones
Frontend Streamlit
Backend Supabase (PostgreSQL + real-time subscriptions)
Auth Supabase Auth
Hosting Streamlit Cloud
git clone https://github.com/rishabhinai-netizen/serve-and-smash
cd serve-and-smash
pip install -r requirements.txtConfigure Supabase in .streamlit/secrets.toml:
[supabase]
url = "your_supabase_url"
key = "your_supabase_anon_key"streamlit run app.pyBeyond pickleball — this repo is a clean example of building a real-time, multi-user Streamlit application with a Supabase backend. The bracket logic, live state synchronisation, and admin/participant role separation are reusable patterns for any tournament or event management tool.
Ran live. No spreadsheets. No WhatsApp groups. Just code.