Show HN: Bracket – selfhosted tournament system
9 comments
·May 5, 2025stalco
Nice frontend!
Here's a CLI implementation https://github.com/cristiean/bracket
wavemode
I play in a lot of tournaments (cornhole, mostly). It's not clear to me from the demo - does this support players signing themselves up? Or do they have to show up in person and the tournament director signs them up?
Online self-signups are really nice because they let players know how many have already signed up - if you're debating whether to drive across town to play, it's nice to know you're not going to get there and it turns out only 4 people showed up. It's also nice for tournament directors for the same reason, as you get a sense in advance for how many people to expect.
I'm also curious whether you've considered integrating this with Twilio or something similar, to send text messages. A big annoyance in running any tournament is making sure people get notified when their next match is up. Casual tournaments are often run in venues where people who are waiting for their next game tend to wander away to get food or a drink, or have a smoke.
The other big thing that strikes me about the demo is, how manual it all seems to be. Unless I'm just missing it, there doesn't seem to be a way to arbitrarily randomize teams and/or randomize a bracket of all entrants, you have to go through and assign team by team. I would definitely add lots of automation/randomization features, if there aren't any, as it's a big time saver for tournament directors.
tripleseven
Thanks for your reply!
> does this support players signing themselves up? Or do they have to show up in person and the tournament director signs them up?
Ah this isn't implemented yet as I haven't really come up with this idea yet, but it would be great to have this feature so I created an issue for it :) https://github.com/evroon/bracket/issues/1200. Feel free to leave more feedback there as well.
> I'm also curious whether you've considered integrating this with Twilio or something similar, to send text messages
Interesting idea as well! I haven't implemented any kind of notifications so far yet either. But it seems very useful, also from my experience with hosting these kind of tournaments. I'll think about what the best way to implement this is that would be easy (and free/cheap) to selfhost. Maybe it can be done using javascript serviceworkers that just send web notifications. That would be free. AFAIK text messages would always cost money to send.
albumen
This is a great idea, thank you for building it!
My wife organises a lot of double elimination tournaments; could you add that as an option?
Also, it would be cool to see the live demo tournament populated with matches, so you'd get an idea straight away of the experience without needing to create stages etc (but also keep the ability to set up a new tournament).
Lastly re notifications that wavemode suggested; perhaps you let people pay for SMS notifications themselves, as an option beyond web notifications. This page [1] implies that web push notifications are unreliable, on iOS and android.
[1] https://stackoverflow.com/questions/79215345/reliability-of-...
p2hari
I tested the app and it was working well and really admire all the work.
You say that you have been using to host badminton tournaments. However, I see that I can add only one score to the match (21-12). I mean there is no set system. ( 21-12, 12-21,21-12).
Am I right in that assumption, looks like there is one github issue also on that. Could you let me know if my understanding is right? I have an upcoming tournament and can test it out if that exists.
mrngm
Little nit on the Github README: the logo on the top seems cropped (frontend/public/favicon-wide.svg), the letter "e" is partly visible, and the "t" isn't visible.
tripleseven
Ah I tested it but haven't noticed this on firefox or chromium-based browsers on desktop and mobile. Could you tell me which browser you use (and wether it's on mobile or desktop) so i can reproduce the issue?
Kudos
Firefox on Linux here. I presume it's because I don't have Lato installed so it's falling back to another font.
tbone69
[flagged]
Over the last two years, I developed a tournament system called Bracket. Most (if not all) tournament systems available online are paid and ask tons of money (a typical minimum subscription costs 50 euros per month, and go up to 500 euros per month or so), which is not feasible for many small sport clubs/individuals. So I developed my own system and put it publicly on GitHub. AFAIK this is the only open source tournament system available that has a significant amount of features.
I made this tournament system for my badminton club and hosted six paid tournaments successfully.
It features flexible setups, where a tournament can have multiple stages and each stage can have multiple "items" (round robin, single elimination or swiss).
Backend is written in async Python with FastAPI and frontend in Next.js with the great Mantine library.
I would appreciate some feedback!
GitHub: https://github.com/evroon/bracket
Demo: https://www.bracketapp.nl/demo
Docs: https://docs.bracketapp.nl