Competitive performance platform
OWTH Performance OS
Verified Overwatch role leaderboards with traceable match evidence for Thailand's academy community.
- Project
- Own product
- Role
- Product design, full-stack engineering, and data workflow
- Focus
- Performance analytics, Evidence workflow, Role-based access
- Stack
- Next.js 16, React 19, TypeScript, Supabase, Tailwind CSS 4, TUS uploads, Node.js worker




The project
OWTH turns approved Workshop logs into role-specific Rating, ordered career MMR, and a record of the Map evidence behind both. The public view surfaces current standings, while protected player and admin workspaces keep detailed history and review tools scoped to the right users.
- Separates contextual role Rating from career MMR so each number answers a clear performance question.
- Requires admin approval before uploaded Workshop evidence enters the processing pipeline.
- Connects standings to verified Map counts and traceable match records instead of opaque scores.
Product flow
How it works
- 01
Players upload large Workshop logs directly to private storage through resumable transfers.
- 02
User uploads wait for admin approval; approved jobs are claimed by a bounded processing worker.
- 03
Processed maps update role Rating and ordered career MMR snapshots.
- 04
Public standings stay connected to verified map counts and match records.
System design
How it was built
Designed separate Rating and MMR models so current role performance and long-term progression remain understandable.
Built a resumable TUS upload path and a leased Node.js worker that streams, parses, rates, and writes match evidence idempotently.
Enforced user, admin, and superadmin boundaries with server-side authorization and Supabase Row Level Security.