Is it time to switch your Open Source community to a modern chat system?

Chat tools have evolved dramatically in the past few years. Several popular Open Source projects like CiviCRM have already jumped to a more modern chat infrastructure, but many others are still using good ol' IRC. Most of the time the reasoning is Open Source communities want to use an Open Source chat system to federate their user base. And that makes sense. But have Open Source alternatives to IRC been evaluated?

Exactly! Can you remember the number of times you've tried to explain IRC to a newcomer and the number of times they've just stopped you in the middle of your sentence because they were so confused? Adoption loves simplicity.

IRC ain't dead yet!

There's an initiative called IRCv3 which aims at improving the IRC protocol and make it more aligned to today's users needs.

The IRCv3 Working Group is a collection of IRC client and server software authors working to enhance, maintain and standardize the IRC protocol using backwards-compatible extensions.

The list of participants is pretty impressive and there's every reason to be excited about it. Rather than having each IRC client to implement their own features, the working group is busy developping a variety of improvements such as using SASL for improving user registration and authentication, better away notifications, accurate message delivery times, grouping of related messages, enhanced security through the use of STARTTLS and Strict Transport Security (STS), etc.

If you wish to get involved, I encourage you start with:

What are your alternatives?

For months I've collected chat software solutions that I believe need to be considered and evaluated. The result of this work is in the table below, and it's not ordered so that you can form your opinion based on your own criteria. Oh, and it's a work in progress, so expect this table to be frequently updated.

Fully Open Source Software

                             
Product Powered by Databe engine
Let's Chat Node.js, Python MongoDB
Mattermost   Golang, React MySQL or PostgreSQL
Ring   OS binaries N/A
Actor   OS binaries N/A
Zulip   Python (Django) N/A
Riot   node.js, Electron N/A

Community-friendly alternatives

In case you cannot find an acceptable FOSS solution, perhaps you'd like to explore the following:

                                             
Product Free Paid plan
Gitter   No Yes (free plan available)
Ricochet   Yes N/A
Tox   Yes N/A
Ryver   Yes N/A
Telegram   Yes N/A
WhatsApp   Yes N/A
Slack   No Yes (free plan available)
HipChat   No Yes (free plan available)

With some of the above options, keep in mind your community's security and privacy. Good summaries on why you should be cautious can be found here, here and here.

The era of chat bots

IRC has had bots for a long time, but it's only recently that chat bots became really meaningful for loads of use cases, whereas it's notifying you of a Github commit, report on a Jenkins build failure, or integrate with modern SaaS products.

There's little doubt that one of the most important aspects of your decision will also be related to how well-integrated / easy the chat solution is when it comes to using or developing bots. When Telegram introduced bots, they even talked about bots 'revolution' because the possibilities are endless.

Taking it from there, what if the question was not to simply find a new chat system to switch to, but to determine instead what could bots help with when it comes to growing your community? I find it limiting that chat bots should only exist in the context of a group chat. What if a 1:1 chat with a chat bot would allow you to:

  • Guide newcomers through understanding the community's philosophy, principles, how to seek help, contribute and get involved into every aspect of the community
  • Optimally search the web for pertinent answers to your technical questions
  • Query your community documentation for guidelines and best practices
  • Query your community's Code of Conduct (CoC)
  • Perform real-time code review
  • Help you through filing issues and giving them correct metadata
  • Search social networks for your community's trends, new blog posts, updates, etc.
  • Be pinged when security advisories are released
  • Collect a list of projects you're interested in, so that you would be notified of e.g. commits or releases (configurable)
  • ...

These are only a few examples, obviously. One of the key answers is also to have them feel as human as possible to keep your community members engaged.

So, before you explore different chat systems to replace FOSS / IRC, why wouldn't you get involved in the chat bot revolution and lead the way?

Aurelien Navarre

Senior Technical Solutions Analyst @Acquia - Drupalist by day, DevOps by night.

Lyon, France