← all SaaS

Self-host Slack

Team chat · Category: team chat & community

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.

Mattermost mattermost/mattermost alive

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.
Full migration guide →
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.

Rocket.Chat RocketChat/Rocket.Chat alive

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.

Zulip zulip/zulip alive

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.

In a terminal? npx os-alt slack prints this table — how the CLI works →