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

RFC: Standardize on one chat platform #2440

Closed
dstaley opened this issue Feb 28, 2020 · 8 comments
Closed

RFC: Standardize on one chat platform #2440

dstaley opened this issue Feb 28, 2020 · 8 comments

Comments

@dstaley
Copy link
Member

dstaley commented Feb 28, 2020

Currently, the Kinto project uses both Slack and IRC as its live chat platforms. I propose that we migrate to one single platform, and use that as the primary provider for chat. Once selected, we should add a link to the selected platform to all the repos' README files in addition to making it appear prominently on the website.

Some Stats

Just to set a baseline, here's some stats about our Slack and IRC usage over the past 90 days:

  • Slack: 6 users, 25 messages
  • IRC: 1 user, 4 messages

So, as you can see, we're not dealing with a great volume of messages. However, what's interesting is that there's been more activity and messages on Slack versus IRC. I think this is a result of the barrier-to-entry that IRC has. Even with the sign-up barrier of Slack, it still beats out IRC in terms of accessibility.

The Ideal Solution

A great candidate would:

  1. Support Easy sign in: Users should be able to authenticate with an account they already have, making the barrier to entry as low as possible.
  2. Provide Mobile access: Users should be able to easily access the community on a mobile device.
  3. Require little to no maintenance: We shouldn't need to maintain a server or infrastructure.
  4. Be user friendly: Users without any experience with the platform should still find it easy to use.
  5. Be in use by other communities: The platform should be used by other open-source communities.

In addition to the above, an excellent candidate would:

  1. Provide mobile web access: Users on mobile devices should be able to access the community through a mobile browser without the use of a native app.
  2. Be indexed by search engines: The content of the community should be indexed by search engines to surface answers to questions.
  3. Be development-community focused: The platform should cater to the needs of developers rather than a general-purpose audience.

Candidates

Slack

Advantages

  1. We're already using it, so there'd be no required setup.
  2. Users who use Slack for work/other communities will have quick access to the community through their existing Slack app.
  3. Slack is incredibly user-friendly.
  4. Slack is highly-unlikely to go away in the near future.

Disadvantages

  1. Slack requires the user to create an account. This requires the user to setup a password, get a verification email, etc. Compared to other services that offer SSO, it's a bit difficult to get up and running with Slack.
  2. Requires running the Slack inviter which has gone down in the past. (Technically we can generate a shared invite link that will be valid for 2000 invites, so this point is likely not relevant).
  3. Has an incomplete search history since we're using a free plan.
  4. Isn't indexed by Google, so searching for Kinto-related queries will not surface Slack content.
  5. Mobile access requires their native app.
  6. General-purpose focused.

Gitter

Advantages

  1. Supports SSO with GitHub, Gitlab, and Twitter.
  2. Suggested as the main chat platform for well-known communities like Webpack, Angular, Express, ESLint, Mocha, Rollup, Deno, Dart, .NET, ASP.NET, and Xamarin.
  3. Provides a nifty integration with GitHub that would display all activity across the organization in the sidebar.
  4. Is indexed by search engines.
  5. Has decent desktop applications, and a pretty good mobile-optimized website.
  6. Supports a robust API, enabling both advanced integrations along with third-party client development.
  7. Owned by Gitlab, so it has a decent amount of revenue and engineering behind it.
  8. Development-community focused.

Disadvantages

  1. Doesn't support a non-SSO login, so users without GitHub, Gitlab, or Twitter accounts are unable to login.
  2. Unlikely that users are idling in Gitter unless they're a member of a community that also uses Gitter.
  3. Doesn't seem to be a high priority for Gitlab, so its future is a bit uncertain.

Discord

Advantages

  1. Suggested as the main chat platform for well-known communities like Vue, TypeScript, Gatsby, and Rust,
  2. Many users likely already have an account, making logging in and keeping an eye on the community very easy.
  3. Has very good apps on all platforms.
  4. Highly unlikely to stop existing in the near future.

