nodejs / admin

Administrative space for policies of the TSC
148 stars 129 forks source link

Creation of an official Discord server for the Node.js project #872

Open ovflowd opened 1 month ago

ovflowd commented 1 month ago

Discord is a massive hub for collaboration, communication, and projects to reach their audiences.

It's becoming trendy for massive open-source projects and tech companies to have Discord Servers (ie, Cloudflare, Sentry, GitHub Education, etc.)

The upcoming Ambassador Program gives us even more reason for allowing users to interact with Node.js ambassadors and take a closer part of the community.

The goals of such a Discord server are simple:

Running a Discord server could be better for our community and our ability to reach the outer layers of our community.

targos commented 1 month ago

Previous discussion: https://github.com/nodejs/admin/issues/53

ovflowd commented 1 month ago

Previous discussion: #53

Cool. Also the state of Discord and its features today vs 2018 has been very different.

RedYetiDev commented 1 month ago

I'm +1 on the incorperation of a Discord server, as like you mentioned, it gives the community a quicker way to connect, as not everyone will want to make new Slack account / download an IRC client

Not to rush things, but if we were to do this, we should probably reach out to Discord's legal team and get https://discord.com/invite/nodejs

richardlau commented 1 month ago

FWIW I'd be unlikely to move over to Discord -- it would be an additional communication platform and I wouldn't create a new account there (or anywhere else) just for Node.js.

ovflowd commented 1 month ago

FWIW I'd be unlikely to move over to Discord -- it would be an additional communication platform and I wouldn't create a new account there (or anywhere else) just for Node.js.

No one is forcing you there πŸ™; You don't need to be there if you don't want to, and I agree yet another platform, but that would be for the community πŸ‘€

We definitely don't need all collaborators to be there. And to be honest this could be a pilot program to see how it succeeds.

richardlau commented 1 month ago

The third "goal" mentions potentially shutting down Slack, or is that specifically the non-OpenJS Foundation one?

ovflowd commented 1 month ago

The third "goal" mentions potentially shutting down Slack, or is that specifically the non-OpenJS Foundation one?

It was an idea to slowly phase out the "Node Slackers" slack server that Jordan maintains by himself, but he said that he is not interested in shutting in down so that's fine 🀷

But we would be able to let the OppenJS Foundation Slack at least for Node.js to be more for collaborators and contributors and less for asking support/help. Which it is also not used much for that, but still some people ask support there.

GeoffreyBooth commented 1 month ago

This doesn't sound like an improvement to me. We already have the official Slack workspace, and GitHub of course. Adding another official channel means yet another place to check.

mcollina commented 1 month ago

Growing a community on Discord is useful. The official OpenJS slack is for our communication, while Discord would be for end users.

I think it would become quite popular, too. It's also a great marketing channel, and what I would set up today instead of the unofficial Node.js slack.

The fundamental question is who will moderate this and provide Node.js knowledge to the users.

targos commented 1 month ago

I agree that growing a community is useful. There are probably already existing communities, though, so we would kind of be in competition with them. As a user, if I found and invested myself in an existing Node.js-focused Discord community, with well-defined rules and many moderators and helpers, I would need a very convincing argument to switch to an "official" one (what does the official stamp change?).

ovflowd commented 1 month ago

This doesn't sound like an improvement to me. We already have the official Slack workspace, and GitHub of course. Adding another official channel means yet another place to check.

Each one has different roles. It's agreeable that we see users asking/seeking help on the help repository and other platforms, including OpenJS Slack. The idea is that people will naturally switch over to Discord over time. It's ridiculous how popular Discord is nowadays for hosting tech communities.

I still believe many users would use our help repository, but I can see many of them going over Discord.

ovflowd commented 1 month ago

The fundamental question is who will moderate this and provide Node.js knowledge to the users.

I don't mind if we ask for volunteers to set it up (I wouldn't mind at all). Still, ultimately, I believe the Moderation team would be responsible for moderating it + some volunteers. We can draft something more concrete. There's some energy lift in setting it up.

ovflowd commented 1 month ago

As a user, if I found and invested myself in an existing Node.js-focused Discord community, with well-defined rules and many moderators and helpers, I would need a very convincing argument to switch to an "official" one (what does the official stamp change?).

For better or for worse, I haven't found any big community. That said, smaller-ish multi-purpose communities might focus on Node or more considerable general-purpose programming Discord servers with channels for Node.js. (The only community that comes to mind is Nodeiflux. Which has 14K members)

The main difference between the official one and the other is that the former is an official community consisting of collaborators, ambassadors, streams, announcements, etc. People tend to go to official communities because they are official.

