Friday, March 19, 2021

Building OSS infrastructure to help improve community management, communication, organization and ultimately contributions

I've started working on a series of systems to improve communication and organization infrastructure for the Nano community and ecosystem.

Primary Goals

  • Help new members discover and understand existing ideas, discussions in an easily consumable manner (short descriptions, status, counter-arguements, etc) and guide them to focused discussions.
  • Help existing members point new members to old ideas, discussions, conclusions, etc
  • Help new member onboarding, especially contributions from developers

Secondary Goals

  • Serve as a chronicle of notable events, discussions, comments, ideas, etc
  • Keep the community at large informed — serve as a centralized place to easily and quickly track an open and distributed project
  • Measure community support for or against ideas by nano account based voting

Design Principles

  • Open
  • Distributed — operate indefinitely without reliance on centralized elements (servers, people, etc)

Systems

  • Nano Improvement Proposals (i.e. RFC, BIPs, EIPs, etc )
  • Nano Wiki (more info on design/organization to come) — main site, acting as an overlay over the existing ecosystem
  • Nano Based Accounts & Voting
  • Auto & Manual Post Chronicler (automatic importing, organization, etc)
    • Forumn
    • Discord
    • Reddit
    • Twitter

The goal of these systems is to enable a large number of loosely affiliated volunteers to collaborate as efficiently as possible

  • by minimizing existing members having to engage in old discussions with new members who are trying to get up to speed
  • by allowing new members to know the status of certain ideas and identify areas where they could help

Develop Workflows & Contribution Guides

The goal is to allow for an idea to be efficiently vetted by the community at large before it boils down to focused discussions and gets the attention of contributors and core contributors. This applies to ideas and contributions to the entire nano ecosystem and not just the core repo.

Example workflow for ideas:

Check the site to see if it exists. If it exists, it will point you to focused discussions on the idea (forum, discord channel, reddit). If it doesn't, you should vet the idea on discord, or jump right to a reddit post (or perhaps a forum post) — post the created forum/reddit post on the appropriate discord. Forum posts should be for focused discussions. If the idea survives these various steps and pertains to the core repo, it can be formalized into an improvement proposal.

Examples workflow for contributions:

Check the site to find an idea you want to work on and/or is not being worked on. Check in with the connected discord channel to see if anyone is working on it and let people know you are working on it. Share updates on reddit or the forum.

Site/System Design

I plan on designing the site entirely on top of IPFS, as that will allow for any one person to host all of the content, the rest will be on github. I'm still finializing a few elements, mostly how to structure the data, but will follow up shortly with some code on github and the initial design as a starting point for discussion.

Nano Based Accounts & Voting

You do not need an account but it will be advised as it will be used to prevent spam on the site. An account is simply a keypair. The site will generate one for you and you will sign the publickey with your nano private key (can be done on nault). This methods allows for voting tied to nano accounts without increasing the risk/attack surface for your nano private key.

Final Thoughts

We all know this is needed as I've seen comments about lack of communication from the NF (despite this being an OSS project), people wanting to contribute but not knowing where to start or what to work on, and new members unaware of existing ideas/discussions (i.e. account minimums). Thus, please focus your comments on how this is a bad idea, or how it can be improved. Also, suggestions for a name for the site/domain would be appreciated.

We don't need to reinvent the wheel on workflows and organization so please feel free to share existing designs for other open source communities and projects. I'm pulling a lot from my past experiences with Bitcoin, Ethereum and IPFS. My main focus is building these existing systems/designs but in a fully distributed and resilient manner. I'm all too aware of projects being abandoned when a maintainer decides to abandon it.


No comments:

Post a Comment