PingElo
A free competitive ranking platform for groups of table tennis players, built around a custom Elo based system and designed for real world usage.
Tech Stack & Key Features
Frontend & Backend
- Next.js + TypeScript
- React, Tailwind CSS
- Express + TypeScript API
- Supabase PostgreSQL
- Vercel (frontend), Render (backend)
Core Features
- Custom Elo ranking (singles & doubles)
- Flexible player system & claim codes
- Match validation (win by 2, score formats, group checks)
- Admin & manager dashboards for match & group management
- Infinite scroll & paginated API responses
Overview
PingElo was built to solve a real problem in my college table tennis group: tracking rankings, determining relative skill levels, and running tournaments without spreadsheets or paid software.
The platform is actively used by my group and supports any collection of players who want a fair, automated, and competitive ranking system with minimal friction.
Problem & Solution
Problem
- Manual ranking made tournaments and leaderboards unreliable.
- Existing solutions were either paid or not flexible for small groups.
Solution
- Custom Elo system with point margin & upset handling.
- Validation & automation reduce manual errors.
- Player claim system allows participation without accounts.
- Admin & manager dashboards for flexible control.
Product Screenshot

Leaderboard - all data updates in real time with Elo calculations.
Validation, Permissions & Roles
Match Validation
- Win by two enforcement
- Score format checks
- Group membership validation
Authentication
Authenticated users can create matches. Admins can submit and edit matches on behalf of players.
Roles
- Players
- Group Admins
- Managers (multi-group control)
Custom Elo System
The Elo system adjusts ratings based on match outcomes, point differences, and relative player skill. Separate calculations exist for singles and doubles.
- Higher gains for upsets
- Lower changes for expected wins
- Reduced impact for close matches
- Historical tracking enables leaderboard analytics
Reflection & Future Work
Proudest Achievement
The Elo system and flexible player model that allows participation without mandatory accounts.
What I’d Change
I would design groups and tournaments first to avoid later scalability refactors.
Next Steps
- Complete manager dashboard
- Improve tournament tooling
- Add automated tests for Elo calculations
Interested in working together? Get in touch