Since there's no official JavaScript Discord server, I can see people with JavaScript interests going over our Discord. After all, it is also the most popular language (JavaScript) among teenagers, young adults, and even folks who code Discord Bots 🀷

ovflowd commented 1 month ago

There are also benefits in being an official community, as Discord gives some perks to Community servers.

RomainLanz commented 1 month ago

I am all in for that!

tpoisseau commented 1 month ago

As an early adopter of Discord, I appreciate its use for small communities. However, I'm wary of the future of the platform, which is funded by venture capitalists. We're starting to see more and more attempts at return on investment at the expense of the user experience. Even if it's extremely popular today, I wonder about its long-term future.

As mentioned by @targos, there is already a well-structured Node.js Discord server, perhaps it would be interesting to discuss with them how to define it as an official Discord in order to avoid creating a new community, dividing instead of bringing together.

To prepare for the creation or investment of a large community, I think it's very important to think seriously about moderation (who's in charge, the time that can be allocated to it, the rules). You also need to define the aims and intentions of such a community, whether it's to :

How to ensure that the community is attractive and engaged, so that what happens there can be followed without being drowned out. Managing a large community is an important and time-consuming task. Are some Node.js staff willing and able to get involved?

ovflowd commented 1 month ago

As mentioned by @targos, there is already a well-structured Node.js Discord server, perhaps it would be interesting to discuss with them how to define it as an official Discord in order to avoid creating a new community, dividing instead of bringing together.

That is also a valid alternative :) but we need to claim ownership of that server. I'm all fine with keeping the current people managing to remain there, but there would need to be changes πŸ˜…

(Possibly from channel structure, branding, roles, and all sort of other things; But I doubt that coordinating/working together with the existing Nodeiflux community would be impossible)

ovflowd commented 1 month ago

To prepare for the creation or investment of a large community, I think it's very important to think seriously about moderation (who's in charge, the time that can be allocated to it, the rules). You also need to define the aims and intentions of such a community, whether it's to :

We have experience managing communities. (Not to mention we do have members of the Node.js community with real community management experience, myself included)

We understand that this is something complex and that requires care/attention, so we wouldn't do this on a whim.

Managing a large community is an important and time-consuming task. Are some Node.js staff willing and able to get involved?

We don't have Staff. But we would have volunteers to manage it.

You also need to define the aims and intentions of such a community, whether it's to :

This is all written on my opening post πŸ‘€ and I agree with all these items.

tpoisseau commented 1 month ago

I may have forgotten this part while writing my post, sorry πŸ˜….

By β€˜Staff’, I didn't mean employees but rather something like active, permanent members who take care of managing the Node.js project. I'm not entirely familiar with the governance of the project, but I suppose such people exist.

RedYetiDev commented 1 month ago

I'm not entirely familiar with the governance of the project, but I suppose such people exist.

FWIW https://github.com/nodejs/node/blob/main/GOVERNANCE.md

ovflowd commented 4 weeks ago

Heyo πŸ‘‹ I've had a nice chat with @vcarl which is the admin of the Nodeiflux Discord Server, and we had some really cool collaboration happening there ✨

I'd say they are inclined into collaborating with us to transform their server into Node's official Discord Server, but the caveat is they definitely need to be part of the process (which I 100% agree, otherwise it'd sound as a hostile takeover)

I believe there's lot we can gain and experiences that can be shared on how we can shape such a community into a successful place for Node's community :)

Since this requires TSC input, I want a vote for:

Nothing must get released/published without the explicit approval of the TSC and explicit πŸ‘ of the Foundation regarding our being πŸ‘ in legal, branding, and marketing matters.

Please react with πŸ‘ or πŸ‘Ž (and if possible, why if a πŸ‘Ž so we can address your concerns) regarding whether you're in favor or against the proposal above.

cc @nodejs/tsc (I'm also adding to the TSC agenda for visibility and if discussions need to be done)

benjamingr commented 4 weeks ago

@ovflowd I like your idea of endorsing/helping existing communities and helping them grow. I'm wondering if we can keep the current "management" and let them moderate and be involved in a less direct capacity e.g.:

We can call it "officially endorsed but not official" and link to it in the website or something similar.

This vote also means the upcoming work should respect and abide by the OpenJS Foundation's CoC / Node.js CoC and governance model.

My primary concern with an official Node.js discord server is (as usual) this . The OpenJS slack server is currently in a pretty bad state IMO and for me to be comfortable with Discord I would need (several) people to be willing to moderate it consistently.

I don't mind if we ask for volunteers to set it up (I wouldn't mind at all). Still, ultimately, I believe the Moderation team would be responsible for moderating it + some volunteers. We can draft something more concrete. There's some energy lift in setting it up.

