GSH

Zulip

Open-source team chat with topic-based threading, self-hosted on your own Ubuntu or Debian server.

Team Chat

Zulip is an open-source team chat application built around topic-based threading, where every conversation in a channel carries a topic. It ships web, desktop, iOS, Android and terminal clients, hundreds of integrations, importers for Slack, Microsoft Teams, Mattermost and Rocket.Chat, and end-to-end encrypted mobile push notifications. Self-hosting runs the full server on a dedicated Ubuntu or Debian machine through the vendor's installer, which also configures nginx, PostgreSQL, Redis and RabbitMQ; Docker images and Kubernetes Helm charts are published as well. The self-hosted Free plan costs nothing and includes every Zulip feature, but mobile push notifications are unlimited only for eligible communities and otherwise limited to 10 users. Paid self-hosted plans buy unlimited mobile notifications (Basic, 3.50 USD per user per month billed monthly), then commercial support, SAML and AD/LDAP sync from 25 users (Business, 6.67 USD per user per month billed annually), and Enterprise by quote.

Key features

Self-hosted FreeFree self-hosted
LicenceOpen source · Apache License 2.0DeploymentSelf-hosted
Self-hosted Basic3.5 USD per seat / month
LicenceOpen source · Apache License 2.0DeploymentSelf-hosted
Self-hosted Business6.67 USD per seat / month
LicenceOpen source · Apache License 2.0UsersUp to 25 usersDeploymentSelf-hosted
Self-hosted EnterprisePrice on request
LicenceOpen source · Apache License 2.0DeploymentSelf-hosted
Limits, notes & source

Self-hosted Free

Limits
The complete team chat solution with all Zulip features included. Mobile push notifications are unlimited for eligible communities (open-source projects, academic research, small non-profits, families and friends) and limited to 10 users otherwise.
Notes
Listed on the plans page as "Free" under Self-hosted. Licence read from the repository: the GitHub licence API returns Apache-2.0 for https://github.com/zulip/zulip (LICENSE), and the README states Zulip is distributed under the Apache 2.0 licence.

Self-hosted Basic

Limits
The complete team chat solution with all Zulip features included, plus unlimited mobile push notifications.
Notes
The plans page states "$3.50 /user/month billed monthly"; monthly billing is the only billing period stated for this plan.

Self-hosted Business

Limits
Everything in Basic plus email and chat support, SSO with SAML and Microsoft Entra ID, AD/LDAP user sync, guests with configurable access, full and compliance data exports, and data retention policies.
Notes
The plans page states "$6.67 /user/month billed annually" or "$8 billed monthly", with a 25 user minimum.

Self-hosted Enterprise

Limits
Everything in Business plus email, chat and phone support, SSO with OpenID Connect, AD/LDAP, SAML and OpenID Connect group sync, SCIM user and group sync, implementation consulting, custom feature development and advanced deployment options.
Notes
No price is published; the vendor's self-hosted billing page directs buyers to sales@zulip.com.

Pros & cons

Strengths

  • Topic-based threading labels every conversation, so channels stay readable. Source
  • Self-hosted Free includes all Zulip features at no licence cost. Source
  • Mobile push notifications are end-to-end encrypted on Zulip Server 12.0 and later. Source
Show 1 more
  • One server can host multiple Zulip organisations, each on its own domain. Source

Trade-offs

  • Organisations with more than 10 users need a paid plan to keep mobile push notifications. Source
  • Self-hosting needs a dedicated machine or VM and the installer expects Zulip to be the only thing running on it. Source
  • Self-hosted releases add features twice a year, while Zulip Cloud is updated every couple of weeks. Source
Show 1 more
  • The self-hosted Business plan requires a minimum purchase of 25 users. Source

Zulip replaces

Products this app is built to take over from, with the vendor's own evidence.

Moving your content across: Documented per product: what you do on the side you are leaving, what this app does with the result, and what does not survive the trip. Every step links to the page that documents it.

  • SlackZulip's own why-Zulip page names Slack and argues its topic-based threading is more efficient than Slack's channel model.Source
    • ExportIn Slack, as a workspace owner or admin, run the message history export and download the zip: it holds all public channel messages, including ones no longer searchable on your plan.Source
    • ExportUser data and custom emoji need a second pass: create a Slack app with the bot scopes emoji:read, users:read, users:read.email and team:read, then copy the xoxb- bot token.Source
    • CaveatSlack only lets Business+ and Enterprise Grid workspaces export private channels and direct messages (Slack confirmed the policy in August 2022) — everything else is public history only.Source
    • ImportSelf-hosted: put the export in /tmp, then as the zulip user run convert_slack_data with the bot token followed by manage.py import '' /tmp/converted_slack_data, with the server stopped around it.Source
    • CaveatThe import only builds a new organization — history cannot be added to an existing Zulip org — Slack threads arrive as topics named after a message snippet, and edit history is dropped.Source
  • Microsoft TeamsThe same vendor page names Microsoft Teams among the apps whose communication patterns Zulip is built to replace.Source
    • ExportIn the Teams admin center, as an admin, request the Teams data export tool, pick a date range and download the zip — approval can take around a month and tenants are capped at 500 users.Source
    • ImportZulip's import tool builds an organization from that export; create an Entra ID app with ChannelMessage.Read.All, User.Read.All and RoleManagement.Read.Directory for hosted contents and roles.Source
    • CaveatDirect messages and private-channel messages are excluded, the importer is in beta, and imported users keep their tenant addresses until they update them.Source