1 / 3Built interface — Bracket view
Overview
Tournament Manager is a Node.js web application with a companion Discord bot for running online tournaments. Teams register through a form, captains confirm their roster, and check-in opens at a time you set so the bracket is seeded only from teams who turned up. Single elimination, double elimination and Swiss groups are all supported, and a Swiss stage can feed a playoff bracket from a configurable cut.
Every match has its own page with the two teams, the scheduled time, the map or veto result and a reporting form. Either captain can submit a score, the other confirms it, and a mismatch opens a dispute for an admin. The Discord bot creates a private thread per match with both captains and the admin role, posts the match page link and reminders, and closes the thread when the result is confirmed.
The public side is a standings page and a bracket view that update as results come in, with an embed URL for a stream overlay. Admin tools cover reseeding, forfeits, schedule changes and a dispute queue with evidence attachments. Everything is delivered as source code with a SQLite database by default and a Postgres option, for you to run on a VPS or a platform of your choice.
As a server-owner plan, the operational material comes with it: a runbook for tournament day, templates for rules and a dispute policy, and a checklist for opening and closing registration. Revisions to those documents and updates to the app and bot for Discord API changes are placed in your Gaming Library while you are subscribed.
What you get
- Node.js web app with registration, roster confirmation and timed check-in
- Single elimination, double elimination and Swiss stages with a playoff cut
- Match pages with reporting, confirmation and a dispute path to admins
- Discord.js bot that opens a private thread per match and posts reminders
- Public standings and bracket pages with an embeddable overlay URL
- Admin console for reseeding, forfeits, schedule changes and disputes
- Tournament-day runbook, rules template and dispute policy template
- Docker compose file and a deploy guide for a VPS
Eligible resources
The plan covers these resource types. Individual resources are listed in your Gaming Library as they publish.
- Web app
- Discord bot
- Bracket engine
- Runbook
- Rules templates
- Deploy guide
Features
- Reported by both captains
- A score submitted by one captain is confirmed by the other, and a mismatch raises a dispute for an admin rather than a wrong result.
- Threads for every match
- The bot opens a private thread per match with both captains and the admin role, then closes it once the result is confirmed.
- Swiss into playoffs
- A Swiss stage with configurable rounds feeds a single or double elimination bracket from the cut you set.
Compatibility and requirements
Works with
- Node.js 20 or newer, SQLite by default with a Postgres option
- Discord.js 14 bot with a token from the Discord Developer Portal
- Any game, the match page fields are configured per tournament
- Docker optional for deployment
You need
- A VPS or hosting platform you control for the web app and bot
- A Discord server where you can add a bot with thread permissions
- A domain or subdomain for the public standings, optional
Updates and content cadence
- The full app, bot and operational documents from your first day
- App and bot updates when the Discord API or Discord.js changes
- Revisions to the runbook, rules and dispute templates while subscribed
License
- Licensed for your own community, server, team or channel.
- You may edit and publish the designs (or run the tools) for that community.
- Reselling the files or offering them as templates is not permitted.
Installation
- 1Download Tournament Manager from your Gaming Library.
- 2Copy .env.example to .env and add your database URL and bot token.
- 3Run npm install, then npm run migrate and npm start, or use the compose file.
- 4Invite the bot to your Discord server with the permissions in the guide.
- 5Create a tournament in the admin console and open registration.
If you cancel
- Access and updates continue until the end of the period you paid for.
- The licence to run the app and bot ends with the subscription.
- Remove the app and bot from live servers once access ends.
More from DistroSource Gaming
Browse all
3CS2, Valorant & EsportsTournament Tools
League Website Kit
A Next.js template for a league website with standings, schedule, results, team and player pages, match reports and a media kit, all driven by JSON content files.
- League site
- Next.js
- Update plan
View details$35/mo
Subscription
3CS2, Valorant & EsportsTournament Tools
LAN Event Toolkit
Planning documents and screen assets for a LAN or viewing party: signage, seat and station maps, schedules, check-in sheets, PC and network checklists, stage loops and volunteer briefs.
- LAN events
- Runbooks
- Update plan
View details$29/mo
Subscription
3CS2, Valorant & EsportsBundles
Broadcast Production Bundle
The production stack for a tournament organiser in one plan: CS2 and Valorant broadcast packs, the caster desk kit, tournament manager, both server kits and the match graphics drop.
- Production
- Broadcast
- Membership
View details$119/mo
Subscription
$39/mo
Tournament Manager

