Team chat holds a lot of sensitive company history. Self-hosting it keeps that history on your servers and removes per-seat pricing. These are the mature options.
1
Rocket.Chat RocketChat/Rocket.Chat
Full team chat with channels, video and omnichannel customer messaging, used by governments and defence for secure communications.
2
mattermost mattermost/mattermost
The closest to Slack in look and workflow, with a focus on secure collaboration for technical and operations teams.
3
zulip zulip/zulip
Threaded by topic, so busy channels stay readable. Apache-2.0, with free hosting for many open-source and non-profit groups.
4
element-web element-hq/element-web
The main client for Matrix, an open federated chat network: your server can talk to other organisations’ servers. AGPL-3.0.
How to choose
A drop-in Slack replacement: Mattermost or Rocket.Chat. Long, asynchronous discussions: Zulip. Chat across organisations without a central provider: Matrix with Element.
How we pick: we start from every public GitHub repository with 1,000+ stars, keep the projects that do the job in the title, and read their descriptions and licenses. Stars show community size, not quality, so we also show maintenance status. Nobody paid to be listed.