Grand Slam
The registration platform behind Taekwondo Grand Slam. A club keeps one roster of players and coaches, then enters it into any number of competitions — each entry locks in belt, weight, and events the moment it's sent, so the roster stays yours to edit while the entry stays fixed.
- Role
- Solo · design + build
- Year
- 2026
- Category
- Product
- Weight
- 1kg
- Price
- Reserve
- Roast
- 5/5
- Notes
- Roster-first · Bilingual · Built for the rush
- Stack
- React 19 · Hono · Cloudflare Workers · D1 · Drizzle
The origin
Before this, every tournament started from a blank page — coaches retyping their whole roster, athlete by athlete, each time they entered an event. I wanted the opposite. A club keeps one living roster of its players and coaches, and enters that same roster into as many competitions as it likes. Change a phone number or a belt once and it updates everywhere. But the moment you submit an entry, that entry locks to exactly what you sent — belt, weight, and events fixed in place — so the roster stays yours to keep tidy while each registration remains a faithful record of what was actually entered.
The pull
Registration is where it gets real. A captain opens a competition and every division is a filter away — no cross-referencing a PDF, no guessing which bracket an athlete belongs in. The hard part, invisible when it works, is that the app never decides a division by reading a label: it matches each athlete on gender, age, belt, and weight, and the weight bands are drawn so no two brackets overlap and everyone lands in exactly one. Drafts save as you go, every screen is bilingual with Traditional Chinese first, and organizers get their own side to run the event.
What came out
Live in production · 567-division flagship event · bilingual captain + admin portals