Pyramids Cup 8
Six weeks, four stages, 335 matches, run by a staff of five on one system
Role
Founder and operations lead, one of a staff of five. System designed and built with Nexaro.
Dates
8 September to 23 October 2026
Partners
Pyramids Queue and The Vicious Esports, powered by Nexaro. Supported by the Rift Legends Program by The Purge.

The Problem
Seven editions ran on Discord, spreadsheets and manual posting. Every result was typed into five places, and every match night depended on somebody remembering seventeen steps.
The Outcome
335 matches and 706 games across four stages, 364 players from 24 countries, every result checked by a person. JSK Esports won the Grand Final 3-2 against SBO3A; both go on to the Rift Legends Regional Groups.
The context
Pyramids Cup is the MENA local circuit inside the Wild Rift Rift Legends ecosystem. Seven editions came before this one, run on Discord, spreadsheets and manual posting.
The goal
A season that runs on a system: register, play, verify and publish once, in Arabic and English, with a public record any captain can check without asking an admin.
The season
- Qualifier 1 (8 to 18 Sep): 29 entries, 10 Swiss rounds, 134 matches. SBO3A went 10-0.
- Qualifier 2 (22 Sep to 2 Oct): 33 entries, 167 matches. Bigger than the first, with no new campaign.
- League Stage (7 to 16 Oct): 12 teams, two groups, Bo3 Fearless, 30 series.
- Playoffs (22 and 23 Oct): the teams asked for Bo5 semi-finals and all four agreed in writing.
- Semi-finals: SBO3A 3-0 4Cats1Dog, JSK Esports 3-1 coming for you. Third place: coming for you 2-0 4Cats1Dog.
- Grand Final: JSK Esports 3-2 SBO3A, after SBO3A had won sixteen series in a row.
- Rift Legends: JSK Esports and SBO3A to the Regional Groups, coming for you and 4Cats1Dog to the Last Chance Qualifier.
The challenge
- Sequencing: round two cannot be paired until every round one result is in.
- Concurrency: thirteen matches per round in two waves, 20:00 and 21:30 Cairo.
- Evidence: every game's scoreboard captured while players are still in the room.
- Hard limits: Discord caps a server at 500 channels; each round used about seventeen.
What I built, with Nexaro
- Nexaro AI, the tournament bot: registration, match channels, ready checks, team sheets, drafts, results and scoreboards.
- Teams OS, the back office: rosters per stage, results review, incidents, champion review, media hub, staff roles.
- pyramidsqueue.com: public pages in Arabic and English for standings, players, meta, bracket, rules, region and creators.
- One Supabase database: every number written once and read everywhere.
How I kept it fair
Automation removes typing, never judgement. Results, tiebreaks, warnings, clips and eligibility are decided by a person. 96.4% of 3,044 player statistic rows matched a registered player automatically; the rest waited for staff.
What went wrong, and what changed
- Discord's 500 channel ceiling: the bracket command now refuses a batch that will not fit and reports free channels.
- A team lookup that failed silently: now stage-aware, with a pre-flight check that fails loudly before the night.
- A bye with no channel: byes now get a channel and a bilingual brief.
What I learned
Fail loudly: every incident began as a quiet fallback. Count things one way and say which way. And let the players decide what affects them: the Bo5 vote cost one evening and earned the trust of all four teams.



