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.
- Source
- zulip.com/plans ↗
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.
- Source
- zulip.com/plans ↗
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.
- Source
- zulip.com/plans ↗
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.
- Source
- zulip.com/plans ↗
- Cloud FreeFree self-hosted
- LicenceOpen source · Apache License 2.0DeploymentManaged cloud available
- Cloud Plus10 USD per seat / month
- LicenceOpen source · Apache License 2.0UsersUp to 10 usersDeploymentManaged cloud available
- Cloud Standard6.67 USD per seat / month
- LicenceOpen source · Apache License 2.0DeploymentManaged cloud available
Limits, notes & source
Cloud Free
- Limits
- 10,000 messages of search history, file storage up to 5 GB in total, hundreds of integrations, advanced roles and permissions, guest accounts.
- Notes
- The plans page states every plan runs the same open-source software, so the licence is the same as the self-hosted editions.
- Source
- zulip.com/plans ↗
Cloud Plus
- Limits
- All Standard plan features plus file storage up to 25 GB per user, SSO with SAML, SCIM user and group sync, a custom domain, limiting guest access to the user list, and priority commercial support.
- Notes
- The plans page states "$10 /user/month billed annually" or "$12 billed monthly", with a 10 user minimum.
- Source
- zulip.com/plans ↗
Cloud Standard
- Limits
- Unlimited search history, file storage up to 5 GB per user, flexible permissions with custom groups, message retention policies, custom branding with your own logo, public access option and priority commercial support.
- Notes
- The plans page states "$6.67 /user/month billed annually" or "$8 billed monthly".
- Source
- zulip.com/plans ↗
Pros & cons
Strengths
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.
- 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