Captain Pansu • Shipped 2025
A leaderboard that ranks friends in League and TFT

- Role
- Product Design, Development
- Timeline
- August 2025 to May 2026
- Team
- Solo
- Tools
- Lovable, Cursor, Claude Code, Supabase, Riot API, TypeScript, Tailwind CSS, shadcn/ui
- Live
- Shipped
- Accounts tracked across the NA and KR servers
- 22
- Games on one board, League of Legends and TFT
- 2
- Shared refresh cooldown that keeps it inside Riot's limits
- 10 min
A leaderboard for my friends' League and TFT ranks. Built solo from August 2025 until we stopped playing in May 2026.
I designed and built it alone. The shared API limit shaped how it worked.
Problem
Comparing rank meant ten separate searches.
Stats sites show one player, not a group. Checking everyone meant searching each Riot ID on a stats site. Switching between servers and doing it again for the other game made it worse.
Captain Pansu puts every account on one board.
Process
I tested the two core ideas in a quick prototype first.
I built a Lovable prototype in TFT only. It tested the two core ideas: looking players up and filtering by tier.
Both worked, so I rebuilt with Cursor, Claude Code, and Supabase, covering both games.

Process
One refresh button meant designing its limit.
The Riot API is rate-limited and shared. Refresh locks for ten minutes after anyone uses it.
I made the limit visible. The last update time sits next to the button, so it feels like a rule, not a bug.

Reflection
We stopped playing in May. Next time, I'd design the paused screen first.
By May, most of us had stopped playing.
I paused the database, and the board showed an error instead of saying it was resting. A side project should end looking finished, not broken.