Predict FIFA World Cup 2026 match results, compete on leaderboards, and see how your picks stack up against friends.
I built this as a side project to predict World Cup match outcomes with friends, and to get hands on with a few things I’d been wanting to try: the Next.js App Router, Supabase, and scheduling work directly from Postgres instead of bolting on external infrastructure.
Live site
Features
- No login required, just a randomly generated username to get started
- Custom leaderboards to compete with friends, plus head-to-head views
- Global realtime fan pulse showing how everyone is picking each match
- Points awarded based on real match odds, so picking an upset pays off more
- Push notifications so you don’t miss a kickoff
- Live score and pick updates as matches play out
- Mobile friendly
- Multi language support
- Admin dashboard for setting up matches and entering scores
Fun stats
- Users played: 76
- Matches predicted: 1,124
- Custom ladders created: 7
- Total notifications sent: 17
Tech stack
- Next.js (App Router) for the frontend, with Server Components doing most of the rendering and Client Components reserved for the interactive bits like voting and live score updates.
- Supabase for the database, auth, and Realtime subscriptions that push live score and pick updates to the UI as matches play out.
- Supabase Edge Functions to send the actual push notifications, triggered by a database webhook.
- next-intl for multi language support.
- Vercel for hosting, with Sentry for error tracking and Vercel Analytics/Speed Insights for monitoring.
More on how it’s built
A couple of posts that go deeper into specific decisions on this project: