Thoughts about using Discord or Zulip for Jupyter chat?

Right now, the Jupyter community mostly uses a rag-tag combination of Gitter channels for real-time communication. I’ve found Gitter to be pretty under-featured and un-developed over the last year or two. For example, it doesn’t work well on mobile, doesn’t have any kind of alerting system, has a “one room per repository” model but doesn’t link repositories together into organizations, doesn’t support file uploading or emoji addition very well, and just generally hasn’t evolved much in the time that I’ve used it.

My assumption has always been that it was used simply because it was a better alternative to Slack, which (at least historically) was difficult to use as an open channel of communication, and also has some annoying practices around data usage, message capping, etc.

In recent months I’ve seen more people talking about Discord as an online platform for community chat. It seems to have many of the features of slack (one server per organizations w/ many channels per room, web/desktop/mobile apps, search across old messages) without some of the drawbacks (e.g., separate login for each channel). Moreover, it seems much more well-featured than Gitter. For example the Rust Discord server seems to be a healthy place for cross-community chat.

I guess the weirdest thing about Discord is that it explicitly markets itself as a “Gaming chat application”, which obviously is not the same as an open source community platform. That said, in many ways they seem like similar situations (large, open community, requirement for enforcing community norms and rules of communication, need for lots of kinds of topics, etc).

I’m curious if anybody has experience with Discord, whether for an open community or not.

4 Likes

I know that Rust uses it - https://www.rust-lang.org/community.

2 Likes

Has anyone tried the Babble Discourse plugin? https://meta.discourse.org/t/babble-a-chat-plugin/87297

Would be neat if it meant discussions weren’t split over two places.

Discord is very nice and not only useful for gamers. I see it used for very different purposes than video games (game of go community, youtube channel community, development of various softwares). It’s available in a wide range of platform going from web to all major OS and all major smartphone OS.

Gitter is nice but has some limitations since it’s so tied to GitHub repositories. And also the Android application sucks.

A ccouple of questions:

Can I log into discord with my GitHub credentials?

Gitter is hosted, so we don’t have to maintain the infrastructure. Is the same true for discord?

If both of those are true, I’m happy to try out discord. The other big thing I would want to try out is zulip.

Jason

1 Like

I don’t think you can log into it with GH (but I am not an expert).

Discord is hosted so you don’t have to maintain again-another-server :slight_smile:

And two more questions:

How easy is it to get the chat data out of the system (backups, archives, etc.)

Can you browse transcripts without having to log in?

Jason

1 Like

They have an API so I guess it’s possible to download chat data.

I don’t think you can browse transcripts without being logged.

Browsing transcripts (i.e., public communication by default) I think is an important principle in our project communication. Of course, if we can automate getting data out of the system, we can post those transcripts wherever we like.

1 Like

A few thoughts from @jasongrout 's questions:

I don’t believe so - Discord isn’t “officially” connected to GitHub in any way, it uses its own login system.

Yep, Discord is a hosted service

I think Zulip is pretty cool as well - the only problem is that every time I’ve tried to get folks to use it on my teams, people are confused by the interface :-/

It does seem like this is fairly straightforward, e.g.: https://www.npmjs.com/package/discord-backup

In general, Discord is much better about archiving / searchability than Gitter.

More-or-less yes. You can log in anonymously (basically, just create a username and confirm you’re not a robot and you’ll be let into the room), and it’ll have a big “this is an unclaimed account” banner at the top, but you’ll be able to chat, search rooms, etc.

I totally agree with the importance of transparency and open communication - that said, I find Gitter to be “technically transparent but practically opaque”. Sure you can scroll back through Gitter channel logs, but there’s no good “search” functionality or archiving, and in practice I only ever see the last few hours of conversation from scrolling backwards…

1 Like

Aside from the clear and present community need (i’ll agree gitter has some limitations), a free, self-hosted asynchronous/soft realtime, threaded chat with a flexible auth system is a pretty important part of the “next generation” of working within a Jupyter-enabled organization (like Jupyter).

