Research on open source team communication tools
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
Context and qualities
editThere are many open-source communication and collaboration tools, all with their own unique features or qualities.
Most of them are based on the idea that the freedom to configure your tool can build a more productive team.
Some of them seek to completely reform the typical chat system and push boundaries of what chat service-client can be.
In any case, FOSS software has come a long way and is an alternative to the software behemoths such as Skype or Slack. For those looking for advanced customization of interface with branding or modality of use (connecting to other infrastructure, like Wikimedia), it might also be the only feasible and flexible option.
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.
Amount of contributors in repositories
- zulip/zulip: 547
- zulip/zulip-mobile: 60
- zulip/zulip-electron (desktop client): 42
- zulip/zulip-android: 31
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. Recent server versions support Playbook and KanBan features.
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
editRocket. Chat is a webchat 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 building and evolve their own chat platforms.
Amount of contributors in repositories
- RocketChat/Rocket.Chat: 576
- RocketChat/Rocket.Chat.Electron (desktop client): 114
- RocketChat/Rocket.Chat.Android: 82
- RocketChat/Rocket.Chat.iOS: 54
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
- A large number of open issues on GitHub (~1984)
- Small annoying bugs appear after long use (web client)
Matrix
editSee 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 signaling, and Internet of Things communication between different service providers.
Amount of contributors in repositories
- matrix-org/matrix-react-sdk: 334
- matrix-org/synapse (homeserver): 191
- matrix-org/matrix-python-sdk: 50
- matrix-org/matrix-js-sdk: 42
- matrix-org/matrix-ios-sdk: 21
- matrix-org/matrix-android-sdk: 12
- matrix-org/matrix-angular-sdk: 11
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 the 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
editKontalk 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.
Amount of contributors in repositories
- kontalk/androidclient: 47
- kontalk/desktopclient-java: 18
- kontalk/specs (docs): 2
- kontalk/client-adapters: 2
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 runs slow
- The desktop app UI looks terrible
- Lack of chat features like file sharing
- No iOS support
Gitter
editGitter 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.
Amount of contributors in repositories
- gitter/webapp: 1145
- gitter/gitter-ios-app: 1145
- gitter/gitter-android-app: 1144
- gitter/desktop: 1144
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.
Amount of contributors in repositories
- discourse/discourse: 710
Requirements
- Ubuntu 18.04 Bionic LTS (At a 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
editTelegram is a 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.
Signal
editSignal 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).
Amount of contributors in repositories
- signalapp/Signal-Android: 192
- signalapp/Signal-Desktop: 108
- signalapp/Signal-iOS: 88
- signalapp/libsignal-service-java: 12
- signalapp/Signal-Server: 10
Requirements
- No requirements needed; Signal's servers are supported by a team of developers, community donations, and grants.
Pros
AxolotlSignal 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
- Open source but almost impossible to install self-hosted version due to a large amount of commercial service dependency
MongooseIM
editMongooseIM 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
- esl/MongooseIM: 105
- esl/mangosta-android: 3
- esl/mangosta-ios: 6
- esl/mongooseim-docker: 11
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