Here is the generated app https://worldcup-oracle.vercel.app
(If you want to use your own domain, check the next post)
Predicting the future doesn't have to be expensive. In fact, following this worldcup-orcale_plan.md, you can build, host, and deploy a full-scale World Cup 2026 simulator using a minimal, zero-cost stack.
We're going to use a modern, minimalist approach to get this app live on a free Vercel subdomain, with a streamlined code management flow using AgentRepo.
The Mission: A Self-Sustaining Predictor
Our goal is to create a beautiful, self-contained web app where all the complex simulation logic runs entirely on the client side.
1. Building the Prediction Engine
The heart of the app is a robust engine that calculates team strengths and simulates outcomes using a multi-layered statistical approach:
-
ELO-Based Win Probability: We use the standard ELO formula to determine the expected win probability between any two teams.
In this formula, and represent the ELO ratings of Team A and Team B. The constant 400 sets the scale of the system; a 400-point rating difference means the stronger team has a 10:1 ratio of expected wins compared to the weaker team. -
Poisson-Approximated Goals: To simulate realistic scores, we use a Poisson distribution. The parameter (lambda) represents the Expected Goals (xG) for a team. We calculate by scaling the historical World Cup average of 1.15 goals per team based on the square root of the teams' relative ELO strengths:
const lambdaA = baseGoals * Math.sqrt(teamA.strength / teamB.strength); const goalsA = poissonSample(lambdaA);This ensures that while a stronger team is more likely to score, the Poisson distribution still allows for the natural variance and low-scoring "upsets" typical of international football.
2026 Tournament Logic: The engine faithfully recreates the expanded 48-team format. It handles 12 groups of four, simulates the round-robin stage, and implements the tie-breaking advancement logic: the top 2 from each group plus the 8 best 3rd-place teams advance to a 32-team knockout bracket.
Monte Carlo Simulation: To keep the UI buttery smooth while running 10,000 simulations, we offload the heavy lifting to a Web Worker (
src/monte-carlo.worker.js). This ensures the browser doesn't freeze while the "Oracle" calculates goal probability distributions and win percentages across thousands of possible timelines.
2. The Aesthetic: Glassmorphism
For the UI, weβre going with a "dark glassmorphism" look, think frosted glass over a high-energy stadium hero background.
Zero Image Assets: We use emoji-based country flags to keep the app ultra-lightweight.
Dynamic Design: The UI features an animated tournament bracket with smooth CSS transitions.
Fully Responsive: The layout is optimized for both mobile and desktop users.
The Workflow: AgentRepo + Vercel
Forget traditional signups. For this project, weβre using AgentRepo for a frictionless, account-free source control experience.
Step 1: Push to AgentRepo
Standard Git repositories often require accounts. With AgentRepo, you simply generate a UUID for the project and push.
# Initialize and push to a free UUID org
git init
UUID=$(python3 -c 'import uuid; print(uuid.uuid4())')
git remote add origin https://agentrepo.com/$UUID/worldcup-oracle
git push origin main
The project UUID is saved locally in a gitignored .env file so you can push updates later.
Step 2: Instant Deployment
Deploying to the cloud is handled via a simple shell script that wraps Vercelβs production deployment.
One-Click Launch: Run
./scripts/deploy.shto go live instantly.Live URL: The app lives at
worldcup-oracle.vercel.app.Security: SSL is automatically provisioned and managed for you.
Summary
This setup proves you can build professional-grade tools with zero overhead. You get:
High-Performance Logic: Monte Carlo simulations via Web Workers.
No-Auth Source Control: Public Git repos without the signup friction.
Zero Cost: Total spend is exactly $0.
Simply hand the worldcup-orcale_plan.md to your favorite AI coding agent and watch it build the future of World Cup 2026 forecasting!
Top comments (0)