Like @jasongrout, I see exploring Zulip as a win, for its python hackability, auth options, threads/streams and wide range of clients, but will defer to those that have tried to roll it out with mixed success… it might not be appropriate for casual connection. But I can’t imagine having even less support for threads than… that other chat thing people use.

Meanwhile, the OG of scalable, open standards chat hosting, ejabberd, can handle so many concurrent connections your ethernet adapter will give out first… but who has a standards-compliant chat client around anymore :wink:?

1 Like

I am all for exploring Zulip if there is general enthusiasm behind that idea.

In fact, I set up a Jupyter Zulip room a few months back so we could play around with it in JupyterHub land:

Happy to see if we can give that a shot again as well. I mostly just want something better than Gitter, which I find to be a pretty bad chat experience :-/

that said, my experience with Zulip so far is that people don’t really ‘get’ how to use it…they just want a room where they can chat about stuff, whereas zulip forces a threaded conversation within each room (and thus it is a bit less clear to me how it differentiates itself from Discourse).

1 Like

Jupyter Zulip room

Cool, just signed up! It had been a while (pre-2.0) since I had tried it out.

room where they can chat about stuff

Indeed. There are some outstanding issues for a “simple mode”. A half measure is a user style sheet of:

.compose-content {
  display: block !important;
}

(though it does complain if you haven’t picked what you want to talk about)

One thing that jumps out at is that the keyboard did intuitive stuff without learning a whole new set of shortcuts. Enter starts chatting. Enter again inserted a newline (but i could put it in a mode to make it the more chat send now). Ctrl+Enter sent. up moved my focus up, PageUp moved it up a lot (but showed how far). These are good things.

Markdown (and LaTeX!) work, not some half-way version of it. Also good.

Zulip actually talks about accessibility and what they’re trying to achieve, whereas discord apparently still has its work cut out for it.

2 Likes

I just wanted to say that I’m 100% behind the idea of public communication by default. I hold up the Jupyter project as an example of what I call SLOPI (Searchable Linkable Open Public Indexed) communication and Gitter helps immensely with this. For more on SLOPI, please see https://github.com/good-labs/slopi-communication

1 Like

I totally agree - though would consider Gitter to be more LOP than SLOPI :wink:

1 Like

What ever happened to https://github.com/minrk/archive-gitter ? Was the thought ever to make the Gitter logs more searchable by indexing the messages into Solr or Elasticsearch or whatever?

In my mind the technology we use for chat in 2019 doesn’t matter. What matters is the data and that it’s searchable and preserved so others can learn from it.

As @jasongrout pointed out above, being able to link to a specific historical conversation without requiring those that wish to view it to log in would be a big plus. Zulip seems to enforce logging in (e.g. they require that Github share your email address with them if you want to log in with GH).

Just a quick note that it looks like the zulip community is aware of this as an issue, there are some fixes here:

which has a link to a quick way to grab the archive of a zulip room and convert it to HTML/markdown to display in a website or something. It sounds like native zulip support for this is a WIP

1 Like

I like Zulip, especially after investing 2min to read the philosophy behind it. I think it would help people who only occasionally pop into a chat see what happened in the conversations they were part of.

One thing I think will cause the power users (those who use topics as intended by zulip) frustration is that there doesn’t seem to be (in the zulip Chris setup) a text box into which people who arrive in the chat for the first time can “just type”. The button I ended up clicking the first few times to “i just wanna chat, who knows if this is a topic, just want to chat, where is the text box/” is the “Reply” button. This might do the “wrong thing” because I’d be sending my “hey, is this the chat to be chatting about $stuff?” to what ever the last topic was. The frustration for the power users would be that people come and “hijack” your topic to chat about random stuff and you then have to tell them to please move etc.

How do we find out if I am a typical newbie in terms of thinking that “Reply” is the go to call-to-action?

Hmmm - that’s a good question. I wonder if somebody has written up blog posts etc if their team / community has used Zulip. We might get some inspiration there?

I feel like testing out Zulip / Discord / etc should be done before we’d make any kind of community decisions to switch. Perhaps we can find a time-bounded project that we can just commit to using Zulip for, to see how it feels in a day-to-day basis?

1 Like