Keeping libre software accessible to all

Recently, a number of high-profile libre software projects have been either considering, or adopting, proprietary chat systems to be their primary method of communication with their communities. This should cause alarm to everyone who is interested in the libre software movement.

Projects using Discord as an official method of communication include distributions like Fedora, Gentoo, and openSuSE; infrastructure projects like Gitea and Yarn; and libre programming languages including Elixir and Rust.

I was mercifully unable to find many examples of independent libre projects using Slack, other than Elixir (which seems to prefer Discord these days, but still has a Slack community). Most of the projects I found using Slack were run by companies that use Slack internally, and provide contributors access to it.

There are many reasons that libre software should not rely on proprietary communication tools. Of course, there are ideological reasons – we should not, as libre software maintainers, force our users or contributors to use a proprietary system. However, that may not be convincing enough for some projects, especially those that focus more on being “open source” than standing for the rights of their users. Some of the non-ideological reasons include:

  • No transparency: Most proprietary chat systems contain very long contracts that you must agree to when you sign up for the service. These contracts take away your freedom and allow the companies behind these systems to use your data, including your chat logs, for whatever purposes they want. Quoting the Discord terms of service (as of 27 April 2019):

    All of Your Content is your sole responsibility and the Company is not responsible for any material that you upload, post, or otherwise make available. By uploading, distributing, transmitting or otherwise using Your Content with the Service, you grant to us a perpetual, nonexclusive, transferable, royalty-free, sublicensable, and worldwide license to use, host, reproduce, modify, adapt, publish, translate, create derivative works from, distribute, perform, and display Your Content in connection with operating and providing the Service.

  • No client choice: If you cannot use the official Discord client, which is a proprietary binary blob using CEF (Google Chrome) that only runs on Intel x86 computers, you must use the Web browser client. The Web browser client is also proprietary, does not contain all features, and has accessibility issues. Creating your own Discord client is against their contract and will result in a permanent ban. Additionally, the official Discord client does not allow user style changes (it is against the terms of service to modify it in any way). This means that people who need assistive technologies to use a computer cannot participate in a Discord community.
  • Lack of infrastructure control: By using a proprietary chat system, you have no control over the infrastructure. If the service is discontinued, which has happened to many providers over the years, there is no recourse for the community.

Alternatives

Most libre communities turn to Discord or Slack because they are unsatisfied with IRC. There are libre solutions that go far beyond IRC. Some include:

  • Mattermost: written in Golang and React, has many of the same features as Slack, including a mobile app and integration with many services. Includes IRC and XMPP bridging for those who wish to use it.
  • Matrix: touted by some as a modern replacement for IRC. Can federate with other communities including an IRC bridge, has a mobile app, somewhat rough around the edges.
  • Rocket.Chat: aimed more at businesses (including LDAP and SSO support), can also be great for larger libre software communities, includes mobile app.
  • Zulip: emphasises threaded conversations, putting it somewhere between email and traditional real-time chat. I have heard great things about Zulip, but as I haven’t used it yet, I do not have any opinion on it.

For libre projects, the time is right and the time is now: migrate to a libre communications platform and ensure the rights of your community are respected.

12 thoughts on “Keeping libre software accessible to all

  1. I think one thing that is missed is that neither Slack nor Discord require additional infrastructure or on-call engineering resources to use. I dislike both for open communities, but it’s hard to argue that point.

    For groups that don’t have financial backing, it’s easy to say they should move, how do they migrate to something that’s going to require:

    A. Infrastructure resources to run these other chat platforms
    B. Dedicated time from people to be on call for these resources
    C. Possibly a group to deal with GDPR-like requests

    I am not asking to be antagonistic, but am sharing questions I’ve been unable to answer myself when evalutating these other options. All effectively cost money, and not everyone is in a position to donate time to being on call for these things.

    I’d love to hear your thoughts on how to make these migrations possible.

    Like

    • I was involved in a non-profit foundation that specifically provides hosted infrastructure for libre software projects and minority communities to allow them to run forums, Mattermost, Pleroma, IRC, or pretty much whatever they wanted. I only resigned from the board because I didn’t have the time to commit. Personally, I think foundations like that are the future and the direction that we should be heading in.

      Like

  2. Pingback: “There are many reasons that libre software should not rely on prop… | Dr. Roy Schestowitz (罗伊)

  3. Pingback: Mozilla finally disavows Discord | The Cat Fox Life

Leave a Reply to someone Cancel reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s