Research on open source team communication tools

From Meta, a Wikimedia project coordination wiki
Jump to navigation Jump to search

This wiki page was created to identify, research, and document open-source team communication & collaboration tools as part of the following task: https://phabricator.wikimedia.org/T179989

Zulip[edit]

See also: Zulip vs. Mattermost comparison

Zulip is an open-source team communication system acquired by Dropbox in 2014 and released as open-source in 2015. It is created primarily using Python and Javascript (web front end). Zulip's biggest strength is its threaded group conversations which allow people to talk about multiple topics at once without getting lost or overwhelmed.

The user interface of Zulip

Amount of contributors in repositories

Requirements:

  • Ubuntu 18.04 Bionic, Ubuntu 16.04 Xenial, Debian 9 Stretch, or Debian 10 Buster
  • Minimum 2 vCPUs/cores, 2GB of RAM or more and 10GB storage
  • PostgreSQL 9.1+
  • SSL certificate and email credentials

Pros

  • Threaded group conversations
  • Desktop apps
  • One-on-one and group private conversations
  • Inline image, video, and tweet previews
  • More than 40 integrations
  • Desktop and Email notifications
  • Support for Android, iOS, MacOS, Windows, and Linux
  • 33 different language options (including English, Spanish, French, Italian, German, Japanese, Korean, Portuguese, Russian, Arabic, and Chinese translations)

Cons

  • Lots of bugs still present
  • Terrible Android and iOS apps

Mattermost[edit]

See also: Zulip vs. Mattermost comparison

Mattermost is a team communication system released on June 2015 with an "Enterprise" version and an open-source "Team" version. It is written in Go and React. Mattermost considers itself as an open-source version of Slack. It also has an easy Docker install.

The user interface of Mattermost

Amount of contributors in repositories

Requirements:

  • Ubuntu 16.04, Ubuntu 18.04, Debian Buster, CentOS 6+, CentOS 7+, RedHat Enterprise Linux 6+, RedHat Enterprise Linux 7+, Oracle Linux 6+, Oracle Linux 7+
  • MySQL 5.6+ or PostgreSQL 9.4+
  • Amazon Aurora MySQL 5.6+
  • 1 - 1,000 users - 1 vCPU/cores, 2 GB RAM
  • 1,000 - 2,000 users - 2 vCPUs/cores, 4 GB RAM
  • Storage: 5-25 MB/user/month

Pros

  • Self-hosted one-on-one and group messaging, file sharing and search
  • Native apps for iOS, Android, Windows, Mac, Linux
  • Unlimited search history & integrations
  • Easy to use Slack-like user interface
  • Threaded messaging
  • Markdown formatting
  • Access multiple teams from one account
  • Has a good SDK for plugin creation
  • Support for Android, iOS, MacOS, Windows, and Linux
  • Supports 17 different language translations (including English, German, French, Dutch, Italian, Polish, Portuguese, Russian, Spanish, Turkish, Chinese, Korean & Japanese translations)

Cons

  • Threaded conversation doesn't show that well
  • Super closed development process
  • Requires buying a closed-source product past a certain size
  • Less integrations and plugins than other tools

Rocket.Chat[edit]

Rocket.Chat is a web chat server, developed in JavaScript, using the Meteor web framework. It claims to be a great solution for communities and companies wanting to privately host their own chat service or for developers looking forward to build and evolve their own chat platforms.

The user interface of Rocket.Chat

Amount of contributors in repositories

Requirements

  • Ubuntu 18.04 LTS (with or without docker)
  • Node.js 4.5+
  • MongoDB 2.6+
  • 50-200 users - Single core (2 GHz), 1 GB RAM, 30 GB of SSD
  • 100-500 users - Dual core (2 GHz), 2 GB RAM, 40 GB of SSD
  • 300-1000 users - Intel Xeon E5-2603 v4 (or equivalent), 4 GB RAM, 500 GB hard disk or larger

Pros

  • Supports a wide variety of authentication methods
  • Desktop and Email notifications
  • Ability to share your screen with others
  • Android and iOS apps
  • Looks similar to Slack
  • Very active and helpful community
  • Supports 22 different languages
  • Support for Android, iOS, MacOS, Windows, and Linux

Cons

  • Large number of open issues on GitHub (~1984)
  • Small annoying bugs appear after long use (web client)

Matrix[edit]

See Also: Matrix.org

Matrix is an open protocol for interoperable, decentralized, real-time communication over IP. It can be used to power Instant Messaging, VoIP/WebRTC signalling, and Internet of Things communication between different service providers.

The user interface of Matrix client Riot.im

Amount of contributors in repositories

Requirements

  • POSIX-compliant system (tested on Linux & OS X)
  • Python 3.7
  • PostgreSQL
  • At least 2 GB of free RAM for the server (and whatever you can add for PostgreSQL to make it happy for real life scenario)

Pros

  • Open standard protocol specification, REST+JSON interface, a simple bot is a few lines of shell script (a complex bot example)
  • Does not require a centralized server, distributed design from ground up, consistent view on every server ("eventually consistent network")
  • Real security is part of the core protocol: end-to-end encrypted one-to-one or group chats with thousands of participants
  • Full room history provided by the servers (with various security restrictions)
  • Supports different kinds of communication (direct messages, group chat, voice group chats, video group conferences [through Jitsi integration], chatlog web pages)
  • Supports message editing and revocation, supports message reactions (emoticons)
  • CommonMark formatting, supports syntax highlighting, coloring, file/image attachments
  • Works like IRC with bouncers
  • Offers a huge range of different clients
  • Can be integrated with existing communication services
  • Authentication methods are pluggable (email, tokens, SSO)
  • Large number of users (estimated between 100 000 and 3 000 000)