The moderation team is ~4-5 active people, even if we get to 10 active people I'm not sure most of them would be interested or have capacity in moderating another space but I'm not sure since discussions about slack and other spaces were a long while ago.

That said, if the moderation team agrees I think it would be an effective body in enforcing the CoC.

ovflowd commented 4 weeks ago

I'm wondering if we can keep the current "management" and let them moderate and be involved in a less direct capacity e.g.:

That's definitely what I was going after. But we should also allow the Node Moderation team to have elevated privileges there so that we can enforce moderation in case we need to.

Doing AMAs on endorsed/supported community servers. Giving official announcements on new features. Mentorship hours for new/junior developers and developers from underprivileged communities. Code & Learns (like mentorship but for Node.js core contribution rather than general node help).

I love this!

My primary concern with an official Node.js discord server is (as usual) this . The OpenJS slack server is currently in a pretty bad state IMO and for me to be comfortable with Discord I would need (several) people to be willing to moderate it consistently.

I believe Nodeiflux had a great track of moderating their community well. I believe a pilot can be done. I also believe we can have volunteers to moderate there, which will have moderating powers there and only there.

The moderation team is ~4-5 active people, even if we get to 10 active people I'm not sure most of them would be interested or have capacity in moderating another space but I'm not sure since discussions about slack and other spaces were a long while ago.

I hear you, and I could help being that bridge. I'm pretty sure @vcarl would do their best to enforce our CoC policy there if they agree with adopting our CoC policy, which is the Contributor Covenant 2.0. As an official server, it also means it lies under the Foundation, but I believe we can delegate moderation to their team. We do not moderate the OpenJS Slack, although it is an official Node.js space.

The biggest +1 of having it as an official server is Discord itself can promote and showcase the official community server, and by being verified, there are extra perks. + I'm pretty sure more people will feel compelled to join it as an official.

benjamingr commented 4 weeks ago

We do not moderate the OpenJS Slack, although it is an official Node.js space.

Not that I'm aware (it being an official space)

ovflowd commented 4 weeks ago

We do not moderate the OpenJS Slack, although it is an official Node.js space.

Not that I'm aware (it being an official space)

πŸ€”

tniessen commented 4 weeks ago

With the Discord server, we could officially shut down both our IRC nodes

Where's this implication coming from? Is the assumption that users who currently use IRC would definitely want to migrate to Discord? Are we maintaining IRC right now because we don't have a Discord community?

It also allows the OpenJS Foundation Slack to focus on OpenJS-related discussions and communication for existing Collaborators (more internal conversation rather than community-facing)

FWIW, monitoring the various GitHub repositories and the OpenJS Slack is already way more than I, and perhaps most collaborators, can handle. If the goal is to shift some traffic from OpenJS Slack to Discord, that's fine by me, but if it doesn't fully replace an existing channel, I wouldn't expect any collaborator to engage with and/or monitor yet another channel.

The biggest +1 of having it as an official server is Discord itself can promote and showcase the official community server, and by being verified, there are extra perks.

If the main aspect of having an "official" (or "officially endorsed but not official") server is just labeling it as such while not requiring us collaborators to ever engage there, I don't see a problem with this as long as those acting upon this initiative don't misrepresent what the Discord server is and, most importantly, moderate interactions there appropriately. As @benjamingr hinted, we certainly can't expect the existing moderation team to take on another space.

ovflowd commented 4 weeks ago

Where's this implication coming from? Is the assumption that users who currently use IRC would definitely want to migrate to Discord? Are we maintaining IRC right now because we don't have a Discord community?

We don't maintain anything, we don't have an official IRC server. It's not an implication, just a suggestion based on the assumption that there are fewer users on IRC.

FWIW, monitoring the various GitHub repositories and the OpenJS Slack is already way more than I, and perhaps most collaborators, can handle. If the goal is to shift some traffic from OpenJS Slack to Discord, that's fine by me, but if it doesn't fully replace an existing channel, I wouldn't expect any collaborator to engage with and/or monitor yet another channel.

My assumption is that you shouldn't monitor Discord. It's a place to hang out. And I'd say we would redirect community users to Discord instead of Slack.

If the main aspect of having an "official" (or "officially endorsed but not official") server is just labeling it as such while not requiring us collaborators to ever engage there, I don't see a problem with this as long as those acting upon this initiative don't misrepresent what the Discord server is and, most importantly, moderate interactions there appropriately. As @benjamingr hinted, we certainly can't expect the existing moderation team to take on another space.