Disadvantages

  1. Not indexed by search engines.
  2. Mobile access requires their native app.
  3. Many users would prefer to keep their personal and professional accounts separate, and Discord makes it basically against the terms of service to do so (and impossible on mobile).
  4. General-purpose focused.

Matrix

Advantages

  1. Supports a robust API, enabling both advanced integrations along with third-party client development.
  2. Endorsed by Mozilla.
  3. Open-source and federated, so unlikely to stop existing in some form or another anytime soon.

Disadvantages

  1. The primary matrix.org server doesn't support SSO.
  2. Aside from Mozilla using it across the organization, there's hardly any open-source projects using Matrix as their primary chat platform.
  3. Doesn't support mobile access outside of a native app.
  4. General-purpose focused.

Spectrum

Advantages

  1. Supports SSO with Twitter, Facebook, Google, and GitHub along with a traditional email/password login.
  2. Supports both chat and thread-based discussions.
  3. Owned by GitHub, so it has a decent amount of revenue and engineering behind it.
  4. Development-community focused.
  5. Has a fully-featured responsive website that works well on mobile.

Disadvantages

  1. Doesn't have an app (except on macOS).
  2. GitHub seems to be incorporating its features into the main GitHub platform, so it might not exist in the near future.
  3. Seems to prioritize threads versus live chat.

Selection Process

Due to the low volume of messages, it's unlikely that we'd be able to run a useful-enough experiment with each platform. I think the best path forward would be to discuss our preferences here, and hopefully come to a consensus organically. As new points are made, I'm happy to keep this issue up to date so that it reflects the most up-to-date preferences of the community.

I'm not sure what a good selection process would look like, so I'd like to just get the ball rolling by getting thoughts from @leplatrem , @Natim, and @glasserc, which represent the main contributors over the past few months. If a clear winner doesn't emerge after hearing from y'all then we can figure out a more specific selection process.

@dstaley
Copy link
Member Author

dstaley commented Feb 28, 2020

Due to its large community presence, and the fact it checks off most of the selection criteria, my vote would be for Gitter. I'm particularly fond of the fact that it supports SSO with GitHub and has a decent mobile interface.

@leplatrem
Copy link
Contributor

Awesome Dylan! Thanks for taking the time to address this issue...

I'd be happy to ditch Slack and IRC :)

Since I personally have very limited time to dedicate to synchronous chatting, I'd be in favor of anything that's well integrated within Github. So my vote would go to Spectrum or Gitter ;)

@Natim
Copy link
Member

Natim commented Feb 28, 2020

Same for me. 👍 for Gitter

@glasserc
Copy link
Contributor

glasserc commented Mar 2, 2020

I like Gitter, but I think the reality of the situation is that nobody is on the chat platforms. Maybe we should bow to that and force everything to go through Github issues or something.

@dstaley
Copy link
Member Author

dstaley commented Mar 3, 2020

Yeah, that's definitely a tough issue to solve without team buy-in, which is why I hope that standardizing on one platform will encourage us all to hang out there!

That being said, long term, I think the solution would be GitHub Discussions. I don't think that will roll out to us anytime soon though :(

I think we've come to a consensus on Gitter, so I'm going to start adding Gitter badges to READMEs and send in a PR to add it to the website.

@leplatrem
Copy link
Contributor

We now use Gitter :)

Thanks Dylan for your efforts ;)

@m4rrc0
Copy link

m4rrc0 commented Jul 2, 2020

I won't be the only one landing here and looking for the link so here it is: https://gitter.im/Kinto/kinto

Also, the docs should be updated over there: https://docs.kinto-storage.org/en/latest/community.html
(Just trying out Kinto so not ready to make a PR, sorry)

@leplatrem
Copy link
Contributor

Thanks for the feedback! I opened #2544

leplatrem added a commit that referenced this issue Jul 3, 2020
Update chat info in community docs (ref #2440)
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

5 participants