Thank you!
Admittedly, it did take a day (less than), but once I got used to the interface Zulip provides. It's better than what I would have asked for! It's phenomenal software! The whole experience is better than anything else that exists. And everyone charging for the same features should feel embarrassed given how much better Zulip is!
Genuinely, it's impressive what y'all have created. So thank you!
I see that you have a "community" tier that's free and doesn't restrict notifications, but it's not clear to me exactly what's involved in proving that we should qualify.
Matrix works analogously; if you use the Element app from the App Store or Play Store, then you're using Element's push notification server, even if your Matrix homeserver is self-hosted. It's possible that Element allows their server to be used gratis in situations where Zulip charges a fee, I don't know their policies or anything, but in principle Matrix still leaves you exactly as dependent on a third party's goodwill unless you make your friends install a privately distributed mobile app.
Zulip IIUC does not restrict self-hosting of any feature that's technically possible to self-host.
Wouldn't it be possible for Zulip to go this route as well?
I think it's reasonable for Zulip to ask for compensation for access to these gateways, since Apple and Google do not make them available to end users free of charge, and the burden of responsibility to ensure that these systems aren't abused is on them. Also, the fact that they offer mobile push notifications for any self hosted server of up to 10 users is pretty generous, and there seems to be a Community plan option for larger servers that includes "groups of friends" as a qualifier. It really seems they're offering quite a bit.
On its own notification to your device will happen eventually when the ntfy app on your phone wakes up and polls. Pull, not push.
My ntfy server has a config line for an upstream, which is a service that then uses push. Basically it’s self hosted and handing off push.
I don't mean to cast aspersions on the developers—I respect everybody's right to try to get paid for good work, and this looks like good work. I am just not convinced it's the right option for my specific needs.
Nope. On iOS the flow is:
1. Generate a "push token" on the device (with the user's approval).
2. Send this token to your server.
3. Now you can send notifications to the device via this token. Your server needs to authenticate itself with Apple, and this requires an Apple account. But it's not linked to an individual app.
The situation is different on Android. Google went out of their way to make it impossible to customize `google-services.json` at runtime. So the built-in "easy" flow won't work. But notifications ultimately work using veeeeery obfuscated remote procedure calls to Google Play Services and you can run them manually. I need to do a write-up about this....
I don't mean to shit on Matrix either. It's a hard set of problems they set out to solve, and Matrix is usable and legitimately self-hostable.
The Bluesky team talks about "credible exit", and Zulip has that in spades - which makes me not want to exit.
Thank you for the work you do. Hanging out in CZO watching the Zulip team work in public is inspiring!
my experience is exact opposite
It also has an "entire server" view if you want to see everything in one stream.
Discord server is a flat. It's full of predetermined brick-walled rooms (channels) that have titles on the doors. You look at the titles, you choose the closest to the topic you want to talk about, you walk in.
Slack server is a meeting place. It has rooms, rooms have titles... but you can't talk in them. If you start a conversation there, you're encouraged to "go outside" (to a thread) with whoever joins you to solve the problem. If you walk into the room, you'll only see pointers to "meeting places outside" (also sometimes you can't even discover that room exists without a pointer?)
And Zulip is a warehouse (or a blimp hangar) - it's one open space with no walls. When you come in you hear everyone echoing off the walls. To not get lost, there are markings on the ground that color-code which parts of the space are for what category. And people are standing in groups, so you can come closer and concentrate on one topic at a time
---
If I want to ask a question,
- on Slack I'm immediately get shoved into a car and driven away to discuss (I don't feel community)
- on Zulip I have to navigate the cacophony of main screen, stand in the open and scream my question, hoping that people approach and form a group around me (I feel both open and alone)
- while on Discord I walk into a room that's "close enough", maybe look at conversation that happened right before to get a feel, and ask away (I feel like I'm in a lived-in space and can navigate the tone)
---
If I want to participate in a conversation
- on Slack I have to keep track of new threads. I have to explicitly open each one. I have to read through to see the convo state
- on Zulip I have to scan the "all recent messages" main screen, form an opinion on what discussion I'm interested in, explicitly open it, start reading last messages (now of the specific topic) again to form opinion again on what the state of convo currently is
- on Discord I can see the channel name to pre-emptively get general theme I'll be in (and I can mute channels I'm completely not interested in), I open it and start acquainting myself with the current convo state right away, learning specific topic from the context
---
I can definitely see how Discord's hard structure-ization can fail on large scale, when there is constant demand to use the rooms.
And I definitely have experienced channel "memory leak" (when they get allocated at one point and stop getting used as activity lowers, necessitating archival or garbage collection)
But I do feel that discord got that perfect middle ground between "everything together" and "everything in separate" extremes that all other options tend to fall into
> on Slack I'm immediately get shoved into a car and driven away to discuss (I don't feel community)
It completely depends on the community / people. I'm in multiple slack servers where the threads are an exception for things that would otherwise really pollute the discussion. But otherwise, everyone just chats mostly in #general (or different rooms if the community is really large)
Different people at the wheel making decisions on how we will all use it, and encouraging the structure.
Our main reason for using Zulip is that we work in a highly regulated space (healthcare) and would like to be able to safely talk about things. I suspect this sort of situation is a major motivator for Zulip adoption, so it’s weird that transit encryption was left as an afterthought.
Cryptography is not something you can do sloppily, and requires coordination between the mobile and server teams. Zulip 11.x included the protocol, but while doing the mobile implementation, we decided to make several more changes which have delayed it to the upcoming Zulip 12.0.
Some important context is that we retired the old React Native mobile app this summer in favor of the new Flutter apps (https://blog.zulip.com/2025/06/17/flutter-mobile-app-launche...), which has been an enormous improvement in the quality of the app and developer experience.
But as you can imagine, the cutover and relentlessly addressing feedback after it took a lot of time for the mobile team. We've also experienced an AI slop bombardment in the last few months that has consumed a lot of time. I'll save that story for another time.
I used it at my previous employer and after a month of hangringing from people- many did not desire to go back to what we had before. (though some people did say they wanted Slack for the emojis and “prettiness”).
Now I started in a new position and I’ve positioned Zulip (on prem) as the only viable solution since we’re shirking SaaS as a strategic move.
The people who followed me to the new place are quite glad of this, or at least thats what I am told.
So, thank you, sincerely.
I’m sorry to be that guy but it’s “handwringing” - twisting your hand like you wring your clothes until you agree
https://dictionary.cambridge.org/dictionary/english/harangui...
I'm also gonna be that guy - hand wringing is a stereotype of an expression of distress, not coercion. You're thinking of the idiom "twisting someone's arm".
Don't worry - they're repealing section 230 of the Communications Decency Act.
The one that says platforms aren't liable for what their users post.
This means there will be no platforms at all very soon.
Could you expand on this?
Kind of like if each slack thread discussion had a title and was discoverable from the left sidebar and didn’t get in the way of the other threads.
But also, critically, if you want to, you can drop back to the "show me everything sequentially" view. Threads hide discussions away - which is good when you want to focus on something else, but bad when you can't remember where a discussion was.
How accurate is that understanding?
arent you as a zulip instance owner going to have to implement all the same stuff as discord?
If you create an invite-only Zulip chat for your pub trivia league or school parent association that’s all adults, probably not.
My understanding is that Campfire hasn't been actively developed for ~10 years (https://once.com/campfire/changelog shows some minor fixes after the OSS launch; their GitHub has no 2026 commits). There are no mobile apps. It is not an actively maintained Discord alternative.
Stoat is early in development. For example, https://github.com/stoatchat/stoatchat has 1421 commits, compared with 68K for https://github.com/zulip/zulip/. I wish them luck! It's really important that we have multiple independent efforts.
https://www.rocket.chat/ and https://mattermost.com/ are open-core military contractors these days. You'll see what I mean if you visit their websites. But like Zulip, they are full-featured team chat systems, and if the parts of their system that are OSS work for your organization, they're certainly valid options.
Finally there is Matrix/Element. They have an inspiring vision and similar values to mine, and I'd recommend checking it out. Element/Matrix is built on an ambitious distributed consensus protocol with an E2EE option, which provides capabilities Zulip don't have but also adds complexity. Zulip is focused on just doing team chat really well, and does not support more than ~100K users in an instance. Hopefully will have a lot more resources now, thanks to Current Events. I wish the Element team the very best of luck!
----------------------------------------
Overall, Zulip's focus has always been on making a delightful chat experience, especially when you have multiple conversations happening at the same time. We aren't trying to build a clone, but instead the best possible experience for having lots of possibly complex conversations. So there will be some differences from what you're used to.
But critically, we spend a very large amount of our time relentlessly fixing micro-interactions that annoy us or are reported to us. If you read #design, #issues, and #feedback in https://zulip.com/development-community/, you'll get an idea of how we work.
So while there's some features we don't have that are present in other products, and we don't have dozens of designers on staff to do cool end-of-year animated reports like Discord does, you can expect few bugs and a lot of interaction design polish.
-----------------------------------------
The one mistake that I think a lot of folks make in evaluating options is focusing on buzzwords like E2EE without thinking through their threat model. E2EE doesn't add much practical security over self-hosting for many threat models, and it comes with significant usability trade-offs. And some current E2EE systems don't actually protect against a malicious server, say because they only protect message content, not metadata like who has access to what... just against raiding the server's disk.
(For example, WhatsApp has E2EE for message content, but I expect Meta's databases know everyone who's had a conversation with me on WhatsApp and the precise timestamps and approximate lengths of every message I've sent or received on the platform. And apparently some keyboard apps send what you're typing to remote servers!).
Ideally migration should be easy enough that it would be easy enough to automate a mobious strip subscription where it seamlessly alternated between providers.
If that structure existed it would be nearly impossible for a single provider to enshittify. The sad fact is that no matter how many assurances (often sincerely delivered) have been made, we have all seen instances where buyouts, management changes, or just someone in control going nuts, have turned platforms sour.
Open source is great but as this thread shows, just being open source does not mean functional or maintained.
For people looking for a simple chat that stays simple, is this a bad thing? When do we call something feature complete? If a product is free, they no longer need to manufacture new features to justify continued payments. It does look like there were updates 2 months ago. Based on the few number of open issues, and a PR closed last week, it feels like it’s being maintained, even if it’s not getting major new features.
I’m not a Campfire user, so can’t speak to the UX, but I feel like there is a market for actively maintained projects, that are considered feature completely, which aren’t searching for new features to shoehorn in. In the long-term, this need to constantly add features generally gets interpreted as enshitification by users. Avoiding falling victim to this relentless push for “more” can be seen as a feature in itself.
https://discourse.imfreedom.org/t/protocols-to-support/234/1...
The main thing regards our double-entry API changelog system. Basically, the API documentation for individual endpoints, say https://zulip.com/api/get-user, natively cover for each endpoint all the changes relevant for that endpoint from https://zulip.com/api/changelog... and how to write nice code using feature level checks to support all server versions.
I assume this API omission is intentional on Google's part but don't understand the motivation.
Among customers, one reference that I can quickly cite is this one:
https://zulip.com/case-studies/gut-contact/
> Agents at GUT contact use Zulip every day to communicate with their team leads. “Most of our agents are in their 60s or 70s, so the software must be as simple as possible. That’s why we love Zulip,” says Erik Dittert, who’s been leading GUT contact’s IT team for the past 20 years.
I would recommend doing a little training/handholding call/video when moving over a community -- but this is true for any new app.
My mom needed training to do basic things in Squarespace, and I had a friend who worked at Slack whose manager started every chat message with "Hi <name>" and ended it with a signature, like you would an email. :)
> and have them watch the 2-minute onboarding video
I'm going to be very honest here. The jock ain't watching no video. Dude has (possibly) early CTE. Do you think he has the attention span to sit through a two minute video? For a messaging app??That's an automatic fail.
Anyone with a large enough social group will have some people like this. These are people who've engaged in football, boxing or contact sports like rugby. Or, people with severe ADHD. Or have had some kind of traumatic brain injury. These are real users and they're my friends.
I won't switch to using your application if they're going to be left out in the cold.
If a messaging application can't be used by that person, then that's a default fail. I'm not going to expose them to it.
I am not arguing from a particular desire to get your jock friends on Zulip. Like I said in another subthread, I consider Zulip to be mainly for people who want to achieve things together, not just hang out. It's a productivity app. I wouldn't recommend it as a social app. Why I'm replying is because I feel your approach to the discussion is a little... uncharitable?
I think you're misunderstanding me. I'm not here to argue particulars. I'm sharing my reality as a user. A user who runs multiple communities. Including one for my friends. And my friend group extends to 2k+ people (my friends, their friends, their friend of friends... It adds up).
It's not fair that the CTE friend uses discord out of the box, but that's the power of network effects. Any competing solution needs to be 10x better to incentivise the switch.
I can setup a new discord server in a click. Versus,
Sponsorship and discounts
Contact sales@zulip.com with any questions.
Community plan eligibility
Open-source projects
Research in an academic setting
Academic conferences and other non-profit events
Many education and non-profit organizations
Communities and personal organizations (clubs, groups of friends, volunteer groups, etc.)
Respectfully, I'm not emailing your sales team to create a movie night server. Or one for class / group notes. Actual use cases. https://zulip.com/plans/#self-hostedAdminning a Zulip for a small community group, I've actually found I have better tools to help with this. E.g. in Slack, we had constant nags to "please reply in the thread!" In Zulip, I can just move messages where they belong, and either leave the automated notes there to show where the messages went, or DM the person to let them know what I did.
Echoing this. Navigation is better and clearer on desktop. The mobile apps works really well once you know what you're doing. Part of onboarding into Zulip is being able to get an "overview" of the community and the discussions that are currently happening, and this is easier on desktop.
As a developer I don't like it, but reality doesn't have to appease me.
In my view and experience, Zulip is a collaboration platform for groups who want to get shit done. I wouldn't recommend it for a "place to hang out".
People who are serious about achieving something will use a laptop. Similarly, in a cousin comment - they will watch a short onboarding video.
No platform is "intuitive" for everyone. WhatsApp and Signal are "basically just SMS" so they can lean on the knowledge phone users built in the 00s and 10s. Anything else is a new mental model and takes some adjustment.
EDIT: also if you are an open source community, or a company, and you choose Discord for your support/project collab community... do better. (Looking at you CloudFlare)
I would also like to note that Slack did not pass the grandma test in our case. I highly doubt that Discord would given how hyperactive the UI is.
Expecting a way way way smaller team that didn't get $1billion in founding, like Discord did, is an extremely poor mindset to have.
All you're proving is the need to implement a tech tax to force companies to fund FOSS at the behest of the federal government, which frankly I'm all for.
* Centralized identity, and participating in multiple communities at once: People sign up once, then navigate to whatever autonomous communities they choose quickly.
* No hosting requirement (good for ease of use): Want a new autonomous space? Create it! Boom! No installation, no hosting, no monetary cost.
* Video streaming: No other chat client does this easily. Not Mumble, Ventrilo, Teamspeak, or these chat programs.
If you want to defeat Discord, particularly in the gaming server arena, you need to make interacting with multiple servers better and you need screen/video streaming.
Objectively, the EU seems to be the bigger threat to free online exchange of ideas.
(Thanks for making Zulip, I love it)
But we don't have a dedicated accessibility tester on staff, so we're reliant on people reporting issues that bother them in actual use.
I should also mention there's a nice TUI app: https://github.com/zulip/zulip-terminal, which can be helpful for some people.
I'd like to convince other parts of my organization to move to Zulip, this will help.
We do have plans to make the integration offer some additional ways to jump into a call, and have been talking about adding video chat. But our focus has been on building the best text chat possible, given there are multiple actively developed FOSS video call systems that we can integrate with.
This is not the case for slack or discord. I think having an awesome clean first impression would do wonders to sell what younare doing.
This is like believing DOGE was about efficiency :)
1. Extrajudicious execution of US citizens 2. Construction of concentration camps 3. Openly saying that you'll interfere with state elections 4. Openly saying you'll take away guns and dimish gun rights
Let's just be honest with ourselves. No one. And I mean no one, can support Donald Trump and be a principled decent human being, conservative or otherwise.
You lost me there. I need to have all my contacts on Zulip. Nothing else matters to me
This part absolutely isn't necessary because it's a wrong idea no matter who is in charge.
I've been putting my pants on every morning for the last several years, had breakfast, gone to work, and come home without worrying about any current events in the USA and my life seems no different than 50 years ago except I have modern gadgets.
Social media is not the world. In fact, it's 10% of what the real world is like and how the real world thinks. It's why I ignore social media except for HN and one other but I only scan the headlines and rarely pop into comments like this.
And I'm happy.
EDIT: And the comments below are proof why you, too, should ignore all social media and why you, too, will be happier.
Glad things are comfy for you though.
There are no limits here and there many publicly available proofs of people getting harassed and detained regardless of legal status and deported contrary to court rulings that apply to their situation. You don't need to repeat the current ICE/DOJ lies - they can speak for themselves.
>Glad things are comfy for you though.
Things for my family, my relatives and me are great! When I was in my early 20s I often went hungry. Now I'm worth a lot of money. Couldn't be happier as a normal, decent, everyday US citizen.
Have you scanned any headlines about ICE lately? Maybe do a quick search for news about Minnesota?
(I'm pretty sure that if you'd been putting your pants on in Minnesota, you would not have written this comment.)
Surely it can't be 100%, right? No event in any major city, even horrific events, actually affect everyone.
While you're doing that, I'm going to be over here deleting my Discord data, installation and everything else that sides with it.
If you prefer not to look, maybe because you're convinced there's no truck, or you don't think it would help avoid the truck if there is one, fair enough. But the fact that your personal experience is unchanged is meaningless.
Then they came for the trade unionists, and I did not speak out—because I was not a trade unionist.
Then they came for the Jews, and I did not speak out—because I was not a Jew.
Then they came for me—and there was no one left to speak for me.
Martin Niemöller
https://encyclopedia.ushmm.org/content/en/article/martin-nie...