I'm 100% fine with that.

tniessen commented 4 weeks ago

Sounds good, thank you for clarifying @ovflowd :)

ovflowd commented 4 weeks ago

Sounds good, thank you for clarifying @ovflowd :)

Of course! And sorry if my replies aren't the best. But I want to make sure I'mn very flexible to accommodate the needs of the TSC, and I bet we can find something that is close-to-ideal for all parties.

vcarl commented 3 weeks ago

Hey thanks for the ping, very much enjoyed our chat @ovflowd! Just catching up on the convo, I'll chime in a bit as a potential outside collaborator in executing this πŸ˜„

To introduce myself, I'm Carl (usually vcarl on the internet) :wave: I've been helping oversee Reactiflux, currently hitting ~60-70k visitors/mo, since 2016 or so. I spun up Nodeiflux as a companion community for the JS backend around 2018 (remember when there weren't other runtimes??), and have kept it humming more or less solo since then. It's never been a major focus, but it's always had consistent activity so I never pulled the plug either.

I'd say they are inclined into collaborating with us to transform their server[…], but the caveat is they definitely need to be part of the process

πŸ’―β€οΈ Happy to be a collaborator here, my ask would be to take my ~8 years of overseeing online communities as a valuable perspective πŸ™‚ I've taken my role in communities seriously, which has meant encountering a long list of unusually common scenarios.

I'm wondering if we can keep the current "management" and let them moderate and be involved in a less direct capacity

Happy to be a primary point of contact, with moderation of the space happening on my end and by people I oversee but accountable to the Node org in some way. I was a significant driver of recruiting and establishing moderation norms in Reactiflux, I'm quite comfortable managing a growing community on my own and would find some added support structures for branding, news, and events to be super helpful. My concern would be with onerous bureaucracy and reporting, but that's certainly not inevitable.

we should also allow the Node Moderation team to have elevated privileges there so that we can enforce moderation in case we need to. "officially endorsed but not official" As benjamingr hinted, we certainly can't expect the existing moderation team to take on another space.

Details here are definitely workable imo. We have an existing admin/moderator role system, and could very easily add an elevated moderator role for someone in an accountability/oversight role from the Node org.

I'm pretty sure @vcarl would do their best to enforce our CoC policy there if they agree with adopting our CoC policy, which is the Contributor Covenant 2.0.

We based our current code of conduct off the Rust CoC, which I've absolutely done my best to enforce. The realities of an online chat system are that mitigating harm is much harder to do than enforce the CoC, but I've done what I can. I also have a collaborator in Europe I trust to help from another timezone, and a number of helpful regulars who reliably draw my attention to the most important matters and react appropriately in the meantime. It's been a small but functional ecosystem for a few years now.

mcollina commented 3 weeks ago

I'm generically in favor of this proposal as long as it does not strain the current moderation team and a few people from us get admin rights.

From a practical/admin perspective we would need to charter a working group and give them autonomy in how they run the Discord server. That repo/wg would be the point of contact with the rest of the TSC.

Ultimately, this would be that the TSC is responsible for the space.

tniessen commented 3 weeks ago

Ultimately, this would be that the TSC is responsible for the space.

What does "responsible for the space" mean? Is this another instance of "the TSC steps in as the last resort?"

mcollina commented 3 weeks ago

Is this another instance of "the TSC steps in as the last resort?"

Yes, it has to be. And on top of the Node.js TSC, the OpenJS CPC too.

ovflowd commented 2 weeks ago

I believe we have an initial agreement here. Can we get this discussed by the TSC?

Also cc @mhdawson since I wanted to involve the ambassador initiative in this

mhdawson commented 2 weeks ago

@ovflowd -> since I wanted to involve the ambassador initiative in this. Do you want to get together or did you have specific things you wanted to add to the program description in https://github.com/nodejs/node/blob/main/doc/contributing/advocacy-ambasador-program.md ?

mhdawson commented 2 weeks ago

@ovflowd do you want to come to the TSC meeting to present/discuss the initial agreement? Reading through the thread I can guess what that is but and not 100% sure I would get it right.

ovflowd commented 2 weeks ago

@ovflowd -> since I wanted to involve the ambassador initiative in this. Do you want to get together or did you have specific things you wanted to add to the program description in nodejs/node@main/doc/contributing/advocacy-ambasador-program.md ?

I think the only relevant pieces are that Ambassadors would have a role on the Discord, be there at their criteria/convenience and be able to host streams + promote their materials if wanted. Definitely something we can fine tune :) (Im just throwing some random ideas)

