Zulip needs a couple UI/UX designer to work on it and get a facelift into the "cutesy and smiley interfaces" era. It's great, and it's the only one that's actually free to self host with all features.
Zulip definitely needs more UX design work. I also wouldn't call it great either. Perhaps in comparison to the competition it would be, but it's awful compared to native chat applications.
Invisible scroll bars keep making me miss new messages just because indicators were out of the viewport. Having the browser stall routinely causes full reloads (after a delay, making it more annoying), then the reload is invarialy interrupted by the server due to request overload. Not to mention that the reload is slow already. Long messages show up collapsed, and uncollapsing them often devours whatever text was in the input field, an especially useful feature when trying to write a thoughtful reply cross-referencing multiple posts. Email notifications send out the same message multiple times, and presents author's name the same way as the rest of the text. Constant hitting on the CPU. Confusing notion of threads and forums. I could go on - Zulip is not nice.
I'd be curious to hear more about these concerns, because they're largely not things others have reported. Would you be up for dropping by chat.zulip.org to provide more detail? A few initial thoughts:
* Notification emails for PMs don't include the sender in the body at all. Those that do have the sender bolded on a line by itself. So I am not sure what you're referring to here. Maybe you're using a self-hosted server running an old version? We did a total redesign of missed-message emails in 2019.
* When closing the compose area, Zulip saves message content in the "drafts" feature, so one never loses partially composed work: https://zulipchat.com/help/view-and-edit-your-message-drafts.
* I was able to reproduce the uncollapsing bug as https://github.com/zulip/zulip/issues/15808, and fixed it a couple minutes later. Thanks for the report!
* The issues around CPU load, reloading and server issues are probably best discussed interactively, since I'd like to see browser profiles for your situation and understand if you're using a self-hosted server that might be underprovisioned, which seems a bit much to work out on a HN thread :)
Thanks for replying! I didn't expect the lead dev to actually reply. I will certainly drop by when I find enough time.
- yes, this is self-hosted. I can't check the version, but I think it was recently updated
- notification emails in non-html mode don't carry over the bold, not even in the form of asterisks, so it all blends in with multiple messages
- the "drafts" feature took me a year to discover. Sadly, messages were recomposed. I think it's useful when the composing is interrupted due to external reasons, but not something to work around user action causing clears
- thanks for fixing the collapsing bug, I'll see how my opinion on the composing workflow changes
- CPU load is not that bad, but still way worse than my IRC client or a non-JS forum, so
- I may be somewhat unique in that I automatically `kill -STOP` and `kill -CONT` the browser when not using it, sometimes keeping it frozen for days at a time. That is causing the server issues. Notably, I haven't yet seen any other software or pages having problems with that.
One thing I always respect is the desire to keep improving! Kudos!
> yes, this is self-hosted. I can't check the version, but I think it was recently updated
Well, 3.0 comes out tomorrow (hopefully) so your administrators may want to upgrade once it does :).
> the "drafts" feature took me a year to discover. Sadly, messages were recomposed
Yes, we're planning to add an onboarding notice the first time a draft is saved to avoid this failure mode :).
> notification emails in non-html mode don't carry over the bold, not even in the form of asterisks, so it all blends in with multiple messages
Oh, interesting. Non-HTML emails are hard to do much good with; if you have specific ideas for what we could change to make that better, let us know: https://github.com/zulip/zulip/issues/new
- thanks for fixing the collapsing bug, I'll see how my opinion on the composing workflow changes
Happy to! We generally fix any easy bug as soon as it's reported as a general practice, since users can really tell how buggy a product is, so hopefully this will encourage you to report more :).
Yeah but if you want truly self hosted AND full feature set (notably search and archives) AND owning your data, there isn't much available putting Zulip far on top.
IRC could do it, but IRC never got a clean and prettified client that bob from accounting knows how to use properly, and finding the proper server software sucks.
Fwiw self hosting Element and a Matrix homeserver like Synapse provides a full Matrix feature set (including search, archiving and everything else). You don't lose out for self hosting.
What Zulip needs most isn't UX but a sane installation, upgrades and management.
It's software with many moving parts, it uses PostgreSQL, Redis, memcached (!) and RabbitMQ (!!). That's at least two more than you'd expect. All these have completely different cluster architectures. Point in time backups isn't trivial either. This makes things like HIPAA requirements harder to implement.
The official way to install it is to run a sprawling Puppet manifest, which is dependent on a number of other tools to do the work. How do I store this in an existing configuration management system? How do I connect to existing databases? Those DBAs were hired for a reason. The documentation on that is less than ideal.
You'd better run in on the recommended Ubuntu version, any deviations will cause the above procedure to explode into a ball of mud.
There is a Docker image, but it's not stable yet, and upgrades become a bit unclear. It would also mean running all those databases inside a K8s cluster, again with their own ways of doing clusters, backup and maintenance.
The kind of organizations which needs to run things on-prem, and will glady pay for the privilege, are also the kind of organizations which have streamlined processes, sysadmins and DBAs and there Zulip isn't a great fit. It seems to be decent software otherwise with some great and unique features.
We only store transient cache-type state in memcached/redis/rabbitmq, but they have similar configuration options.
> How do I store this in an existing configuration management system?
Our intent is that you configure /etc/zulip using your configuration management system and then use the Zulip installer to install the Zulip software (and it'll configure the services you've configured it to manage accordingly). Our puppet rules are intentionally written to allow only running the application frontend role on a system (as we do in our own production systems).
> You'd better run in on the recommended Ubuntu version, any deviations will cause the above procedure to explode into a ball of mud.
We support all Debian releases and Ubuntu LTS releases in production (which are the only ones worth supporting given that their-non LTS releases are only supported by Ubuntu itself for a few months and thus are structurally long-lived betas). And we're working on CentOS/RHEL support.
I'd love to collaborate on how we can improve Zulip's documentation around your use case. Would you be up for stopping by chat.zulip.org to discuss specific changes?
The backstory here is that I pitched Zulip for an organization which I suspect would be an ideal customer fit. They told me later they had evaluated it but since it wasn't operationally sound, they didn't take it further. Being surprised by this I spend a number of hours on my own with the product, so I did not write the above lightly.
The installation example is just an example. If script doesn't run or doesn't do what you want, it doesn't help. Perhaps the basic problem here is that you are expected to run a script to set up a complex system, with a number of dependencies on the platform repos, where you'd expect to just unpack a tarball and modify an example config to get running.
This is not completely unheard of, it used to be common with proprietary unices, but most were just a basic shar script whereas this is a series chained scripts where if the version of Puppet on your platform isn't what the script expect it's really hard to even get started. And, no, Debian is (sadly) not as big with enterprises as Red Hat and SuSE is. It might however be a mistake to tie software to a specific Linux distribution at all. Those are moving targets and work is probably better spent on other things.
I could elaborate further on software procurement if this anecdoctal evidence is of any use. Generally, there are boxes to be ticked, and things like four interlocking databases and a dump script in cron makes it hard for a DBA to answer if point in time recovery will be possible.