Skip to content
dawichi
All projects

Hexastats

League of Legends stats platform for comparing players, built on the Riot Games API.

Period
2021 – 2024
Status
Archived

Retired after Riot API changes.

Hexastats player page showing champion win rates, KDA bars and a list of recent matches

What it was

Hexastats started as a small script to compare League of Legends stats between friends. More people wanted to be added, so it grew into a web app: search any player, load their recent matches, and compare several players side by side with win rates, KDA, champion stats and records.

It became my most-starred repository and my longest-running side project, with more than a thousand commits over three years.

How it worked

  • A NestJS API called the Riot Games API, shaped the raw match data into the stats the frontend needed, and cached results in Redis.
  • A SvelteKit frontend loaded each player’s data into a store and rendered the different views (games list, champion stats, records) from it.

Why it was archived

Hexastats depended on the Riot API at runtime for everything. When Riot changed its API schemas, the app stopped working. We never rewrote it for the new schemas, so I took the live site down and archived the repository. The screenshot above shows the app when it was working.

What I took from it

If a product’s core data comes from someone else’s API at request time, that API’s roadmap is part of your roadmap. In Board Vault I made the opposite choice: the game catalogue lives in our own tables, and an external source could only ever be imported on the admin side, never called at runtime.