Cons

  • Documentation is a bit confusing and difficult for a newbie to understand
  • Is not technically a standalone tool but a protocol (or a distributed database (acyclic graph) of JSON data)
  • The reference server is written in Python, and faster servers are still in development stage (Rust, C++, Go)
  • Threading UI is still in design phase

Kontalk[edit]

Kontalk is a free community-driven cloud-based instant messaging service. Users can send messages and exchange photos or contacts. Kontalk also provides end-to-end encrypted messaging. Its client-side code is open-source and their network of servers is run by volunteers to provide a stable and secure service for all of users.

The user interface of Kontalk

Amount of contributors in repositories

Requirements

  • No requirements needed, Kontalk runs on it own network of servers run by volunteers

Pros

  • Desktop app with multi-platform support
  • Free of charge, runs on donations
  • XMPP client protocol
  • End-to-end-encrypted messaging
  • Servers can be hosted on its own
  • Offers 6 different languages (English, German, Italian, Dutch, Serbian, Spanish)
  • Support for Android, MacOS, Windows, and Linux

Cons

  • Accounts are bound to phone number, no username
  • Desktop app is runs slow (likely because of Java)
  • The desktop app UI looks terrible
  • Lack of chat features like file sharing
  • No iOS support

Gitter[edit]

Gitter is an open-source instant messaging service. It is designed for developers and tightly integrated with GitHub repositories. It was acquired by GitLab in 2017 and became open source under an MIT license.

The user interface of Gitter

Amount of contributors in repositories

Requirements

  • No requirements needed; Gitter rooms/communities are hosted on Gitter's servers

Pros

  • Supports authentication using GitHub or Twitter
  • Automatically logs all messages in the cloud
  • Individual chat rooms can be created for individual git repositories on GitHub.
  • Notifications
  • Integration with Jenkins and Travis CI
  • Markdown and KaTeX
  • Inline media files
  • Support for Webapp, Android, iOS, MacOS, Windows, and Linux

Cons

  • Many of its features are tightly integrated with Github (not Gerrit)
  • Privacy concerns due to logs
  • Extremely unintuitive design
  • Supports English only

Discourse[edit]

See also: Discourse

Discourse is an open-source open source discussion platform. It claims to completely disrupt the Internet forum idea and intends to improve online discussion quality through its improved software.

The user interface of Discourse

Amount of contributors in repositories

Requirements

  • Ubuntu 18.04 Bionic LTS (At minimum, a 64-bit Linux OS with a kernel version of 3.10+ is required)
  • 1 GB of RAM for small communities, 2 GB for larger communities

Pros

  • Trust system to prevent trolls and spammers
  • Simple
  • Just in time loading (no next page button)
  • Dynamic notifications (notifications whenever relevant)
  • Designed for mobile displays
  • Integrations with Slack, Google Analytics, Github, Patreon, and more
  • Social logins
  • Support for 25 different languages (Hebrew, Spanish, Chinese, French, German, Korean, Arabic, Vietnamese)
  • Support for Android, iOS, MacOS, Windows, and Linux

Cons

  • Is a paid service unless self-hosted
  • Buggy apps
  • Poor email forwarding

Telegram[edit]

Telegram Desktop
Telegram Android
The user interface of Telegram (Desktop and Mobile)

Telegram is cross-platform messaging service. It uses the Internet to send messages and supports group chats, direct replies (which act like threads), and end-to-end encryption for direct messaging.

Clients:

Signal[edit]

Signal is a cross-platform encrypted messaging service. It uses the Internet to send one-to-one and group messages, which can include files, voice notes, images and videos. It can also make one-to-one voice and video calls as well as SMS (on Android).

The User Interface of Signal

Amount of contributors in repositories

Requirements

  • No requirements needed; Signal's servers are supported by a team of developers, community donations, and grants.

Pros

  • Axolotl Signal protocol (Fast and reliable protocol)
  • Uses existing phone number (No passwords to forget)
  • Push notifications (using closed vendor services)
  • Free group, text, picture, and video messages
  • One-to-one voice and video calls for mobile users
  • End-to-end encrypted
  • Supports seven different languages (English, German, Spanish, French, Chinese, Portuguese, Portuguese)
  • Support for Android, iOS, MacOS, Windows, and Debian-based Linux

Cons

  • Requires a phone number
  • Blocked in Iran and Egypt
  • Clunky official client, no alternative clients
  • Limited group chat
  • No group audio or video
  • Open source but almost impossible to install self-hosted version due to large amount of commercial service dependency

MongooseIM[edit]

MongooseIM is a robust and efficient instant messaging platform designed for enterprise use. It is fault-tolerant and can easily scale for more capacity by simply adding a box or VM. MongooseIM can accept client sessions over XMPP, REST API, SSE, Websockets, and BOSH.

Amount of contributors in repositories

Requirements

  • 8GB RAM
  • 2-4 cores
  • 100MB of disk space
  • *nix OS (CentOS 7, Ubuntu 16.04 LTS (Xenial), Ubuntu 18.04 LTS (Bionic), or macOS 10.14 (Mojave))

Pros

  • Reliable
  • Scalable (Add more VM's)
  • Various Messaging Protocols (XMPP Protocol, Rest API, etc.)

Cons

  • You have to build your own client
  • iOS and Android apps are not available on App or Play store

Conclusion[edit]

There are many open-source communication and collaboration tools, all with their own unique features. Most of them are based on the idea that the freedom to configure your tool can build a more productive team, while some of them seek to completely reform the typical chat system. In any case, FOSS software has come a long way and can be a decent alternative to the software behemoths such as Slack or Skype.