ovflowd commented 2 weeks ago

@ovflowd do you want to come to the TSC meeting to present/discuss the initial agreement? Reading through the thread I can guess what that is but and not 100% sure I would get it right.

Sure, Id be more than happy to jump at the next TSC meeting to chatter about this.

mhdawson commented 2 weeks ago

@ovflowd sounds good.

tniessen commented 2 weeks ago

@ovflowd We briefly discussed during the TSC meeting.

The biggest +1 of having it as an official server is Discord itself can promote and showcase the official community server, and by being verified, there are extra perks.

Our understanding is that marking the existing server as "official" would primarily help the existing Discord server in the ways you described and perhaps make it easier for people to find a Node.js-related Discord community. Secondarily, it would allow us to share announcements in some official capacity (as opposed to engaging with the Discord community like before). This sounds like it's good for the community overall, and as long as this doesn't require any active involvement of Node.js personnel, there were no major concerns.

We had one small (and hopefully, purely hypothetical) concern. Is this marking it as official something that can be undone, if necessary? While I am sure this won't happen, if the Discord server does not end up living up to our community standards, would we be able to sever ties without forcing the server to shut down entirely?

ovflowd commented 2 weeks ago

We had one small (and hopefully, purely hypothetical) concern. Is this marking it as official something that can be undone, if necessary? While I am sure this won't happen, if the Discord server does not end up living up to our community standards, would we be able to sever ties without forcing the server to shut down entirely?

Yes, we can always reach out to Discord support and revoke the verification (server verification, which marks it as official)

RedYetiDev commented 2 weeks ago

Great! I'm glad this is coming together!

I look forward to the beginning of this server!

ovflowd commented 2 weeks ago

Alrighty, @nodejs/tsc let me know if we can start pushing this forward :)

aduh95 commented 2 weeks ago

@ovflowd you need to say something like "if there are no remaining concerns, I'll go ahead and do such and such on such or such day" if you want this to move forward.

ovflowd commented 2 weeks ago

@ovflowd you need to say something like "if there are no remaining concerns, I'll go ahead and do such and such on such or such day" if you want this to move forward.

Oh yeah, let me rephrase:

If there are no remaining concerns, I'll proceed with my plan from here: https://github.com/nodejs/admin/issues/872#issuecomment-2156422974

More specifically:

There's nothing set in stone yet; hence, I will report back on updates and if other things are needed from the TSC side, and how things progress.

GeoffreyBooth commented 2 weeks ago

If there are no remaining concerns

I don’t think the concerns from https://github.com/nodejs/admin/issues/872#issuecomment-2156428381 have been addressed yet? Namely, what the plan is for moderation of the new space and whether @nodejs/moderation has the capacity to take this on.

bmuenzenmeyer commented 2 weeks ago

That said, if the moderation team agrees I think it would be an effective body in enforcing the CoC.

I don’t think the concerns from #872 (comment) have been addressed yet? Namely, what the plan is for moderation of the new space and whether @nodejs/moderation has the capacity to take this on.

As a new member of the moderation team, I doubt I'll have dedicated time to monitor a Discord.

ovflowd commented 2 weeks ago

If there are no remaining concerns

I don’t think the concerns from #872 (comment) have been addressed yet? Namely, what the plan is for moderation of the new space and whether @nodejs/moderation has the capacity to take this on.

We did address those concerns, yes. Pretty much the plan is (as stated in previous comments):

(Some of the items above I just came up with as ideas)

RedYetiDev commented 1 week ago

Hi everyone,

I have a few clarifying questions:

ovflowd commented 1 week ago

Additionally, if the project starts using Discord for user questions, I believe the triage team should be a part of answering them. While we don't need special permissions, I think it would be helpful to have the same recognition as GitHub Member badge shows. Demonstrating credibility is crucial for effectively resolving issues, and this recognition could aid in resolving issues more efficiently and accurately.

I believe Node.js Collaborators could be given a "Node.js Collaborator" role and triagers a "Node.js Triager" role. This was already something I wanted to do.

Additionally, if the project starts using Discord for user questions, I believe the triage team should be a part of answering them. While we don't need special permissions, I think it would be helpful to have the same recognition as GitHub Member badge shows. Demonstrating credibility is crucial for effectively resolving issues, and this recognition could aid in resolving issues more efficiently and accurately.

I'm not sure about that. Although I believe we could disable GitHub Discussions as they are rarely monitored/viewed and moderated anyways. Discord has a better platform for making Discussion/Help threads. cc @nodejs/tsc