Please don't use Slack for FOSS projects (2015)

2019-11-011:17176132drewdevault.com

I’ve noticed that more and more projects are using things like Slack as the chat medium for their open source projects. In the past couple of days alone, I’ve been directed to Slack for Babel and…

I’ve noticed that more and more projects are using things like Slack as the chat medium for their open source projects. In the past couple of days alone, I’ve been directed to Slack for Babel and Bootstrap. I’d like to try and curb this phenomenon before it takes off any more.

Problems with Slack

Slack…

  • is closed source
  • has only one client (update: errata at the bottom of this article)
  • is a walled garden
  • requires users to have a different tab open for each project they want to be involved in
  • requires that Heroku hack to get open registration

The last one is a real stinker. Slack is not a tool built for open source projects to use for communication with their userbase. It’s a tool built for teams and it is ill-suited to this use-case. In fact, Slack has gone on record as saying that it cannot support this sort of use-case: “it’s great that people are putting Slack to good use” but unfortunately “these communities are not something we have the capacity to support given the growth in our existing business.” 1

What is IRC?

IRC, or Internet Relay Chat…

  • is a standardized and well-supported protocol 2
  • has hundreds of open source clients, servers, and bots 3
  • is a distributed design with several networks
  • allows several projects to co-exist on the same network
  • has no hacks for registration and is designed to be open

No, IRC is not dead

I often hear that IRC is dead. Even my dad pokes fun at me for using a 30 year old protocol, but not after I pointed out that he still uses HTTP. Despite the usual shtick from the valley, old is not necessarily a synonym for bad.

IRC has been around since forever. You may think that it’s not popular anymore, but there are still tons of people using it. There are 87,762 users currently online (at time of writing) on Freenode. There are 10,293 people on OFTC. 22,384 people on Rizon. In other words, it’s still going strong, and I put a lot more faith in something that’s been going full speed ahead since the 80s than in a Silicon Valley fad startup.

Problems with IRC that Slack solves

There are several things Slack tries to solve about IRC. They are:

Code snippets: Slack has built-in support for them. On IRC you’re just asked to use a pastebin like Gist.

File transfers: Slack does them. IRC also does them through XDCC, but this can be difficult to get working.

Persistent sessions: Slack makes it so that you can see what you missed when you return. With IRC, you don’t have this. If you want it, you can set up an IRC bouncer like ZNC.

Integrations: with things like build bots. This was never actually a problem with IRC. IRC has always been significantly better at this than Slack. There is definitely an IRC client library for your favorite programming language, and you can write your own client from scratch in a matter of minutes anyway. There’s an IRC backend for Hubot, too. GitHub has a built-in hook for announcing repository activity in an IRC channel.

Other projects are using IRC

Here’s a short, incomplete list of important FOSS projects using IRC:

  • Debian
  • Docker
  • Django
  • jQuery
  • Angular
  • ReactJS
  • NeoVim
  • Node.js
  • everyone else

The list goes on for a while. Just fill in another few hundred bullet points with your imagination. Seriously, just join #<project-name> on Freenode. It probably exists.

IRC is better for your company, too

We use IRC at Linode, even for non-technical people. It works great. If you want to reduce the barrier to entry for non-technicals, set up something like shout instead. You can also have a pretty no-brainer link to webchat on almost every network, like this. If you need file hosting, you can deploy an instance of sr.ht or something like it. You can also host IRC servers on your own infrastructure, which avoids leaving sensitive conversations on someone else’s servers.

Please use IRC

In short, I’d really appreciate it if we all quit using Slack like this. It’s not appropriate for FOSS projects. I would much rather join your channel with the client I already have running. That way, I’m more likely to stick around after I get help with whatever issue I came to you for, and contribute back by helping others as I idle in your channel until the end of time. On Slack, I leave as soon as I’m done getting help because tabs in my browser are precious real estate.

First discussion on Hacker News

Second discussion on Hacker News

Addressing feedback on this article.

Slack IRC bridge: Slack provides an IRC bridge that lets you connect to Slack with an IRC client. I’ve used it - it’s a bit of a pain in the ass to set up, and once you have it, it’s not ideal. They did put some effort into it, though, and it’s usable. I’m not suggesting that Slack as a product is worse than IRC - I’m just saying that it’s not better than IRC for FOSS projects, and probably not that much better for companies.

Clients: Slack has several clients that use the API. That being said, there are fewer of them and for fewer platforms than IRC clients, and there are more libraries around IRC than there are for Slack. Also, the bigger issue is that I already have an IRC client, which I use for the hundreds of FOSS projects that use IRC, and I don’t want to add a Slack client for one or two projects.

Gitter: Gitter is bad for many of the same reasons Slack is. Please don’t use it over IRC.

ircv3: Check it out: ircv3.net

irccloud: Is really cool and solves all of the problems. irccloud.com

2018-03-12: Slack is shutting down the IRC and XMPP gateways.


Read the original article

Comments

  • By t0mbstone 2019-11-013:1912 reply

    Acting like IRC is equal in functionality to Slack or Discord is straight up delusional.

    One of the biggest problems with IRC is that there is no immediately obvious way to jump into a channel and browse or search the history.

    Also, because there are so many IRC clients, and so many servers out there, one person's IRC experience can vastly differ from another's.

    IRC also doesn't have any of the modern amenities like emoji reactions or reaction gifs, comment threads, code snippets, plug-and-play third party integrations and web hooks, profile pictures, voice/video chat, screen sharing, or any number of a plethora of other features that BOTH Slack and Discord have.

    If you want people to use an open source alternative to Slack or Discord, then people need to build that alternative. IRC, unfortunately, is not it (at least not in its current aged state).

    • By charlesdaniels 2019-11-014:464 reply

      > One of the biggest problems with IRC is that there is no immediately obvious way to jump into a channel and browse or search the history.

      There are many solutions available to do this. Many channels publish chat logs publicly, which can be downloaded and searched using grep or your tool of choice. And there are web clients that can do this.

      > Also, because there are so many IRC clients, and so many servers out there, one person's IRC experience can vastly differ from another's.

      That’s rather the point of a protocol, no? IRC isn’t a platform, it’s a standardized way in which various clients and servers can communicate. Much like email, different clients support features useful for different users.

      > IRC also doesn't have any of the modern amenities like emoji reactions or reaction gifs, comment threads, code snippets, plug-and-play third party integrations and web hooks, profile pictures, voice/video chat, screen sharing, or any number of a plethora of other features that BOTH Slack and Discord have.

      I consider this a feature. I expect many others would. Constant reaction gifs / emojis / etc seem to be a distraction. I don’t believe I’ve seen these used in a way that had a positive impact on productivity, or effectiveness of communication.

      > If you want people to use an open source alternative to Slack or Discord, then people need to build that alternative. IRC, unfortunately, is not it (at least not in its current aged state).

      matrix.org / riot.im is what you want. The matrix protocol supports all of these features. Riot is an open source web client for it. I use it regularly and would recommend.

      • By api_dolla 2019-11-017:061 reply

        This reminds me so much of the ‘Show HN: Dropbox’ post

        • By piva00 2019-11-0112:45

          I have linked to that post quite a few times here in HN along the years, it is surprising for me how many times this same kind of answer pops up and I don't understand if it's lack of vision or empathy that there are people out there that want tools with better ergonomics and are willing to pay for that.

          Quite a few of us here work in software, of course we can just jerry-rig a lot of solutions based on existing tools, it doesn't mean it is sufficient to be a product or useful for a broader set of users...

      • By chipperyman573 2019-11-017:011 reply

        All of the things you listed are true, and you and I and most other people on HN can respect why (at least to us) these reasons stand out from slack. But a middle manager who doesn't even know what IRC stands for isn't going to want to learn the syntax for grep. They're not even going to know why they have to write \" instead of ". They want something where you can scroll up, and then your messages from two months ago are there. And that's what slack is.

        • By oytis 2019-11-0112:131 reply

          Yeah, but the original point was about FOSS projects. Just don't let managers into your FOSS project.

          • By packetlost 2019-11-0113:301 reply

            Don't let knowledge of old * nix tools be effectively gatekeeping people from joining a FOSS project.

            grep is not a sufficient replacement for indexed search with fields. Just try to use Discord's search feature, you can specify constraints extremely easily. The equivalent in grep (if you even have logs going back that far) would be some gnarly regex that you have to reference what characters you need to specify unless you're very familiar with regex.

            IRC isn't hard, but it has real shortcoming and real problems. The user experience hasn't meaningfully changed in 20+ years, but people's expectations and how they interact with chat platforms has. This is coming from someone who uses IRC every day, both at work and at home.

            What we really need is most of the features of Slack without it's terrible threading mechanism and no GIFs.

            • By oytis 2019-11-0115:331 reply

              Well, my experience with Slack (never tried discord really) is that it's pretty hard to find anything that is more than a week old. Slack (and IRC) is designed to exchange the information quickly and forget about it. If we need traceability then e-mail is much superior to both.

              • By DenseComet 2019-11-0122:50

                Discord's search feature is beautifully from what I've experienced. I can search and get snippets from months and months ago almost instantly.

                Good search can be done with chat, it just tends to be hard.

      • By jobigoud 2019-11-048:13

        I disagree on reaction emojis. The alternative is to leave a reaction as a new message or not react in any way. They are filling a gap between responding and ignoring. Like a head nod but with more flavors.

      • By Bnshsysjab 2019-11-0111:151 reply

        Riot seemed reeeeally clunky when I tried it, which is a shame because I’m sure it’d be a decent codebase

        • By kixiQu 2019-11-0119:11

          it's getting better all the time IMHO. The problem is that the reference back-end is in Python which isn't scaling well enough for the matrix.org instance / its rooms-- which is the only instance many people try. There's a project to implement that back-end in Golang which I expect to be a real turning point if it can get off the ground.

    • By zAy0LfpBZLC8mAC 2019-11-013:593 reply

      > Also, because there are so many IRC clients, and so many servers out there, one person's IRC experience can vastly differ from another's.

      How the fuck did people come to think of this as a negative? One of the stupidest things about "modern" IT services is that the public interface is a user interface instead of a machine readable iterface, so you can't build a user interface that fits your needs or preferences, you can't innovate features independently, and you can't use software to process the data, you have to interface everything with a human (or go to great length to scrape stuff 'n shit ... just the point of using information technology!).

      • By flukus 2019-11-014:29

        Agreed. The worst thing about all these * as a service things it that you're locked in to a single client for that service and many of them have awful and annoying UI's. The netflix UI isn't great, the audible one is abominable, the google music one is very bare bones and they don't care because they have a monopoly on the content. There is no incentive to improve, they have to be just good enough.

        Having many IRC clients is a good thing because I can have the experience I want, not the experience someone else wants me to have.

      • By tom_mellior 2019-11-0110:281 reply

        > you can't innovate features independently

        That's also the case with open protocols like IRC. Sure you can write an IRC client with reaction emoji support, and it will look great in your client, and anyone using a different client will just see garbage metadata. You can only innovate by getting "everyone" to agree on a new standard, and that's hard.

        • By zAy0LfpBZLC8mAC 2019-11-0111:081 reply

          > That's also the case with open protocols like IRC.

          No, it's not.

          > Sure you can write an IRC client with reaction emoji support, and it will look great in your client, and anyone using a different client will just see garbage metadata.

          Then you are bad at protocol design.

          > You can only innovate by getting "everyone" to agree on a new standard, and that's hard.

          No, you innovate by being backwards compatible with established standards.

          Now, maybe IRC has reached the limits of its flexibility and should be replaced, I dunno, but the idea that it is somehow impossible to evolve protocols incrementally with partial adoption of new features is just bullshit.

          • By tom_mellior 2019-11-0116:141 reply

            I think you read too much into my post. I didn't claim anything about protocols in general. You yourself admit that it might not be flexible enough to evolve. It has certainly had a lot of time to try.

            • By zAy0LfpBZLC8mAC 2019-11-0118:57

              > You yourself admit that it might not be flexible enough to evolve.

              I don't really think so, but I don't really know, I haven't every tried to do anything in that direction.

              > It has certainly had a lot of time to try.

              Except that people have to do it? As far as I am concerned, IRC is good enough, so I don't feel like putting any effort into "improving" anything, and it seems like a lot of people using IRC feel this way. Those who feel it's not good enough, though, seem to prefer building non-interoperable systems or just using proprietary lock-in vendors. Obviously, that's not gonna result in anything new in IRC.

      • By briandear 2019-11-014:042 reply

        Instead of re-inventing the wheel building your own interface, why not just spend that time working on the FOSS project in question? FOSS dogma seems to frequently get in the way of FOSS development. If you aren’t pure and blessed, somehow you are less worthy.

        • By zAy0LfpBZLC8mAC 2019-11-016:18

          > Instead of re-inventing the wheel building your own interface, why not just spend that time working on the FOSS project in question?

          Hu? Because they won't take my contribution that rips out all of the web interface and replaces it with EMACS?

          I mean, what does this even have to do with FOSS? Developing stuff as protocols instead of as user interfaces does not in any way prevent FOSS, very much to the contrary. There are FOSS IRC clients in all shapes and forms: Web interfaces, X GUIs, Windows GUIs, mobile clients, terminal UIs, EMACS modes, XMPP bridges, Matrix bridges ... how is any of that "reinventing the wheel", and how would we be better off if all those clients had to be part of one "IRC FOSS project" rather than independent projects with standards-based interoperability?

        • By kick 2019-11-014:51

          GNOME is an example of a free software project that is actively hostile to suggestions, critiques and code to improve it from outside.

    • By SmirkingRevenge 2019-11-013:511 reply

      On the free slack plan, you don't get history beyond its 10k message limit (or whatever the number is), unless you start paying per head. Even on small teams, that limit is hit surprisingly quickly. For the medium-to-large sized open source project slacks -- the history is basically completely useless.

      Free slack is on par with IRC here -- you need someone nerdy enough to run a chat history bot to get a full searchable history.

      • By freefal 2019-11-013:542 reply

        That's not necessarily true. If you're a certified non-profit, you can get free Slack with unlimited message history for up to 250 users (https://slack.com/help/articles/204368833).

        • By rumanator 2019-11-014:191 reply

          > for up to 250 users

          The thesis defended in the article is that Slack is not suited to communicate with the userbase of open source projects.

          Capping a basic feature such as collecting message history at 250 users is a limitation that supports the author's thesis, as clearly it demonstrate that Slack is unable to handle the communication needs of a moderately popular open source project.

          • By chrisseaton 2019-11-014:221 reply

            Many projects prefer a limited history for interactive chats.

              • By chrisseaton 2019-11-014:421 reply

                I think it’s a bit snide and snarky to just post a link like that.

                And I don’t even think it’s applicable - in the community I’m in we decided we didn’t want an eternal log of everyone’s discussions. More formal discussions in PRs and emails are recorded, but we rather let conversations fade away after some time.

                • By lidHanteyk 2019-11-0113:53

                  It's pretty tone-deaf of you, though, and suggests limited connection to FLOSS communities. Freenode, for example, has a policy that channels disclose in their /topic if there are public logs. Many mailing lists have the property of being viewable forever, and contributors understand that property, building discussions that last for decades and taking matters off-list when privacy is needed. This is not a new problem, and FLOSS communities tackle it already.

        • By SmirkingRevenge 2019-11-013:551 reply

          Interesting, I didn't know about that. What happens if you get 251 users though?

          EDIT:

          Answered my own question: up to 85% discount, which is very nice, but still might be infeasible for many projects/communities.

          • By rumanator 2019-11-014:36

            > Answered my own question: up to 85% discount

            Isn't Slack's cheapest plan around 8$ per user per month?

      • By CameronNemo 2019-11-015:522 reply

        Code fences, sane identity management.

        • By lifthrasiir 2019-11-016:25

          The linked post explicitly mentions that code fences are downgraded to a "long message" link. Note that I've used a word "downgrade", because I don't think it is a good solution. Anything unable to tie additional data for a message to the message itself is not good, in my opinion.

        • By ddevault 2019-11-0113:30

          I don't understand why people bring up identity management in IRC like it's a problem. No one has issues with this.

      • By kick 2019-11-014:50

        Why'd you change your Hacker News username?

    • By unicornporn 2019-11-016:25

      > Acting like IRC is equal in functionality to Slack or Discord is straight up delusional.

      +1. But the solution is not to succumb to Slack. Matrix and https://about.riot.im/ is what we should be looking at.

    • By chrisseaton 2019-11-013:281 reply

      > Acting like IRC is equal in functionality to Slack or Discord is straight up delusional.

      The author doesn't equate them - they even list many critical things that Slack has that IRC doesn't. Which makes their conclusion even more silly.

      • By rumanator 2019-11-014:121 reply

        > The author doesn't equate them - they even list many critical things that Slack has that IRC doesn't. Which makes their conclusion even more silly.

        After reading the article I feel you're misrepresenting what the author actually said.

        The author lists a number of problems with Slack that in his opinion renders it "not a tool built for open source projects to use for communication with their userbase", and instead Slack is "a tool built for teams".

        The author stresses that communicating with a community leads to entirely different usecases, and that "Slack has gone on record as saying that it cannot support this sort of use-case".

        Afterwards, the author proposes IRC as a technology that mitigates some of the design problems that render Slack ill-suited for communicating with the userbase of open source projects.

        The author enumerates arguments (technical and not so technical) to support his thesis. You've ignored them all.

        • By chrisseaton 2019-11-014:20

          > I feel you're misrepresenting what the author actually said

          There's literally a section called 'Problems with IRC that Slack solves'. And there's no 'but...' at the end of that section. It's just a list of things Slack solves. Maybe that's why people want to use it? It solves their problems?

          > The author enumerates arguments (technical and not so technical) to support his thesis. You've ignored them all.

          I think you've misread my comment or the thread. I wasn't providing a critique of their points... I was responding to the idea that they were equating them. They weren't - as you said, they have a list of ways they thinks IRC is better, and a list of ways they think Slack is better. So they weren't equating them.

    • By pmoriarty 2019-11-019:48

      Then let's work on making IRC better instead of eagerly jumping on a closed, corporate-controlled walled garden.

    • By edoceo 2019-11-015:272 reply

      It's built, it's called Mattermost and it's awesome, super flexible, full API, full control and very easy maintenance/upgrade path.

    • By flingo 2019-11-0215:00

      IRC works with emoji just fine. As long as your server/client supports UTF-8 (or another encoding)

    • By termau 2019-11-014:031 reply

      Are you a Mac user?

      • By t0mbstone 2019-11-014:051 reply

        I use OSX and Linux machines all day at work, and typically use Windows 10 at home (where I do more gaming, but also occasional software development). I'm comfortable on all the major operating systems. Why do you ask?

        • By termau 2019-11-014:13

          some of what you're complaining about the lack off do work, znc as a proxy allows playback, emoji's do work on some clients, figured you wouldnt be aware of this if you were on mac.

    • By c22 2019-11-014:22

      I hate when my experience differs from others. I like to have the same experiences as everyone else because we are all the same.

    • By cnst 2019-11-013:281 reply

      > One of the biggest problems with IRC is that there is no immediately obvious way to jump into a channel and browse or search the history.

      There's literally web-clients available where all you gotta do is click a link and write a name that hasn't been taken by anyone yet, and you're in. No email address, no password.

      History is even more straightforward — anonymous access to all IRC history is frequently provided by most projects. How do you get history for Slack without having an account?

      • By oefrha 2019-11-013:38

        > History is even more straightforward — anonymous access to all IRC history is frequently provided by most projects.

        Most projects? Really? I'd say at most 20% of IRC channels for open source projects I've been on have published history.

        Shopping around for a log bot and figuring out a publishing channel is not straightforward. In fact nothing is more straightforward than builtin. While I'm not a big fan of using Slack for open source collaboration, saying IRC history is straightforward and provided by most projects is indeed delusional.

  • By PebblesHD 2019-11-013:205 reply

    My only issue with IRC as the alternative to Slack is that its really user hostile. Clients largely look like some 90s programmer’s idea of a chat tool, and as discussed, persistence and sharing files and things are extensions or hacks on top of the protocol. Without addressing these, IRC is going to remain the ‘underground’ tool it is at the moment, with little support from enterprise tools and other integration providers.

    Personally, I’m a big fan of MatterMost[0] as its also open source but provides a much more Slack-like experience which new users will be immediately familiar with. You can host it yourself and it works with lots of existing integrations.

    [0] - https://mattermost.com/

    • By cnst 2019-11-013:332 reply

      > Clients largely look like some 90s programmer’s idea of a chat tool,

      If by that you mean that it doesn't require a machine with 32GB of RAM to run smoothly, then I'm all for such 90s chat tools!

      Sharing files is trivial with Gist; and you get a fully proper history, ability to fork, plus works much faster than the clumsiness and memory waste that comes with Slack.

      • By oefrha 2019-11-013:40

        > Sharing files is trivial with Gist

        Apparently not all files that need to be shared are text files. Developers have a million ways to share text files, thank you.

        (I know how to use gists to share images and other files. It's not pretty.)

      • By thrower123 2019-11-013:39

        I have a warm place in my heart for Pidgin. For a long, long time I had to deal with IM clients that wouldn't let you sign in more than one account per instance, and some of them used mutexes to prevent running multiple instances.

        It looked like hot dog vomit, but it worked wonderfully.

    • By aidenn0 2019-11-014:371 reply

      There are several richer IRC clients; the author of this article suggests https://thelounge.chat/ in a later article about IRC.

      • By rsync 2019-11-0114:041 reply

        "There are several richer IRC clients; the author of this article suggests https://thelounge.chat/ in a later article about IRC."

        I have no dog in this fight as I do not use slack nor do I use irc anymore ...

        However, reading this comment thread makes me think that what you all really need is neither a slack alternative nor an irc alternative ... what you all really need is a very well written irc bot.

        • By aidenn0 2019-11-020:40

          The downside to that is that even with a well written bot, there is no source of truth for history, as the bot can become disconnected from the server, which implies we should move history logging and archival to the server, which is a bridge to far for many people; in particular Drew (the author of TFA) believes chat should be ephemeral rather than persistent and he is not alone in this camp.

    • By ptman 2019-11-0112:151 reply

      Mattermost is open core, please avoid.

      • By namibj 2019-11-0112:41

        Do you have a like for a more detailed/specific reasoning against mattermost in particular? I might want to throw it at some grassroots instance in an attempt to get rid of it/user's acceptance of it.

    • By philwelch 2019-11-015:301 reply

      That makes IRC sound like a good tool for open source projects though. None of the negatives seem to apply to this scenario.

      • By IshKebab 2019-11-016:551 reply

        The lack of threading and image support is a pretty big issue to open source projects though. The lack of threading has always been annoying in IRC, and posting screenshots is very convenient and useful in Slack.

        • By heavenlyblue 2019-11-0112:06

          For all of the points made towards Slack here, let’s remind everyone here that none of the open source projects actually use Slack.

          The only useful software to get any sorts of real-time support from the community is Matrix. Nobody uses Slack in open-source simply because you can’t allow unregistered users to ask questions on public channels.

    • By navigatr 2019-11-013:491 reply

      There are a dozen of cloud-based web apps that interface with IRC.

      • By briandear 2019-11-014:081 reply

        There is also Slack.

        • By rumanator 2019-11-014:22

          The article enumerates reasons why Slack is not designed or suited for the role in question.

  • By why_only_15 2019-11-014:002 reply

    I totally disagree with this article. IRC is incredibly user hostile and for even a technical user is intimidating, complex, and nonobvious. Everyone uses Slack or Discord, and everyone knows how they work, and the UI is easy. All the features that ddevault says are bad are things that almost everyone else cares about. I, for one, am thankful that more communities are moving off IRC.

    • By kragen 2019-11-014:19

      > IRC is incredibly user hostile and for even a technical user is intimidating, complex, and nonobvious.

      When I started using IRC in the 1990s it was full of college freshmen flirting. Most of them were not CS majors or otherwise technically adept. I really don't think it's "intimidating, complex, and nonobvious" in a way that makes people not use it. It just doesn't have images or history, that's all.

      There are aspects of IRC that are nonobvious, but that's true of any software, including Slack (and, I assume, Discord), and you don't have to know them to start using it.

    • By lawik 2019-11-015:52

      I agree that IRC doesn't hit the needs and wants of many contributors these days. But I've really found the limits of the Slack free plan a bit rough in the Elixir Slack. And I'd say concerns about being on a proprietary system are valid. It ends up being a mess of pragmatic trade-offs, rather than clear-cut. Slack and friends is overall more approachable.

HackerNews