What it is
World Cup Sim is a live 2026 World Cup prediction game. Every match shows a 10,000-run Monte-Carlo forecast — win, draw, loss and a likely scoreline — right next to what the crowd picked. You call the results, earn points (+5 exact score, +3 right outcome), and climb a global leaderboard that settles against real results.
The problem & who it's for
A World Cup is one of the few moments where hundreds of millions of fans do the same thing at once. Most prediction games are either dumbed-down or can't take matchday traffic. This is built for football fans worldwide and engineered to scale from day one.
Built with Amazon DynamoDB — the data model
It's a single-table design (wc-predictor, on-demand) with one GSI, overloaded (all-string keys) to serve three access patterns from one index:
DATE#<yyyymmdd> -> matchId— today's matchesMPICK#<matchId> -> uid— every pick on a match (cheap settling)LB#<season>#<shard 0-9> -> points— the global leaderboard
The leaderboard is the scale story. A naive "all users in one partition sorted by points" is a textbook hot partition that melts on matchday. So it's write-sharded across 10 partitions and read with a scatter-gather — the pattern AWS recommends. Picks bump an atomic crowd counter in a transaction. On-demand capacity absorbs matchday spikes with zero pre-provisioning.
Stack
Frontend scaffolded in v0, deployed on Vercel (Next.js App Router, SWR). Backend = Next.js route handlers using the AWS SDK for DynamoDB. A Poisson/Elo Monte-Carlo engine (48 teams) computes the odds; an anonymous cookie makes every visitor a player; a settle job pulls final scores from ESPN.
Why it's shippable, not a demo
It's deployed and serving real data from a real DynamoDB table on real AWS — real 2026 fixtures, real odds, a real sharded leaderboard — and plugs into a daily-content funnel that already drives real fans to it.
How the stack fits
v0 / Next.js on Vercel -> /api route handlers (Node) -> Amazon DynamoDB (single table + one overloaded GSI). ESPN feeds seed + settle jobs.
Built With
- amazon-dynamodb
- amazon-web-services
- next.js
- node.js
- typescript
- vercel
Log in or sign up for Devpost to join the conversation.