Skip to content

proposal: using a central, searchable and open hub (matrix / mattermost) to use as a chat for Gno development #38

Open
@thehowl

Description

@thehowl

Hey, this is something I've discussed a few times internally with @moul and @waymobetta but I realised currently exists only as a brief mention on #21 . I think it's time to make an issue because I'd like to kick-start this discussion, decide if this is a good idea or settle on a better approach, and get going on making this change because I'm tired of what we currently have.

Basically, we currently have our communication channels scattered in a few places:

  • Internally, we have a slack channel, #gno-core-tech, formed by the team members.
    • Admittedly, though, this is not much useful as an informational channel, but rather as a banter-channel or for communications with other AiB teams. Part of the reason for this is Manfred and Jae's dislike for Slack, which I share, and for the security-focus of Signal (AFAIK).
  • Then, still internally, we have a Signal group Gno-Tech-Staff, which is the employee-specific discussion channel. This is however less useful in comparison to...
  • The Gno-Core-Contribs signal group, which contains the core staff together with all of the core contributors.
  • Finally, we have a few scattered channels on our Discord which were previously used for development and support: gnolang-dev, gnoland-core, gnolang-support.
  • Except... we also have our reddit, where we're "redirecting" our users from GitHub discussions, and we have half-mentioned the idea of starting to use it for public, searchable discussions and support questions on Gno.

In order to attempt to tackle this, I've come up with a first proposal, which you can find by expanding the details box below. There is an updated proposal discussed with the team which incorporates various feedback further down this conversation which you should probably read instead.

Original proposal

I think this steers away from what I think are our actual requirements for communications:

  1. To have basically a three-layered system, with one obvious communication channel for each
    1. Large community: this is comprised of everyone who has any kind of interest in Gno, but may not be necessarily interested or capable of taking part in its active development.
    2. Builders: partners and individual external contributors who do have some kind of interest to take part in discussions, and should have a way to fast-track discussions to get help when starting out on their journey and discovering how Gno works.
    3. Employees: AiB/NewTendermint employees who make up the Gno Core Team. This communication channel would be mainly to organise internal meetings, and any conversation which doesn't particularly concern builders as a whole (for instance, the Rouen retreat).
  2. To have our community and builders discussions public and searchable, and if deemed useful the employee discussions too (for the purpose of full and complete transparency). -- per Centralizing Logs and Meeting Transcriptions for Easier Searchability #21
  3. To be able to make it reasonably effortless for people interested in building to join our builders communication channel, without stumbling on a large number of half-dead places while getting there.

As such, I propose the following solution:

  • Creating a self-hosted Mattermost server. Mattermost has mobile and desktop apps, I've used it before and it worked great.
    • This allows us to seamlessly create a public, searchable and indexable log of our conversations.
    • I propose build.gno.land for the domain :) but otherwise, chat.gno.land works too.
  • Access to the mattermost server is granted to anyone by linking a GitHub account more than 1mo old.
    • The 1mo requirement is added to try and avoid people creating ad-hoc GitHub accounts to join the Mattermost chat, and to try to filter for builders.
  • The mattermost server has three channels:
    • #general - equivalent of the current Gno-Core-Contribs
    • #tech-staff - equivalent of Gno-Tech-Staff and Slack's #gno-core-tech
    • #banter (random, watercooler, ...) - a muted-by-default channel where everyone can go and post and have non-gno related discussions.
    • More channels may be added in the future if we deem them useful. For instance, I envision other channels we currently have on slack through slack connect being brought over to Mattermost, such as gnoland-onbloc and gnoland-teritori
  • And finally, we have bridges. This is important to keep in touch with other stakeholders and the larger community.
    • Matterbridge can provide most of the bridging functionality we need.
    • Slack's current #gno-core-tech is two-way bridged over to Mattermost's #tech-staff.
    • Mattermost's #general is bridged in a one-way bridge to Discord's #gno-builders. On the Discord channel topic, we point to instructions to join through mattermost or IRC.
    • Mattermost's #general is bridged in a two-way bridge to an IRC channel to be created on libera.chat. The reason why I think it makes sense to have an IRC bridge like this is that many developers (especially old-school ones) use IRC for FOSS development communications. Knowing how to use IRC is also to me a reasonable barrier for entry which can be used in place of a 1mo-old GitHub account.

DM's and small group chats can as always be where the participants deem them most useful to be. For instance, Mattermost does not guarantee the same amount of security as a platform like Signal does. However, I think self-hosting our communications is a crucial step towards being able to have public logs without causing more headaches than we need.

cc/ @jaekwon @albttx @leohhhn @Ticojohnny

Please comment on this issue with feedback/criticism and other alternative solutions we can explore. I'd like to converge on this issue as part of our Rouen retreat.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

Status

Backlog

Status

🤔 Thinking

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions