
Zulip – Open-source, threading-based Slack alternative - tonteldoos
https://zulipchat.com/
======
jremmons
My research group at Stanford uses Zulip for instant messaging. I like it A
LOT more than Slack. I'll list a few of the features I think most contribute
to why Zulip > Slack (IMHO). Also, I'm not affiliated with the maintainers of
Zulip at all. I am just a big fan of their software :).

\- Zulip has something called a "topic" which is basically a Slack thread but
with a name/subject-line. Unlike Slack threads though, every message you send
_has_ to be sent in a topic. Zulip makes it much easy to context switch
between these topics too. Ever have a situation in Slack where two people are
discussing something in a channel instead of using a thread or DM? That isn't
possible in Zulip.

\- The Zulip UI offers a lots of nice features compared to Slack too. For one,
you can see the number of unread messages in each topic directly from the main
page. Zulip also supports multi-line messages so you don't have to send a
bunch of message one right after the other to break up text, you can add line
breaks directly to your message.

\- Zulip has a "message drafts" features which is nice when you want to draft
a message (or multiple messages), but will send it later. Zulip will hang onto
your drafts until you need it.

\- Zulip has full markdown support. You can format links, images, and tables
(which are all especially nice when using bots) using standard markdown
syntax.

\- Zulip has full color syntax highlighting when embedding code-snippets into
messages! It has support for basically every programming language I can think
of (including brain-fuck!).

\- Zulip has support for latex equations in messages.

