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?
Sometimes I wonder why in the IRC vs. Slack debate, Drupalers haven't looked at OSS options like https://t.co/nH51ef39mj— socketwench (@socketwench) September 29, 2016
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:
- Getting a better understanding of the roadmap
- Reviewing issues related to improving the IRC protocol
- Reading the current IRCv3 specifications
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|
In case you cannot find an acceptable FOSS solution, perhaps you'd like to explore the following:
|Gitter||No||Yes (free plan available)|
|Slack||No||Yes (free plan available)|
|HipChat||No||Yes (free plan available)|
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?