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.
> 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.
You could always just implement an interface such as apprise or webhooks and leave the complexity of SMS (cost) or other types of notifications up to the selfhoster.
Based on using the various solutions in this space as a player, text messages and mobile notifications are the norm (folks that don’t install the app will still need sms or similar).
I've integrated with Twilio. I pay a whole bunch of money every month for sending SMSs. And then recently they made me jump through a bunch of regulation hoops. Had to give them all my business documents.
So even if OP does all the work of integrating it, I assume OP isn't going to pay the fees for you, so then you have to create your own Twilio account and jump through the same hoops.
Hmm is there really a benefit of using SMS rather than email? Nowadays everyone just gets email notifications on their phone anyways right? Depending on the provider, you might not receive the notification as instantaneous as with SMS, but it should still arrive quickly. And emails are cheaper (or even free) to send than SMS.
> Nowadays everyone just gets email notifications on their phone anyways right?
Not everyone does. It's a typical 80/20 problem (the 80% being those who use the technology that's easy to develop for, the other 20% being the hard part). 80/20 not being the exact numbers, obviously.
That being said, you certainly don't _have_ to cover more than one way of sending notifications, but that's a decision to be made and the consequences acknowledged.
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.
> My wife organises a lot of double elimination tournaments; could you add that as an option?
Yes there's an open issue about that, I do plan to implement that, hopefully rather soon.
> Also, it would be cool to see the live demo tournament populated with matches
Ah that makes sense. I didn't want to set up everything already because it might not be the way you want it to be and would unnecessarily put load on my server. But a few teams+matches should be doable indeed, good idea!
> 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,
Ah that's unfortunate. I will look a bit more into Twilio then, thanks for raising that!
If it's self hosted, you shouldn't care if it costs money. Let the person/org decide if they want to use it, just provide an interface for it. There are tons of free, self hosted apps that have tons of notification methods available. Radarr alone has 26 methods for notifications, none enabled by default. They include generic webhook, "custom script", and then there a number of specific ones where you put in the URL, API key, etc. and as the person hosting it things would go against my API count/bill. There's no need for you to be specific about Twilio, just have a notification framework with Twilio being one of the providers.
For whatever it's worth, I tried setting up a quick Swiss chess tournament, and got a little confused about the stages. I think I may have set up two by mistake, at least, the "previous" button was visible when I was editing the stage I created.
And it appears that Teams are required, even though for a chess tournament like mine, each player is just an individual, and there are no teams involved. So it didn't really feel like a good fit.
None of this is meant as a criticism, just a data point.
> got a little confused about the stages. I think I may have set up two by mistake, at least, the "previous" button was visible when I was editing the stage
Hmm I am planning to add "templates" for stages that you select and it will create stages according to a standard template. For example, first a group stage, followed by a knock-off stage. That should make it even simpler to set up stages. I'll look into the "previous button" problem you describe, maybe something goes wrong there.
> each player is just an individual, and there are no teams involved
Yes I have heard multiple people about this confusion. The idea is that if you have only players (no teams), you just create teams with no players in them. I'd prefer not to implement the idea of "players as teams" because it will make things very complicated. I could maybe adjust the frontend though to just show teams as players in that case.
Great idea, would use it for local pick-up soccer games. Would actually use it for FIFA nights and poker games as well. It would be cool if you can add an aggregated stats and leaderboard page. Keep going back for glory.
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.
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?
Firefox 136 on Linux, desktop; and as a sibling commentor suggests, it could be font issue, interesting! Firefox uses Noto Serif here, I don't have Lato installed.
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.
Ah yes we didn't use best-out-of-three for those tournaments, just one set per match. So I indeed haven't implemented sets yet, but I do plan to implement that.
How easy is it for a high schooler to actually install and run this software for their club? I imagine a teenager who can competently handle a discord server, including setting up bots. But doesn't know much about computers beyond that.
Hmm it's quite a bit more complicated than that. You need to be able to run Docker containers (that's the easiest way to run this). There's countless ways to do that nowadays, and internet is full of tutorials. Portainer seems easy to use to solve this problem but I've never tried it. There's a lot of cloud providers that offer running Docker containers though.
I understand your point and I definitely agree that products should be as easy to use and set up as possible. However, I don't really see a way to make this any easier than it is now, or easier to set up than any other selfhosted project you can find on github.
I'm not targeting high school students (specifically) and it's outside the scope of the project to give a background course in DevOps.
I would argue the software is definitely usable by anyone who has some basic experience with Linux and Docker.
If you have specific ideas on how to make selfhosting this easier, I'm certainly curious.
I think the parent's comment was unfair – you were (roughly) looking to build a self-hosted, open project for those who don't want to pay for hosted options, and that's exactly what you've done. I'm certainly a person who will be keeping this project in mind for the future.
It's fairly obvious that the largest possible audience would want a turn-key, hosted service, and there are paid options that deliver exactly that. I don't suspect that you were aiming to be "the discord of" this field, and the path to getting there is wildly different.
Great work, and kudos on both the initiative and the progress!
> In 2007, LimeWire was estimated to be installed on over one-third of all computers globally. [1]
20 years ago, even grandpa could download the LimeWire setup.exe, install it in 1 min, and start hosting and sharing files with anyone on the internet. You would think we would have made progress since then and things would be even easier to host and run. Instead we have regressed: a simple software requires devops expertise to install.
Cool project, I read through the code and it seemed thoughtful and well laid out.
To make this more accessible you'd need to offer a managed version on a cheap vm, at which point you're also managing the overhead of a VM, authentication system, etc. Oof. Obviously out of scope for a side project.
Event organizing is an art. Not just the data but managing payment processing, external communication (email, sms), and other overhead. Godspeed to the folks organizing events and building tools to make it easier.
Yes I agree the only way to make it easier is to offer a hosted version. I already offer the demo which is hosted, but I don't (at this time) want to offer a whole service, because of indeed what you mention + I would have to deal with legal stuff like privacy policies etc.
I havent seen that service before, but it's probably similar. Though they seem to let you still pay for certain features, which Bracket doesn't because all code I wrote is indeed public.
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.
> 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.
I've integrated with Twilio. I pay a whole bunch of money every month for sending SMSs. And then recently they made me jump through a bunch of regulation hoops. Had to give them all my business documents.
So even if OP does all the work of integrating it, I assume OP isn't going to pay the fees for you, so then you have to create your own Twilio account and jump through the same hoops.
Not everyone does. It's a typical 80/20 problem (the 80% being those who use the technology that's easy to develop for, the other 20% being the hard part). 80/20 not being the exact numbers, obviously.
That being said, you certainly don't _have_ to cover more than one way of sending notifications, but that's a decision to be made and the consequences acknowledged.
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-...
> My wife organises a lot of double elimination tournaments; could you add that as an option?
Yes there's an open issue about that, I do plan to implement that, hopefully rather soon.
> Also, it would be cool to see the live demo tournament populated with matches
Ah that makes sense. I didn't want to set up everything already because it might not be the way you want it to be and would unnecessarily put load on my server. But a few teams+matches should be doable indeed, good idea!
> 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,
Ah that's unfortunate. I will look a bit more into Twilio then, thanks for raising that!
And it appears that Teams are required, even though for a chess tournament like mine, each player is just an individual, and there are no teams involved. So it didn't really feel like a good fit.
None of this is meant as a criticism, just a data point.
Hmm I am planning to add "templates" for stages that you select and it will create stages according to a standard template. For example, first a group stage, followed by a knock-off stage. That should make it even simpler to set up stages. I'll look into the "previous button" problem you describe, maybe something goes wrong there.
> each player is just an individual, and there are no teams involved
Yes I have heard multiple people about this confusion. The idea is that if you have only players (no teams), you just create teams with no players in them. I'd prefer not to implement the idea of "players as teams" because it will make things very complicated. I could maybe adjust the frontend though to just show teams as players in that case.
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.
Ah yes we didn't use best-out-of-three for those tournaments, just one set per match. So I indeed haven't implemented sets yet, but I do plan to implement that.
I'm not targeting high school students (specifically) and it's outside the scope of the project to give a background course in DevOps.
I would argue the software is definitely usable by anyone who has some basic experience with Linux and Docker.
If you have specific ideas on how to make selfhosting this easier, I'm certainly curious.
It's fairly obvious that the largest possible audience would want a turn-key, hosted service, and there are paid options that deliver exactly that. I don't suspect that you were aiming to be "the discord of" this field, and the path to getting there is wildly different.
Great work, and kudos on both the initiative and the progress!
20 years ago, even grandpa could download the LimeWire setup.exe, install it in 1 min, and start hosting and sharing files with anyone on the internet. You would think we would have made progress since then and things would be even easier to host and run. Instead we have regressed: a simple software requires devops expertise to install.
[1] https://en.wikipedia.org/wiki/LimeWire
To make this more accessible you'd need to offer a managed version on a cheap vm, at which point you're also managing the overhead of a VM, authentication system, etc. Oof. Obviously out of scope for a side project.
Event organizing is an art. Not just the data but managing payment processing, external communication (email, sms), and other overhead. Godspeed to the folks organizing events and building tools to make it easier.
Yes I agree the only way to make it easier is to offer a hosted version. I already offer the demo which is hosted, but I don't (at this time) want to offer a whole service, because of indeed what you mention + I would have to deal with legal stuff like privacy policies etc.
Here's a CLI implementation https://github.com/cristiean/bracket