\- Zulip is open-source! You can use the version of Zulip hosted at
zulipchat.com or you can deploy your own Zulip server by grabbing the source
code from github
([https://github.com/zulip/zulip](https://github.com/zulip/zulip)).

\- In the time since I have switched from Slack to Zulip (about 1 years ago
now), Slack has gone down 3-4 times and has had other connectivity issues;
Zulip had maybe 1-2 minor interruptions that I can think of in that time.

~~~
fny
So would it be correct to summarize zulip as real-time email?

~~~
krispbyte
Google Wave was the real-time email, remember that? me neither.

I wonder what would have happened if they used the tech to build a chat
application instead of an email-killer.

~~~
fosco
I loved google wave -- it was great and ahead of its time. I think it was a
major mistake that google let it go and that the apache wave foundation never
got it going. it is too late now but really a greatly missed opportunity.

~~~
infinite8s
It was definitely ahead of its time. It would be interesting to do a reboot
with much better chatbot technology (driven by all the advances in NLP).

------
jacinda
Our team has been using Zulip since 2013, and I provided one of the
testimonials on the site. I’m happy to answer any questions about our
experience.

Our engineering team tried alternatives to Zulip (Slack, Mattermost, and
others) during the period when Zulip’s future was unclear and it was receiving
very little support. We preferred Zulip enough to switch back to it even
though the mobile apps were basically non-functional (they’re now supported
again).

The “killer features” for me were:

\- Topic-based threading, which allows multiple conversations to occur
simultaneously without having to creat a new stream (Zulip’s equivalent to
channels) every time. This also makes it easy for me to contribute to a
conversation hours (or days) later and have everyone else understand what I’m
talking about.

\- Relatedly, he ability to mute topics I don’t care about but see everything
else within the stream.

\- An intelligent global view that makes following multiple conversations at
once easy

~~~
Toa
Thanks for answering questions.

Our company wants to migrate from Skype for Business to either Zulip,
Mattermost or Hipchat. As todays news hit, we removed Hipchat from out list.

Our questions are: 1\. Does the Zulip desktop app for Linux store messages for
offline reading? 2\. Do you use it on-prem or cloud based? (if on-prem did you
by the enterprise support? 3\. Do you have any video or screen sharing
software in use with Zulip? We are looking into the recommended on-prem Jitsi.
Also is doesn't offer much group/channel management beyond moderators and
guests.

~~~
jacinda
1\. No experience with the Linux client but I see another reply answering your
question.

2\. We have used cloud-based from the beginning and never had issues. Zulip's
uptime is fantastic. There may have been one or two minor issues during the
five year time period that we've used them.

3\. We tried out the Jitsi integration when it was first introduced and it
works fine but I don't think anyone at our company uses it since we have
Google Apps for Business so everyone just uses Hangouts if we need video /
voice.

~~~
tabbott
FYI, you can now configure Google Hangouts as what the "video chat" button
does in "Organization settings".

~~~
jacinda
Oh, that’s awesome! I need to pay more attention to your Changelog.

------
aexaey
Since nobody mentioned Zulip's REST API yet, I'll do. There is one, and and it
is really good.

There are also native language-specific wrappers for that API, for example in
python[1], which lets you write a bot in 5 lines:

    
    
      import zulip
      client = zulip.Client()
      def onmsg(m):
         print ("at %d, %s said: %s" %
              (m['timestamp'],
               m['sender_email'],
               m['content']))
      client.call_on_each_message(callback=onmsg)
    

[1] [https://pypi.org/project/zulip/](https://pypi.org/project/zulip/)

------
filam
I used Zulip while at Akamai. At the time, Zulip was a Boston-based start-up
and I believe some engineers at Akamai had a connection to engineers at Zulip.
It wasn't used throughout the whole company, but it did have a significant
user base and was growing.

My experience was so positive that I've continued to evangelize it at other
companies since then. The acquisition by Dropbox was definitely disappointing,
but the fact that they managed to open source the code and have since started
providing a service is very impressive.

The most important feature of Zulip is threading. It doesn't make a big
difference for a very small organization, but it is a huge win for larger
organizations. Not only does it make it easier to organize information, it
allows you to improve the signal to noise ratio by muting specific topics of
conversation. I remember being both very excited for Slack's thread
implementation and then soon after the release very disappointed. It feels
like an after thought and doesn't improve a fundamental problem with Slack,
the exponential growth of channels as new users are added. There is a little
more upfront learning required to use Zulip, but it is vastly outweighed by
the benefits. And don't forget that Slack has a learning curve too, especially
for those that aren't as technically savvy (e.g. markdown, Slack commands,
bots).

~~~
rkangel
We are getting enormous value from using zulip topics between just 2 people.

Myself and my cofounder use Zulip effectively as 'WhatsApp with topics'. We
can chat to each other on a variety of things, and they're easily retrievable,
searchable and persistent.

For example, one of our topics is 'interesting articles' where we send HN
Links etc. that the other might be interested in. They can be separated from
other conversation but it's easy to go back and scroll through them when
you've got some time to kill.

------
Someone
Finally, people rediscover the UI of Usenet
([https://en.wikipedia.org/wiki/Usenet](https://en.wikipedia.org/wiki/Usenet))
and improve on it, getting rid of bare text and adding ways to attend specific
users with @JohnDoe.

I think you could almost (Usenet doesn’t do closed groups) run this on NNTP,
if you run some server that detects those @JohnDoe tags and creates messages
in a “messages for John Doe” group, and write a client that handles Markdown.

------
nsomaru
Tried to convert some non-techie business types to using Zulip. Was really
difficult to get them to understand streams and threading. Perhaps the project
just needed more political will and buy-in, but ultimately the instance on DO
ended up a ghost town. To be fair, these users don't use any of the
alternatives, either.

I was super excited to find out that it's built using Django. It wasn't too
hard to get running on VM using the install instructions.

edit: one downside with a self-hosted instance and the android app was that
you need to send Zulip (the company/org) copies of your app secret to enable
push notifications. When we were demoing, the way to do this was through an
email(!) which seemed poor security, but it seems things have changed since
then and there is now a Django management command to achieve this.

~~~
rkangel
I've heard this difficulty a few times so it must be valid, but I find it
really surprising. It's such a close analogy to email subject lines that I
would have thought that most people could get their heads round it quite
quickly.

------
steve_adams_86
This looks cool. I think it could resolve some of the noise at the company I
work for. For example, a lot of #javascript-specific chat happens in the
#developers channel, but we have a #javascript channel. This is actually
really annoying. I think people would more easily recognize they should put
the message into #javascript if they could clearly see the dev -> javascript
stream structure. Hopefully anyway. There's no way our company would migrate
to Zulip though.

> Zulip has modern apps for every major platform, powered by Electron and
> React Native.

I'm not sure the underlying technologies matter to most users. This might not
be good marketing, but I don't know. I know someone could have chosen to use
this language with reason but figured I'd put it out there just in case.

~~~
tonteldoos
I've recently reconnected with some friends, by way of a slack channel. The
channel is exclusively meant for idle chat, and even there, if I ignore it for
a day, I come back to 200+ unread messages, including actually mildly
important stuff that I missed lost in the noise (friend being in an accident).
I can totally see how Zulip's approach can fix this...

Regarding electron/react native - no worse than Slack, I guess (as far as
resource usage, etc goes).

~~~
theelous3
"no worse than slack" is a funny way of saying "unacceptably high".

------
mightykan
An alternative to Zulip is Twist -
[https://twistapp.com](https://twistapp.com). (I'm not affiliated with them at
all; just a fan.)

They have a proper native (as in not Electron-based) Mac OS X app (probably
other platforms, too, but I haven't checked), which launches almost instantly
and consumes a very reasonable amount of RAM. It's definitely worth a look.

~~~
pritambaral
For others like me: No Linux app.

------
colemickens
Google Wave was ahead of its time, and maybe needed a UX make-over, but still.
I also think reddit taking a lot of traffic from classic "forums" was also an
indication that people want proper threading.

------
repsilat
Can anyone chip in with comparative experience between Zulip, Slack,
Mattermost etc? Any subset will do.

I'm not too interested in a "chat vs email" sort of discussion, just "If
you've decided you want chat, which products are worth looking into?"

~~~
jsiepkes
We've used Mattermost for a small amount of time and then migrated to Zulip
(company of about 50 people). Zulip's threading model is what sets it apart.
It might take sometime to get used to but once you do you don't want to use
anything else. Mattermost is primarily a Slack clone while Zulip is its own
category. I think Slack style chat works best if everyone is working on the
same thing; like a 5 man startup. However with more people working on all
kinds of different things Zulip's model works better.

------
DyslexicAtheist
I'm using it in a startup after some great reviews here on HN. the ability to
have threaded ("topics") is absolutely superior to Slack.

We used slack in other start-ups before and it was always a leading to _'
notification fatigue'_, as soon as the team grew to more than a few people,
and even worse when non tech users were asked to all collaborate.

------
zmmmmm
Does it support a full range of markdown or similar in comments?

Slack's asinine take on Markdown [1] is one of the things driving me away from
it. Our organisation intensively uses Markdown via Gitlab and other products
and being stuck with the half functional version in Slack is extremely
annoying.

[1] [https://get.slack.help/hc/en-us/articles/202288908-Format-
yo...](https://get.slack.help/hc/en-us/articles/202288908-Format-your-
messages)

~~~
_Harshit_
Zulip supports Github flavoured msrkdown. Also you can include mathematical
symbols, equations etc. in your messages using TeX syntax.
[https://zulipchat.com/help/format-your-message-using-
markdow...](https://zulipchat.com/help/format-your-message-using-markdown)

~~~
zmmmmm
wonderful!That qualifies it for a deeper look for me then. Thanks!

------
jaytaylor
Wasn't able to find link to source code on the website.

[https://github.com/zulip/zulip](https://github.com/zulip/zulip)

------
remram
Zulip seems to be trying for "a better Slack", down to the (disgusting)
pricing model centered around keeping your message history hostage.

I have no need for a slightly better Slack. I can see how your topics make it
slightly better to find message, but how do I find topics once there are
hundreds of them? How do I find unrelated issues that popped up in a thread,
like they tend to do in human conversation, and that people didn't bother to
make into a new topic?

~~~
aero31aero
I think I should clarify some of the stuff you're saying:

1\. Zulip has been in development since August 2012 (1 year before Slack was
released), so is not trying to be a better Slack.

2\. Anyone can host their own Zulip server, and have control for all their
data.

3\. For anyone wanting to migrate from the hosted instance to on premises
(self-install) can easily get an export of all their data that they can
directly import into their other instance.

4\. This is anecdotal but so far, Zulip's full text search has worked well in
finding messages from over an year ago easily.

------
unrealchild
I love slack, and I also love open source alternatives to services I value!
It’s not likely we will move off slack any time soon...however I greatly
appreciate having innovative options! Looks great, keep it up!

------
tjpnz
Can anyone recommend an alternative that does _not_ rely on Electron?

~~~
ibrault
Seconded, went in thinking "please don't be Electron" and got to the "powered
by Electron" section and groaned

------
ofrzeta
On the downside, if you are self-hosting, Zulip requires a dedicated server
(or VM). There are some efforts to make it run in a container but nothing that
works really well.

~~~
lucb1e
What kind of kernel-level stuff does it do that requires you to use a full VM?
Stuff like this should be an apt-gettable package, not something for a
container or even VM...

~~~
tonteldoos
I think GPs point was that it requires a full system/machine onto which you
can install it, be it VM or bare metal (which doesn't look too involved, based
on the documentation[1]), but that it won't work as/in a container.

GP: Could you post some information on the issues with containers?

[1]
[https://zulip.readthedocs.io/en/stable/production/install.ht...](https://zulip.readthedocs.io/en/stable/production/install.html)

------
tixocloud
Is Zulip embeddable? I’d like to add a messaging/commenting feature to our web
app and this looks quite good.

------
erikb
Does it also hold my chat history hostage? I can totally understand the
business model behind it, but for me it's also really the most valuable
component. I want full monopoly over my chat history (meaning also the the
chat app developer doesn't get to see it).

~~~
tabbott
You can export your data in a nice JSON format; our exports are complete
enough that you could fully migrate your organization from one Zulip server to
another using them.

And if you don't want to host the data with someone else, you can self-host.

------
anotheryou
I whished it looked more sexy (that seriously helps with making others try
it...)

------
hkai
If Slack could solve their persistent issues, I wouldn't necessarily spend
effort to move to Zulip.

Yet it seems engineering at Slack hasn't improved much over the last couple of
years.

------
coderesearch
Last year I was looking for a tool where one team could provide chat support
to customers - of course the customers should have their own space, in tulip
this would be organizations. Zulip comes with some good UI ideas for a chat
system, the multi-organization experience was not so great.

Unfortunately it was not possible to have users take part in several
organizations - so each support team member would need to have one account in
each organization - that gets messy really quick.

I do not think that this is a very edgy use case, but it is an indicator of
some underlying design limitation. Having users limited to 'org' does not seem
to make sense - instead it is obvious that one wants to have users and groups
and some sane way to fine-tune rw permissions and visibility between groups
and objects that groups create.

I was wondering if such an obvious limitation in the basic design was somehow
induced by the use of Django. A programmer with some DB design experience
would have spotted that quirk in a very early stage. I understand that Django
traps new users into these kind of constructs with its obscure db layer - this
is the microsoft principle - 'hiding complexity' in the end leads to hiding
knowledge and makes people produce problematic results.

It is a good example of how the use of a framework can destroy a good software
idea. Hopefully some people with good db knowledge can fork the frontend and
build a better backend for Zulip - obviously Elixir would be a good fit with
its soft-realtime channels for this kind of communication software.

Zulip is still good enough for more simplistic use cases, but you could use
any php chat system out there without the incredible installation and
maintenance overhead that python brings in - absurd over-complication seems to
be another symptom of the framework disease, people just do not seem to know
that they are in the 'absurd zone' because they have never seen how it can be
done in a much easier way.

The tools you use make up your view of the world, so you can not understand
what people with other tools are even talking about as long as you do not try
them. A good lesson for every developer to stay open-minded and not let
productivity pressure eat your learning and research time.

~~~
sciurus
> Last year I was looking for a tool where one team could provide chat support
> to customers

Although there's the superficial similarity that they both involve "chat",
customer support is actually a very different problem to solve than what Zulip
(and Slack and all its other alternatives we're talking about today) is
focused on. It's no surprise that Zulip wouldn't have the features you need,
and it's definitely not somehow an overarching indictment of the Python
ecosystem.

~~~
coderesearch
But I did not make an "overarching indictment" based on a requirements-feature
misalignment. That was just the starting point for taking a closer look.

Do your analysis of the users permissions design of that software and ask
yourself how would you do that or compare to other systems and you will
understand what I mean.

Also I was writing about unnecessary limitations possibly introduced by
framework usage - and this was just a friday afternoon virtual water cooler
talk, certainly not a scientific thesis. And certainly I do not want to go for
war about it with anyone, that was just a little reminder for younger
programmers to never stop asking questions about the tools they use.

Have a nice weekend!

------
Fire-Dragon-DoL
Am I the only one who doesn't like threading at all? I found slack threads one
of the most terrible things ever added

------
izietto
How to go to web client? If I visit the homepage and I click on 'Web' box it
redirects me to Linux app :-/

~~~
ciupicri
Try [https://chat.zulip.org/register/](https://chat.zulip.org/register/)

------
rooam-dev
I love Zulip, the UI looks (to our biz team at least) less modern, but its
productivity features outweigh this.

So far main complain was not being able to create a gif custom emoji :)

~~~
_Harshit_
You can create a GIF custom emoji in Zulip, you just needed to resize them
correctly using some tool before uploading. There is an open PR that will
eliminate the need to resize the GIF before uploading.

~~~
rooam-dev
Thanks a lot! I found the PR and as I was told I opened pandora's box... now
our creative department will be resizing and uploading party parrots gifs :))

------
skrik2049
thread is a great way to organize message streaming.

------
jlebrech
we have a stream with 200+ topics.

topics can't be deleted

~~~
aw3c2
Don't they collapse to like 5 visible topics by default?

~~~
jacinda
Yes, they do, if all the messages are read in the topics. Then it shows a
"more topics" if you want to go back further. However, it will display all the
topics with unread messages in them (even if this is more than 5).

If you're ending up with a lot of unread topics you don't care about, the
answer is to mute that topic (you can mute a single topic without muting the
whole stream, which is awesome but a lot of people I've worked with didn't
realize you could do this).

------
flaque
How about no:
[https://i.imgur.com/pTMwFIZ.png](https://i.imgur.com/pTMwFIZ.png)

~~~
dang
Please don't post shallow dismissals to HN. This is in the guidelines:
[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html).

