Slack is the default for persistent team chat. The self-hostable replacements are mature; the gap is mostly third-party integrations (Slack's app ecosystem) and polish on mobile.
Slack pricing anchor: $8.75/user/mo on Pro; message history capped on free tier.
- GitHub
- ★ 36.6k · last commit today · 857 open issues
- License
-
AGPL-3.0 (Team Edition) / Source Available (Enterprise) Team Edition is AGPL and freely self-hostable; Enterprise features (LDAP groups, compliance export) need a license.
- Setup time
- 15min docker-compose
- Monthly cost
- $5 VPS handles ~50 daily-active users on the Postgres + Mattermost server combo.
Migration sketch. Slack → Workspace settings → Import/Export → Export. Get the .zip. In Mattermost, run `mattermost import slack <team> <file.zip>` from the CLI. Preserves channels, users, message history, and most file uploads. Threads come over but emoji reactions are partial.
Good fit forEngineering teams that want Slack-shaped chat with code blocks and integrations.
Weak atVoice/video huddles are weaker than Slack's; mobile clients are slower.
- GitHub
- ★ 45.3k · last commit 1d ago · 3688 open issues
- License
-
MIT - Setup time
- 15min docker-compose (Mongo + Rocket.Chat)
- Monthly cost
- $10 VPS — Mongo is the heavier process; tight on $5.
Migration sketch. Admin → Import → Slack. Upload Slack export .zip. Channels, users, messages and files import; private DMs do not unless the export includes them (paid Slack tier required).
Good fit forCommunities and support orgs (livechat widget is built in).
Weak atDefault UI feels heavier than Mattermost; Mongo backups need attention.
- GitHub
- ★ 25.2k · last commit today · 2054 open issues
- License
-
Apache-2.0 - Setup time
- 30-60min (their installer script on Ubuntu 22.04)
- Monthly cost
- $10 VPS minimum (their installer wants 2GB+ RAM).
Migration sketch. Use the upstream `manage.py convert_slack_data` against a Slack export. Topic-threaded model means channels translate but conversations get re-bucketed; warn users that the topic discipline is a real change.
Good fit forAsync teams that hate Slack's flat-channel firehose.
Weak atCultural shift to topic-threaded chat is the actual blocker, not setup.