Research on open source team communication tools

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

Wikimedia is searching open-source team communication & collaboration tools for its outreach programs (e.g. GCI) to talk with students. This wiki page is created to identify, research, and document open-source team communication & collaboration tools as part of the following task: https://phabricator.wikimedia.org/T154002

Zulip[edit]

See also: Zulip vs. Mattermost comparison

Zulip is an open-source team communication system acquired by Dropbox in 2014 and released as an open-source in 2015. It is created primarily using python and javascript (web frontend). 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 14.04 Trusty and Ubuntu 16.04 Xenial
  • Minimum 2 vCPUs/cores, 4GB 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
  • Android and iOS apps
  • English, Spanish, French, Italian, German, Japanese, Korean, Czech, Malayalam, Portuguese, Russian, Serbian & Chinese translations

Cons

  • The webapp UI design looks like something from the 2000's
  • 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 created primarily on Golang and React. Mattermost considers itself as an open-source version of Slack. It also has an easy one line Docker install.

The user interface of Mattermost

Amount of contributors in repositories

Requirements:

  • Ubuntu 14.04, Ubuntu 16.04, Debian Jessie, CentOS 6.6+, CentOS 7.1+, RedHat Enterprise Linux 6.6+, RedHat Enterprise Linux 7.1+, Oracle Linux 6.6+, Oracle Linux 7.1+
  • MySQL 5.6+ or PostgreSQL 9.4+
  • 250-500 users - 2 vCPUs/cores, 4 GB RAM, and 45-90 GB storage
  • 500-1,000 users - 4 vCPUs/cores, 8 GB RAM, and 90-180 GB storage
  • 1,000-2,000 users - 4-8 vCPUs/cores, 16-32 GB RAM, and 180-360 GB storage
  • For enterprise deployments of 10,000-20,000 registered users with moderate usage and a peak of 2,000-4,000 concurrent users, the following hardware deployment configurations are recommended:
    • Proxy server: One server with 4-8 vCPUs/cores, 16-32 GB RAM, minimum 4 GB SSD storage
    • Mattermost server: One server with 4-8 vCPUs/cores, 16-32 GB RAM, minimum 4 GB SSD storage
    • Network Attached Storage: One NAS server with 4-8 TB of storage
    • Database server: One database server with 8-16 vCPUs/cores, 16-32 GB memory, minimum 100 GB SSD storage
    • add extra servers for higher availability

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
  • English, German, French, Dutch, Italian, Polish, Portuguese, Russian, Spanish, Turkish, Chinese, Korean & Japanese translation
  • Easy to use Slack like user interface
  • Threaded messaging
  • Markdown formatting
  • Access multiple teams from one account

Cons

  • Lack of developer community
  • Threaded conversation doesn't show that well
  • Super closed development process
  • Requires buying a closed source product past a certain size

Rocket.Chat[edit]

Rocket.Chat is a web chat server, developed in JavaScript, using the Meteor fullstack 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 14.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
  • Supports 22 Languages
  • Looks simillar to Slck
  • Very active and helpful community

Cons

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

Matrix.org[edit]

Matrix is an open protocol for interoperable, decentralised, real-time communication over IP. It can be used to power Instant Messaging, VoIP/WebRTC signalling, 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 2.7
  • At least 1GB of free RAM

Pros

  • Works like IRC with bouncers
  • Does not require a centralized server
  • Supports different kinds of communication
  • Offers a huge range of different clients
  • Can be integrated with existing communication services

Cons

  • Documentation is a bit confusing and difficult for a newbie to understand

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 software 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

Cons

  • Accounts are bound to phone number, no username
  • No app for iOS and Windows Phone available, neither a web client
  • Desktop app is running slow (probably because of Java)
  • The desktop app UI looks terrible
  • Lack of chat features like file sharing

Conclusion (will be rewritten)[edit]

In the making of this analysis, I have learned new communication tools to know. Overall I would personally like to use Telegram, as it offers easy-to-use clients for any device, a well documented open APIs for bots and requires only 2 minutes to register a new account. But since Telegram is dependent on their own servers and there is no way to host these servers themselves, I would pick Matrix as a alternative. Matrix doesn't require to be hosted on a public server, anyone can host a server and connect to a network of other homeservers to communicate. People can also host a Matrix server on a VPS and share it with others, who can't run a homeserver 24/7. It also offers a huge range of different clients so anyone can pick the best solution for himself.