04 · Platform build
Platform build — closed beta, live data
Pundit
Skill-based esports prediction platform for Pundit OÜ — CS2 and Dota 2, closed beta with live match data already flowing.
- Year
- 2026
- Duration
- Closed beta
- Discipline
- Platform · Data · Product

Outcome
1,005
URLs in the sitemap — 1,000 of them individual match pages
─ 01 · Challenge
The challenge.
Esports predictions sit next to a heavily regulated category, so positioning had to be exact from day one: the platform frames itself as a skill contest, not gambling, citing §2(2) of the Estonian Gambling Act. The second problem is what closed beta usually means — an empty landing page and a signup form. The goal here was the opposite: real match data, live and public, before the doors open.
─ 02 · Work
The work.
Built on Next.js and Vercel with Clerk handling auth. Live scores flow from a PandaScore data feed into six public sections: /matches (56 matches on the index), /tournaments (59), /rankings, /leaderboard, /seasons, and /news. The sitemap carries 1,005 URLs, 1,000 of them individual match pages. An AI assistant, PunditCoach, is built into the product. Access to the contest itself runs through a waitlist and PUNDIT-XXXX beta codes. HSTS and CSP security headers are in place.
─ 03 · Outcome
The outcome.
The platform is live in closed beta with real data anyone can check: six sections open without a code, 56 matches and 59 tournaments on the index pages, and a 1,005-URL sitemap. The skill-contest framing under §2(2) of the Estonian Gambling Act is the site's own published position. No audience metrics claimed — the beta is closed.
Process · 4 phases
01
Positioning + spec
Phase 1
Fixed the skill-contest framing (§2(2) of the Estonian Gambling Act, as stated on the site) and the closed-beta access model: waitlist plus PUNDIT-XXXX codes, with public data sections open regardless.
02
Data layer
Phase 2
PandaScore feed wired in for live CS2 and Dota 2 scores. Match, tournament, ranking, and season data modeled so every match gets its own indexable page.
03
Build
Phase 3
Next.js on Vercel, Clerk auth, HSTS and CSP headers. Six public sections shipped, plus the PunditCoach AI assistant. Sitemap grew to 1,005 URLs — 1,000 of them match pages.
04
Beta run
Ongoing
Closed beta live: waitlist and beta codes gate the contest, while matches, tournaments, rankings, leaderboard, seasons, and news stay open on live data.
What shipped
6
sections open to the public during closed beta
- 011,005-URL sitemap — 1,000 individual match pages
- 026 sections open during closed beta: matches, tournaments, rankings, leaderboard, seasons, news
- 03Live scores from a PandaScore data feed — 56 matches and 59 tournaments on the index pages
- 04PunditCoach AI assistant built into the product
- 05Skill-contest positioning under §2(2) of the Estonian Gambling Act — the site's own stated framing
- 06Next.js on Vercel, Clerk auth, HSTS and CSP security headers