Smash Champs Ladder Demo

This page exists as a demo to show of an implementation of a ratings ladder which:

  • Tracks members ratings
  • Suggests matches for a subset players
  • Updates members' ratings based on match results
  • Shows a leaderboard of member ratings

It was made after seeing WAN show July 25, 2025 disscussion about vibe coding a badminton Elo system. It seemed like an interesting and relativly limited project to try and do, especially since I had previously thought about coding a ratings systems.

If you want to get in touch for some reason, there is an email available in the footer of the page.


What it does

To limit strain on the server there is a fixed set of members. But, to allow anyone to test the application, there is a "Sign in as random" button on the sign in page which does what it says on the box. After being signed in you'll see the profile page where users can see their rating, historical ratings, upcoming matches, and past matches.

Sign in as a random user

Staff (for the purposes of this demo all users are staff) can access the staff-only area, where they can see old matches, plan new matches, report results and update players' ratings.

Enter staff area and see old matches

In demo mode staff can't save changes, but the workflow for creating/updating items can be used without changing anything.

Create new matches, automatic suggestions based on platers' ratings

Report match results and update ratings

The leaderboard shows all players current ranks based on their ratings. When signed in, your own placement is highligted.

Leaderboard image

Leaderboard when signed in


Notes

Retrospective

Deciding to do this while looking up as few things as possible was fun, but not super practical. Especially since I didn't remember that badminton is primarily played as doubles. I don't think, however, that adding doubles support would be too hard, so I might end up doing it.

Partially from not knowing badminton, right now ratings are only updated based on win/loss, while draws (which I now know don't exist in badminton) and the points of a completed game don't matter. The K-value for the ratings is also static right now for simplicity, while in practice it should be somewhat dynamic.

Based on disscussion from a following WAN show there should also be a self rating system for new/returning players so they can face more suitable opponents. However I think this should be reflected only in match planing, not in actual score, since it would damage the total Elo economy.

Time spent

The whole thing took about 24 hours in total (excluding some extra work like writing this page). Since I mostly did it before or after work there weren't that many long streaches of focused time, which probably made it take longer than it should have. I also wasted a lot of time in the begining making some components to make the whole thing a bit prettier, but since that wasn't ment to be the main focus I should have saved that time instead.