Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch to Discord for realtime official communications #53

Closed
Fishrock123 opened this issue Jan 22, 2018 · 32 comments
Closed

Switch to Discord for realtime official communications #53

Fishrock123 opened this issue Jan 22, 2018 · 32 comments

Comments

@Fishrock123
Copy link
Contributor

Fishrock123 commented Jan 22, 2018

So... switching off of IRC has been discussed in like a 20 threads over probably like 5 or 6 repos.

I think it might finally be time to make a move, and I strongly suggest that we use Discord.

Some reasons we might want to switch:

  • We only have two real irc channels, #node-dev and #node.js, one of which is 'unofficial-ish'.
    • Specific conversations often overlap, adding new channels is difficult without owning the irc server.
  • IRC spams join/disconnect messages because IRC.
  • Moderation tools require arcane commands that are difficult to remember.
  • No notifications, requires a bouncer.
  • Horrible web interfaces.

Here's a little tools comparison:

IRC:

  • Is capable of supporting every feature everyone would ever want except voice
  • Those features will never exist because it all basically needs to be built from scratch and will never get done
  • Requires a bouncer for chat history
  • Mobile clients exist but are not great (in my experience)
  • Horrible web interfaces

Gitter:

  • Has awful moderation support
  • Limited feature set
  • Has mobile clients, web interface
  • Can be connected to via an irc client

Slack:

  • Not technically public
  • Has poor tools for being used as a public channel (i.e. moderation tools)
  • Great notifications system
  • Has mobile clients, web interface
  • Can be connected to via an irc client

Discord:

  • Literally built for large-scale open communities
  • Has public-space moderation and management functionality
    • No built-in temp bans / muting, but can be done through user roles
  • Has voice channels for meetings
  • Has mobile clients, web interface
  • A middleware thing exists to connect via IRC
  • Notification system not has good as Slack

All of these require an account because we also require freenode registration on IRC.


Here's a more detailed run-down of what Discord supports, relevant to us:

Public invite / join links

  • Discord has a built-in system for sharing joinable links.
  • Permanent links are available.
  • The ability to create new links is completely configurable.
  • There is support for levels of verification an account must have to be able to join (such as email, 2fa) in order to reduce spam / bots.

Text channels

  • Support for markdown-style text input like Slack, emojis, embeds, etc.
  • Has pinned message functionality, channel topics.
  • Channels have individual full configurability for restrictions, including the ability to limit embeds, links, files, @everyone mentions, and more.
  • Channel can be grouped by category.

Voice channels

  • Also have individual full configurability for restrictions.
  • May be removed altogether.
  • Can be restricted to certain users.

Server roles

  • Allows multiple administrators .
  • Permissions for moderators, including kick, edit nicknames, bans.
  • Full configurability of text / linking / attachments / etc permissions.
  • Full voice configuration including connect / speak / mute members / move members.
    @mentions for channel role groups.
  • Online member lists for roles groups.

Moderation tools

  • Configurable server-wide explicit content filter.
  • Support for server kicks / bans (account + ip by default) / lower-role editing.
  • Ability to do member muting / temp-banning via role changing.
  • Bans list.

Other stuff

  • Is free for what we want, uses an account-subscription based model for extra, shiny, per-user features: https://discordapp.com/nitro
  • Support for webhooks.
  • Has support for custom integrations we could potentially make use of.
  • Has an audit log.
  • Has an embeddable server widget. (We could embed a chat into some Node.js website page if we wanted to.)
  • Private messages from server users can be disabled.
  • Typical notifications muting / only @mentions / suppress @here & @everyone / mobile notifications settings / overrides.

Other projects using Discord:

@bnb
Copy link
Contributor

bnb commented Jan 22, 2018

For what it's worth we've been discussing this again in the Community Committee and are seemingly pushing forward on enabling discussions like this.

I am generally +1 to Discord, and think it is probably the best platform for the sake of openness and extensibility if we want to centralize on a specific platform. I have also moderated two Discord groups, and have been pretty comfortable with the tooling they provide–it's not really limited at all.

