Try out the r/Rankl Reddit Game

Try out Rankl.io

Inspiration

Rankl applies the Elo rating system to internet ranking. Since the 1960s, Chess Grandmasters have determined who's at the top of the game using the Elo rating system. We believe Rankl can deliver more objective polling on the internet with Elo rankings.

What it does

Rankl lets you rank anything. Rankl reduces noise by making each vote a matchup between two things. Every item in a Rankl game starts with a rating of 1200. When you vote for one option over another, the winner gains points and the loser loses points. The key is that the number of points exchanged depends on how expected the result was.

The Expected Score Formula:

$$ E_A = \frac{1}{1 + 10^{\frac{R_B - R_A}{400}}} $$

Here:

\(R_A\) = rating of option A
\(R_B\) = rating of option B
\(E_A\) = expected probability that A wins

If both options have the same rating, then \(E_A = 0.5\).
If A is rated much higher than B, then \(E_A\) approaches 1.

The Rating Update Formula:

$$ R_A' = R_A + K\left(S_A - E_A\right) $$

Here:

\(R_A'\) = new rating after the vote
\(K\) = maximum points that can change in one matchup
\(S_A \in {0,1}\) = actual result (1 if A wins, 0 if A loses)
\(E_A\) = expected probability from the formula above

If A wins when it was expected to win, only a few points change.
If A wins when it was unlikely, many points transfer.

This is what makes Rankl powerful: predictable outcomes barely move rankings, while surprising outcomes carry real weight — producing clearer results with less noise.

How we built it

Web: React, Node/Express, PostgreSQL (Neon), Replit Auth, and image upload handling. Reddit: Devvit, React (Vite), Express API, Devvit Redis for games, items, Elo, votes, and indexes; distributed locking and per-post data so multiple posts can have different games. User-generated content is encouraged and moderated by admins.

r/Rankl is supported by Rankl.io, which offers additional features like AI Rankl game creation and syncing Elo data between Reddit and the web platform.

Challenges we ran into

Handling concurrent voting while keeping Elo and vote counts consistent (locking, per-item updates).

Accomplishments that we're proud of

10,000+ votes so far. Full Reddit experience (discovery, search, voting, leaderboards, creation, admin) and consistent Elo/UX on web and Reddit.

What we learned

People like pairwise voting and live leaderboards; Reddit feels like a good fit; data modeling and locking were critical at scale. Got to love Redis for speed.

What's next for Rankl

Keep making Rankl matchups to answer life's most interesting questions. Get more people to try Rankl.

Note

The Rankl Development Server is available: https://www.reddit.com/r/rankls_dev/ Though we encourage you to instead use our production version at r/Rankl.

Made in Atlanta ❤️

Built With

Share this project:

Updates