Football Predictions
For the Q For Media community, I built an internal platform with user accounts, match predictions, rankings and World Cup results connected to football-data.org and Supabase.
- My contribution
- I developed the predictions application and integrated match results through an API and Supabase.
- Who it serves
- Q For Media’s internal community.
- Scope
- User accounts, match predictions and rankings updated from results.
Case overview
After-work World Cup pool built on Vercel and Supabase, with results connected to football-data.org.
- Data
- football-data.org
- App
- Vercel
- Database
- Supabase
- Use
- Internal after-work
The pool, in production
Real screenshots show the desktop predictions view with filters, picks, penalty calls, the live tournament total and one live match, alongside the mobile view. The standings table is synthetic.
The product in hand
Every match is an expandable row with the pick, countdown to lockout, official result and points. It is built to answer in twenty seconds from a phone.


How the standings read
The ranking combines exact scores, winners and a champion bonus. The names are samples and the scoring logic is real.
| # | Player | Exact | Winners | Points |
|---|---|---|---|---|
| 1 | Nico | 6 | 11 | 29 |
| 2 | Vale | 5 | 12 | 27 |
| 3 | Marco | 5 | 10 | 25 |
| 4 | Lu | 3 | 12 | 21 |
| 5 | Sofi | 3 | 9 | 18 |
Case decisions
Mechanics
Each user enters match predictions, the system updates results from the API and the ranking recalculates through transparent rules.
Facets
Tools
- Vercel
- hosting and the webapp's serverless functions
- Supabase
- Postgres + the team's Google login
- football-data.org API
- official results for automatic scoring
- React + TypeScript
- picks, live ranking, bracket and chat