If we do have any objections to the platform itself, it may be worth reaching out and asking maintainers of the other projects you linked and how to see how it's worked out for them and what the successes/hurdles have been.

@WaleedAshraf
Copy link
Contributor

WaleedAshraf commented Jan 22, 2018

I'm using slack for 20+ communities including (Trace/Ember/Codecov/Sumologic/Postman)
Each of these has public-link on their site to join the community. So joining public slack community should not be a problem for anyone.

Moderation: How many times you guys (owners/admin) have to delete some content or remove someone? Or would need IP level restriction? I think there would only a few cases.
Also now slack provides these level of roles for moderation:

screen shot 2018-01-23 at 12 14 36 am

This might be one-time migration. Choose wisely!
Never used Discord :(

@ljharb
Copy link
Member

ljharb commented Jan 22, 2018

(I really dislike discord’s UX, fwiw)

adding new channels is difficult without owning the irc server.

This doesn’t seem true; to create a new (available) channel you just join it; it requires no coordination with freenode.

@mhdawson
Copy link
Member

@Fishrock123, one thing I like about slack is that if it sends you an email with a summary of messages that you have not read after X amount of time. Does Discord have something like that ?

@ghost
Copy link

ghost commented Jan 30, 2018

@mhdawson Nope.

@hackygolucky
Copy link
Contributor

I'm +1 to supporting Discord. I'm meh on subscribing to a single platform as The Communication Tool of Node.js.

I've appreciated the conversations we've had over the years around this(I especially formally thought that we should centralize to a single place). I think it's unlikely due to various user requirements around the world that a single tool will work for everyone, having been given a lot of feedback on this subject. I know you have, too.

As an example, the Slack community/communities need to be more easily discoverable, but they are good, active groups. I don't foresee everyone giving up the platforms they are interacting on for the One on Discord, but I could definitely see them also participating there.

Though I could be wrong on all of this. If a Discord is created and everyone sees how energetic and thriving it is, maybe we'd all be more likely to be excited and +1ing it as the primary tool?

@mhdawson
Copy link
Member

I agree that we don't need one tool for all situations. At the same time, it is hard to follow/participate in a large number of different ones. It would be nice if there was only one that was used for 'most' of what needs to be followed for day-to-day Node.js core work.

@ChALkeR
Copy link
Member

ChALkeR commented Jan 31, 2018

@Fishrock123 I will unpack this a bit later, but for now, I have one question: if we switch to Discord now, and will have to switch to something else in ~2 years from now, how tricky would that be? I mean the negative effect from switching back and forth, i.e. now — to Discord, in 2 years — from Discord.

@mcollina
Copy link
Member

What are "official communications"? That does not seems clear.
Is a place for collaborators (#node-dev) or is it general public? Or is it both?

@Trott
Copy link
Member

Trott commented Mar 28, 2018

Seems like this can be closed, at least for now. Feel free to comment or re-open if you think this should still be an active conversation.

@ryzokuken
Copy link
Contributor

ryzokuken commented Apr 18, 2018

I would like to request reopening and reconsidering this. Looking through the thread, I found a ton of criticism that I'd like to address, apart from that @Fishrock123 has done an amazing job of explaining how discord is just perfect for our needs.

@ljharb

(I really dislike discord’s UX, fwiw)

I don't think I can offer too much regarding this, I guess. I personally believe that the UX of the desktop app and the mobile app seem much more seamless than the web app, but apart from that I think we'd just have to deal with it. (P.S. It's not that bad, after all, it does look better than Gitter/an average ugly IRC client).

@mhdawson

@Fishrock123, one thing I like about slack is that if it sends you an email with a summary of messages that you have not read after X amount of time. Does Discord have something like that ?

It doesn't, but I really like that they have a really decent support for bots and such. We'd probably need a bot for automoderation and the likes, and we could definitely make it do this if it's really important.

@ChALkeR

@Fishrock123 I will unpack this a bit later, but for now, I have one question: if we switch to Discord now, and will have to switch to something else in ~2 years from now, how tricky would that be? I mean the negative effect from switching back and forth, i.e. now — to Discord, in 2 years — from Discord.

Umm, could you care to unpack this now? I don't think there's bound to be a lot of overhead about it, but I definitely haven't tried migrating away from Discord yet.

@mcollina

What are "official communications"? That does not seems clear.
Is a place for collaborators (#node-dev) or is it general public? Or is it both?

It's both, and many more. Discord allows us to keep in place a very complicated system of user levels, labels and roles (think GitHub teams) and allow us to make chatrooms that have customized rules regarding viewership and ownership. This means that we could even shift our private communications to discord along with any public communications (#node-dev + #node.js) to discord with virtually zero overhead.

@targos targos reopened this Apr 18, 2018
@ljharb
Copy link
Member

ljharb commented Apr 18, 2018

@ryzokuken even if discord is decided on (which i'd prefer not), i think it's … ambitious to expect that even close to "all" of the IRC users will migrate to discord - so official or not, whether node manages it or not, there will be an IRC community for the foreseeable future.

@ryzokuken
Copy link
Contributor

@ljharb agreed, and it's only fair. But I'd love to see the community slowly moving towards the new chatroom.

@Tiriel
Copy link
Contributor

Tiriel commented Apr 19, 2018

While I do like Discord, I'm a bit like @hackygolucky , meh on making it the Source of Truth.

At any rate, I think this would create confusion if #49 is pushed through (it would be strange to acknowledge the Slack Community as part of our scope but decide Discord is our main official channel).

@ryzokuken
Copy link
Contributor

I agree with @hackygolucky too on the point that we shouldn't limit the avenues through which users and contributors (potential or otherwise) could reach out to the team, but I do believe that we need an alternate medium (than IRC) to communicate and then, based on our inferences and opinions, graduate it to the position of the de-facto medium for communication among the collaborators, different working groups and general administration.

At any rate, I think this would create confusion if #49 is pushed through (it would be strange to acknowledge the Slack Community as part of our scope but decide Discord is our main official channel).

@Tiriel I find your argument in this rather confusing, as bringing in slack while not even discussing alternatives kinda makes it the "Source of Truth", doesn't it?

From what I could infer from yesterday's TSC meeting, while the TSC has agreed to bring the Slack server under the scope of admin, they didn't sound like they had any real plans of migrating their communication to this slack server and were open to alternatives instead.

We've had enough conversations regarding the merits and demerits of the different platforms, and while I do not advocate chucking all existing/potential mediums in favor of discord, I'd definitely love to recommend it as the standard tool we use.

@Tiriel
Copy link
Contributor

Tiriel commented Apr 19, 2018

@ryzokuken Sorry, that was not what I meant, I may have not made myself clear enough.

From what I could infer from yesterday's TSC meeting, while the TSC has agreed to bring the Slack server under the scope of admin, they didn't sound like they had any real plans of migrating their communication to this slack server and were open to alternatives instead.

That was precisely what I was saying. We bring Slack into our scope, while not making it the Source of Truth, which is a good thing imo. So why add yeat another medium, and make this one the absolute source?

I'm all in for creating a Discord if people like it better than Slack. I'm not for making it the main channel for official communications. As I am not in favor of making Slack the main channel for official communications.

@ryzokuken
Copy link
Contributor

ryzokuken commented Apr 19, 2018

You're right. I don't want discord to be the "official source" either, but I see now where I went wrong (hoping all official communications to take place at discord).

Personally, I do believe that we should not lock-in or restrict ourselves to a single medium of communication, but I also believe that we should have a specific single medium for official communications (which should be decided upon by everyone in consensus and should strictly be subject to reconsideration and change), because it gets super tiring if you have to follow conversations across multiple mediums (right now we just stick to IRC, right?) plus you might not get enough people in.

We'd be worse off with a split confused mess of a community than with a vendor lock-in, IMO.

So I'd propose that we rather decide upon a standard mode for official communications while keeping our choice a matter of future reconsideration.

@ryzokuken
Copy link
Contributor

I don't think I'm on top of all the threads dedicated to this conversation, but have we considered using Telegram yet? It seems to be a good alternative too, if we don't go ahead with Discord, for example.

@bnb
Copy link
Contributor

bnb commented Apr 23, 2018

@ryzokuken Judging from the past year or two of discourse over an official communications channel, I feel like I can pretty confidently say that we're not going to be able to agree upon a standard method of communication outside of GitHub.

This is a pretty sharp pain for certain groups under the CommComm (like the User Feedback Initiative / cc @dshaw), as we're not able to reach 100% consensus.

I would like to propose that we move forward with the groundwork @hackygolucky has already put in place and make an inclusive space for Node.js communities. If they agree to follow (at the most basic) our Moderation Policy, we should welcome them with open arms.

To help ease the administrative overhead of this a bit, I've taken some initiative and created a Discord server and invited @Fishrock123 as the first member besides myself 😅

If y'all would like to join, feel free to use the invite link to join the server. I'm going to be promoting this over the next while, and I'd like to think that this can help us usher in a new concept for the project: Your Node.js communities and spaces are valid and welcome, as long as they have a commitment to being safe. I have noted inside of the new discord server that it will maintain a commitment to uphold the Node.js CoC and Moderation Policy, and will also hold its administrative team to the Membership Expectations policy.

@ryzokuken
Copy link
Contributor

Will join in. Also, I believe @devsnek would be interested.

@devsnek
Copy link
Member

devsnek commented Apr 23, 2018

if we like the discord server I would suggest listing it on https://discordapp.com/open-source which also has some info on how we can get a custom invite (like discord.gg/nodejs)

@ChALkeR
Copy link
Member

ChALkeR commented Apr 29, 2018

@ryzokuken

Umm, could you care to unpack this now? I don't think there's bound to be a lot of overhead about it, but I definitely haven't tried migrating away from Discord yet.

There are risks that Discord wouldn't either last for another 2 years, or wouldn't maintain the same terms for free that we require for another 2 years. In those cases, we would need to migrate again.

The hints are that, according to public information, Discord is currently unprofitable, with huge amounts of money being thrown in it by investors but without any real profit yet. We should expect at least some changes in the near future.

There is no real monetization yet at Discord, and they will have to do something to monetize it. That might hurt us long-term.

E.g., comparing Discord with Slack without taking this into account is unsafe — Slack already makes profit afaik, and it's terms are likely to be stable in that aspect, while Discord is currently under heavy subsidization done by investors in hopes to recoup those later somehow — and that can't last very long.

That said, I am not against Discord per se (or pro Slack), I am just suggesting that we should also take that side of the question into consideration.

@ryzokuken
Copy link
Contributor

While we definitely should take this into consideration, we should also keep in mind that should discord fail anytime in the future, other communities that depend on discord (quite a few) will be facing a similar crisis and we'd definitely not be alone in this. Meanwhile, Discord has launched the nitro program (https://discordapp.com/nitro) to support development which has had pretty decent success and hopefully such an issue would never come in the first place.

Also, the nitro video actually addresses your concerns: https://www.youtube.com/watch?time_continue=84&v=DI6bvoIDUhw
TL:DR; The core features will always stay free.

Every platform has its own unique set of quirks, but I still stand by discord as a solid option because I believe it would facilitate the work we do and simplify interactions. I'm open to any criticism and alternatives, and if we could find a richer yet more stable platform, by all means, let's use that instead.

For now, @bnb has made a discord server we could all join at: https://discord.gg/RBNnUCJ

@ChALkeR
Copy link
Member

ChALkeR commented Apr 29, 2018

@ryzokuken

Re: others — not sure how exactly would it help us in case if anything happens.
Re: nitro — afaik the estimation above was done after the Nitro launch. An estimation of their revenue in 2017 could provide more input, though.
Re: core features — how exactly are «core features» defined there?

@devsnek
Copy link
Member

devsnek commented Apr 29, 2018

@ChALkeR discord's thing with core features is that you'll never have to pay to communicate the way your friends communicate. text/video/voice stuff is free and they keep all messages forever for free. paid stuff goes into things like gif avatars and whatnot

@bnb
Copy link
Contributor

bnb commented Apr 30, 2018

@ChALkeR FWIW I think having Discord as the one and only communication method is off the table. Based off my experience in these discussions over the past few years, there will never be consensus enough around Discord, nor Slack, nor IRC, nor any other platform to actually finalize.

My suggestion is that we take the lead one of the biggest successes of Node.js - grassroots community. There's never been a one-and-done meetup, conference, library, community, or anything else. The Node.js community is extremely broad and has more facets than I think any individual in the org is aware of.

So, instead of saying "yes, this is the one and only means of official communication", I think we should go toward the model of there being multiple blessed means of communication. Hopefully, this will encourage the growth and creation of communities both from current contributors and other members of the Node.js community in its entirety. I personally have started two (spectrum.chat/node and the Node.js Discord) that I think could very easily fall into this categorization.

We've seen some success with the NodeSlackers Slack team being community run, but following the guidelines we as a project have built. The Discord was created under those same guidelines as well 😄

I will also address this up front: Yes, what I've suggested opens the possibility of fragmentation... but that's exactly how we've been for the past ~3 years of discussion around this and it's not stopped the growth of the project yet.

@keywordnew
Copy link
Contributor

The human element very much affects the communication methods that have traction.

We have different preferences about the methods we personally choose to adopt. Some choose to use a single method with all their involvement (eg. Slack teams for all); some are ok using one for an initiative, a second for another (eg. Slack for Node.js, Discord for GraphQL).

When it comes to what the Node.js community uses, I think we're lucky that we have several options for anyone who joins to find one that works best for them 🤠

@jemjam
Copy link

jemjam commented Sep 13, 2018

Not to re-open this discussion; I'm absolutely on board with the idea of multiple blessed channels for the wider community.

I did wonder if maybe CommComm specifically could have a (private?) channel somewhere that we could use for member comms. Does this exist already somewhere? And if not, we could just drop it onto whatever platform works best for most of us (without promoting it publicly)?

I appreciate having github/email for all the async communication, but I've always been of the opinion that a community has a realtime channel as well (and then the two compliment each other). I'd love to have a space that I know some of y'all are in too, but so far I'm not sure what space would be best for this sort of thing. Especially with all the conversations that have been happening lately, even if I can't always participate at least I'd have the chance to read through some...

Let me know if you think this is a terrible idea.

@ryzokuken
Copy link
Contributor

@JemBijoux totally agree with you. This is pretty much exactly what I was looking for, but for core.

AFAIK, IRC is the closest we have to this for core and Slack for CommComm.

@Bamieh
Copy link
Contributor

Bamieh commented Sep 14, 2018

@JemBijoux Many of the commcomm members are already using slack (nodeslacker). The mentorship program is also using that workplace on slack as a primary channel for communication. We chose this channel (although non-official) because it has many members already and lead by awesome people.

@Bamieh
Copy link
Contributor

Bamieh commented Sep 14, 2018

Sorry for spamming the issue, but this has been discussed extensively over at mentorship because it was a VERY critical issue to the success of the program. After many back and forth with the mentorship team and the commcomm, we decided to go with slack (link to issue here nodejs/mentorship#11). Note that discord was also a good candidate but its more oriented towards gaming communities, and slack is a little smoother UX wise IMO.

@Trott
Copy link
Member

Trott commented Jul 8, 2019

It seems like perhaps this should be closed. Feel free to re-open (or leave a comment requesting that it be re-opened) if you disagree. I'm just tidying up and not acting on a super-strong opinion or anything like that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests