Please don't ask people to run non-free software to participate in your open source community. Many open source / free software enthusiasts are reluctant to use them, or flat out boycott them. What's more, you are putting your worthy community somewhere out of your control if you do this.
Slack and Discord are not cool and do not make your project cool. They make your project unreachable, now and in the future (archives). You won't be able to trace the history of your project when you will want to do it.
What's more, Slack and Discord are hype now but will probably be old-fashioned in a few years and you don't know when they will disappear. Just pick something already old-fashioned today but that somehow does not die.
Element sounded better for me and my friends than Discord but it is hard to convince people to use it when the client is incredibly buggy on desktop and Android.
I have been having a bug of having been shown a couple of past messages on the bottom. It always gets below new messages. They cannot be deleted. I had it on both Linux and Android. Now I seem to be having this only on Android.
Are you going to host and maintain the forums for them? I'm not a fan of this particular use case for Discord but it's pretty much the easiest solution to online discussions that's currently available.
NodeBB can, for qualified open source projects. I think some other softwares also offer similar deals for open source projects, especially those with a following.
> Maintainers should do exactly what they determine is best for them and the project.
100% in agreement!
> open-source puratism isn't a guiding principle for maintainers believe it or not.
No, it's not, but in my experience, about 50% of the people who contribute code I want to merge avoid proprietary garbage whenever they can. Why increase the friction for them?
> Running a discord allows maintainers to foster somewhat friendly relationships with users instead of purely transactional & functional relationships.
There are plenty of options that aren't actively user hostile if you're of the opinion that real time chat is that important.
> Your comment comes off as entitled although I will concede that slack is not cool. Good day.
I'm not sure I got that from his, this needless insult did make me feel that way about yours though.
> I'm not sure I got that from his, this needless insult did make me feel that way about yours though.
Just a little joke, didn't mean it in a bad way.
> No, it's not, but in my experience, about 50% of the people who contribute code I want to merge avoid proprietary garbage whenever they can. Why increase the friction for them?
PR critical discussions stay on PR. Would be silly to have that discussion off platform if it pertains to an open PR. My point was more aimed at the claim that the historical record should be of any concern to the maintainer.
> There are plenty of options that aren't actively user hostile if you're of the opinion that real time chat is that important.
Discord without verification and without overzealous rules is a good in between. I make sure to not require verification for my project's discord because verification is needless friction when somebody wants to ask a question/advice. The off-platform chat needs to be as frictionless as possible. Other than that I don't see how else a discord can be user hostile.
Well I think you'd find that your first barrier would be the fact that most open source projects are run off of GitHub which is a company owned by Microsoft.
>They make your project unreachable, now and in the future (archives). You won't be able to trace the history of your project when you will want to do it.
That has nothing to do with the software being open source or not, it's a question of whether you have a robust archival system in place.
I use open source software for plenty of things but most of it will at some point be lost to the ether because nobody's backing anything up
> That has nothing to do with the software being open source or not, it's a question of whether you have a robust archival system in place.
With Slack, your only option is to pay per user in order to have access to older messages, which is almost certainly going to be cost-prohibitive for most projects. I don't have a source for this, but I believe using a bot that automatically archives conversations elsewhere is against Slack's free-tier ToS.
I agree that this doesn't inherently have anything to do with closed vs. open source, but these sorts of shenanigans just aren't possible if you're self-hosting an open source discussion platform.
If they want to boycott them, they can go ahead, but I consider Discord to be the best place to build a community right now and I don't think that free software purists have any right to demand that devs build their platforms on something like IRC (which in my personal opinion is inferior and a relic of the past) just because they don't like Discord or non-free software.
And it doesn't matter if you can't archive or return to stuff if you're putting important stuff on Github Issues or something and using Discord for the rest.
> I consider Discord to be the best place to build a community right now
Why so?
> I don't think that free software purists have any right to demand that devs build their platforms on something like IRC
Sure, but they can kindly ask, I guess! Don't you think using readily available open source software is a reasonable ask from an open source community?
And well, IRC is not the only alternative to Slack and Discord. You have Mattermost, Matrix, Telegram, Wire and numerous other tools which are decent modern chat apps. However, the points about using chat in the original article still stand with these tools.
Not OP but building a community is best on discord because it's an environment that encourages focused discussion with everything being hierarchical in the form of server (guild)->channel category[]->channel[]. If someone is only into the general discussion of an OS project and isn't interested in the talk about maintaining it, they can mute the channel and/or collapse the channel category. IRC fails in this regard since things aren't situated as collections of readable-to-all channels unless every member specifically joins the respective IRC channels for the separate segments of discussion.
The reason Discord is chosen over the likes of Matrix and Telegram is because Discord is the clear winner in network effect. The chances of someone having a Discord account versus having a Matrix account or Telegram are small, so setting up there will severely reduce the amount of people that join just to be part of the discussion; people will join anything, even a phpbb forum, if they have a specific question or request to ask of the maintainers of a OSS project. With that, it makes sense to optimize for building a community that actually wants to chat, and part of that is making it super easy to check in on the discussion. Nothing is easier than just clicking on a different server in your Discord server list.
Discord is chosen over Mattermost and Wire because signing up for either of those is a joke. Wire puts you into a funnel with questions you have to answer when it asks you to "Create a Team" - even worse, the placeholder text is "Work email", they've obviously given up on the community-building/friends & family market segment. Mattermost is similarly trying to capture as many high-paying customers as possible with the homepage being about work, and both "Cloud" and "Self-managed" options having the button say "Start Free Trial". People just want to start their community for free. If they don't already know that it's possible to use these for free without being put into a sales CRM, they're not going to find out from visiting the home pages of these services.
Because if it's open source or aimed at developers in some way, it wasn't built for you. It was built for everyone. It works by everyone helping everyone else use it.
Maybe you should get out your credit card and call a commercial software vendor if you want personal attention?
I am a developer and I understand the need for person-power to continue the development of software. But that doesn't mean I have unlimited time (or money) to support the development of all of the software I might engage with.
If a new user (including devs using libraries) needs to join real time chat in order to get help with a "I tried X and I thought I'd get Y, but I saw Z instead" type problem then that seems pretty hostile.
Most users are going to be transactional in their engagement with the software, open source or not. The community around software grows over time as the top of the iceberg of users forms a community of active participants.
But forcing a "community" by trying to force transactional support style engagement into a real time conversation framework is detrimental to the users as well as the "community" you are trying to force into existing.
Edit: Plus as a Kiwi I am, as a general principle, against anything that reinforces the tyranny of time zones. Which synchronous communication definitely does.
> Most users are going to be transactional in their engagement with the software, open source or not.
Yeah, that's the problem.
Just last week I saw a GH issues post in which someone was reporting problems with the HTML output of an MIT licensed email template editor, and someone had replied that he fixed all of the tags/CSS, and then edited his link to a gist with the changes, saying that "his boss told him that was proprietary."
What was surprising was not that a random corporate stooge is both a complete scumbag, and thinks table tags are valuable, but that everyone else in the thread accepted the response without mockery, and no one bothered to look up who that guy worked for and harass the company on social media.
> But forcing a "community" by trying to force transactional support style engagement into a real time conversation framework is detrimental to the users as well as the "community" you are trying to force into existing.
I don't think community denotes real time communication. Community is also when Theo was widely praised for dropping all Adaptec drivers from a release version of OpenBSD quite a few years ago, to punish them for giving him a run-around on drivers about 'iNtElLeCtUaL pRoPeRtY' (despite the fact that they were a hardware company). Community is also when people find a hidden daemon in OSX that contacts an NSA / CIA server and post it publicly rather than anonymously to a journalist without the details of the process used to uncover it.
Community was better 15-20 years ago than it is now, by a wide margin. All those "transactional" had people better pick the right jobs with valuable equity, otherwise they'll find themselves short of keeping their kids and grandkids middle-class when everyone else has "transactional'd" themselves all the way to slums and soylent green patrolled by Amazon-branded Ring / Terminator cops.
edit: while I'm at it... the company who is using an MIT licensed email template editor but doesn't think employees should post PRs for it to fix bugs is https://www.linkedin.com/company/flexmr/about/
I definitely see an issue with this. Fortunately, at least GitHub is readable without running non-free code and is searchable. I guess you can also participate with one of those alternative clients.
You are still not in control of your community, and I'd like this monopoly to vanish.
Not really. GitHub is also "readable" through a search engine, and can be used (read-only) without signing in. GitHub also allows you to use automated tools to read and manipulate the data stored there. Discord does not allow you to do any of those things.
It is more of the content inside GitHub is widely accessible without needing to log in whereas Discord are not really accessible and often would need "invitation link" to find those servers. GitHub is far more public in this sense than Discord is. Discord/Slack is a instant message system, far different, than forums style which are "static", which make archival extremely difficult to do in Discord/Slack.
Probably because you're nowhere near as "locked-in" to GH. You can move your source code and all of its history to another hosting platform in minutes with git.
If you want to move your Slack/Discord community to another platform, there is no easy way to export the content AFAIK.
Not true. Good luck exporting the issues, pull requests, comments, discussions, wikis, etc. and bringing those to another platform.
Ironically (and I am not defending them), Slack[0] is the only one of the three that has an official way to export all messages. GitHub does not, unless you're counting their API, but then maybe you want to consider Discord things like this[1]?
> Please don't ask people to run non-free software to participate in your open source community.
Doesn't that imply the end of all macOS related projects? Not that I'm complaining, I'm actually very surprised by the amount of effort individuals put in to open source efforts (such as homebrew) to support a proprietary closed platform like macOS.
I didn't think about this case, but obviously a project related to a proprietary software will require running this software and that seems reasonable.
I guess I'm thankful to people making open source software for closed platforms so they are available should I ever be exposed to these platforms.
It's not this surprising, people can see the value of open source but be okay (or forced) to use non free software.
I own two fairly popular github projects (2.4k and 500 stars) - I have a Discord server. What do you recommend for me? I don't want to spend a penny on hosting this since it's a for fun project.
I haven't mentioned IRC, and there are several, more modern, alternatives to IRC.
But actually, what is so wrong about IRC? I used to listen a popular webradio which had an IRC channel, people managed to join it no problem, including me as a child. Surely a developer is capable of joining and using IRC with ease?
IRC had this interesting property that chat logs were often provided publicly, making them searchable.
1. IRC doesn't have any form of persistence or history, requiring the user to run a bouncer
2. IRC doesn't have any formatting - this makes it annoying to talk about code
My experience with IRC is that I joined a channel, asked the question I wanted, waited for a few hours without a response, and turned my computer off. If anyone answered it after that, I have no way of knowing. I don't regularly use IRC and so I don't run a bouncer.
This wasted both my time and the time of people who answered my question after I was gone.
In better chat systems, you can e.g. get an email notification if someone replies to you, allowing you to check back later.
I agree mostly, but I'm going to nitpick: not all open source software is "free" in either sense of the term.
I think slack and discord are _awful_ support forums (I'm saying this as I manage a 30k user slack and a 15k user discord server). The detriments of these platforms as a support portal stands on its own without any sort of philosophical musings.
> I agree mostly, but I'm going to nitpick: not all open source software is "free" in either sense of the term.
To a first approximation, it is. The opensource definition [0] and the free software one [1] are basically equivalent in outcome, just not in the philosophy behind them.
The license lists are also basically identical, except for the Open Watcom license, where, tbh, someone at the OSI smoked the wrong thing. It's also essentially unused.
Slack and Discord are not cool and do not make your project cool. They make your project unreachable, now and in the future (archives). You won't be able to trace the history of your project when you will want to do it.
What's more, Slack and Discord are hype now but will probably be old-fashioned in a few years and you don't know when they will disappear. Just pick something already old-fashioned today but that somehow does not die.