A thing I really like about how Zulip works is that a conversation can happen asynchronously just like email, as well as synchronously. And the same conversation can shift smoothly from one to the other and back. I work on Zulip, and we basically don't use email at all - it's all either in Zulip or on a GitHub thread. (And the interesting discussions, I increasingly try to make sure to do on Zulip because GitHub is such a frustrating place to have a conversation.)
Zulip is great for async communication because it surfaces unread messages in an easy to skim and non-overwhelming way.
After a day of not checking Zulip, the user can then open the chat and (before seeing any actual messages) see:
1) which streams have had activity.
2) which threads/topics within those streams have had activity.
then choose which topics to read in a "relevant to me, not relevant to me" quick skim.
Having the topics within streams also allows those topic discussions to persist over time without being lost in the deluge of other messages.
There might be thousands of other chat messages between when I ask a question in #frontend > supercool.js but a teammate will skim later, see
#frontend > supercool.js [1]
and think "hey I know about supercool.js, what's up?" then respond.
I can also search to see if there's already a supercool.js topic thread and catch up on what we've discussed in the past.
Other than one-off q&as, I don't understand why email isn't still the best thing we have?
https://monadical.com/posts/how-to-make-remote-work-part-two...
Newsgroups (NNTP)?
(I don't know Zulip and I don't know what problems you have with e-mail, so that's just a guess.)