Restricted Access
Declare Vendettas, record live results, or process a past event
Upload today's check-in / pairings CSV. Each attending player gets declared a Vendetta — their best available rival from the saved season Gist — even if that exact rival isn't here today.
Drop today's CSV here or browse
Same export format as your tournament platform
Couldn't be at the event? Process the whole thing afterwards. Upload every round's results CSV at once (Swiss rounds and Top Cut together — tag each file below). Scoring uses the Vendetta list declared before the event; if none was declared, one is generated retroactively from attendance — including random New Blood pairs — so nobody misses out on points. Each round scores exactly like the live flow, and every match is merged into season head-to-head.
Drop ALL round results CSVs here or browse
One file per round / bracket — same export format as your tournament platform
Configure Gist sync — your token is stored locally on this device only
Each city has its own data, Gist, and passwords. Log out and use the other city's passphrase to switch.
Saved to this city's Gist — applies only to the active city.
Paste your GitHub Personal Access Token with gist scope. It is saved only in this browser's localStorage — never sent to GitHub inside the HTML file.
The judge roster and service record live in their own Gist, shared across both cities — judges work Abu Dhabi and Dubai, so they carry one rank. Leave this blank to use the built-in default.
Download a local backup of your Gist data, or restore from a previous backup file.
In-event pack raffle — door prize + round-by-round draws
Record warnings and penalties tied to players and events
Run a Swiss-format tournament with OMW tiebreakers
Additional tools will appear here over time
Coming soon…
Upload historical round CSVs to generate rivalry pairings from real match data
Drop CSVs here or browse
Player A · Player B · Wins A · Wins B
GSL group stage into single-elimination playoffs — the season's championship bracket
Blind-draw single elimination down to a Top 8, then double elimination for the finish
Season records for every player, computed from the saved head-to-head data
Certification level and service rank for the judge team
Two independent measures. Level is certification — what a judge is qualified to run.
Rank is service — how often they have actually turned up.
A Level 1 who works every week outranks a Level 3 who rarely does.
Rank follows one number, total shifts served, and only ever rises.
Pick a night, say what it was, tick everyone who worked it. New judges are created here and nowhere else — the only way onto the roster is to work an event.
Entries queue locally and write to the judges Gist in one go; nothing reaches GitHub until you press Save.
Review the batch, then one write. A rejected write leaves the queue intact so you can retry.