Most community platforms that aspiring community leaders must choose from as infrastructure to grow and nurture communities are based around centralized tech. It's time we gave community leaders a decentralized platform option.
Without sacrificing all the good things that web 2.0 community platforms provide, we can redesign these platforms with decentralization in mind and web 3.0 features that enhance member and leader experience, add automation and coordination, and achieve levels of integrity, community empowerment, inclusivity, and safety that are currently lacking in the platforms community organizers have to choose from.
We do this with blockchain, decentralized storage, and decentralized autonomous organization (DAO) concepts. These are the foundational components we need to build a truly next-generation community platform and user experience...
And the tools are available. NEAR Protocol provides a highly effective, scalable and usable layer 1 blockchain with native account capabilities, Textile.io provides tech that enables CRUD operations and facilitates storage and retrieval on IPFS to mimic the database schemas and storage mechanisms underlying existing community platforms, and Moloch DAOs provide a pathway for automated community interaction and decision making.
Combining these tools gives us the building blocks we can use to build a robust and effective decentralized community platform that community leaders can rely on to grow and coordinate the activities of their organizations.
The Feature Set
What could this community platform evolve into? Let's take a look.
Expand each component below for a description of what it is, why we should build it, and a potential roadmap for bringing it into existence.
People make up communities. If there isn't a way for members of a community to interact, share ideas, meet and build relationships - then there really isn't a community at all. At minimum, the member component should consist of following functionality:
General. A standard feature of all types of community platforms (Tribe, Facebook, Twitter, etc...). 3Box has similar functionality on the Ethereum block chain. Collects and stores user information that can be used to display community specific member profiles.
Aim. To enable collection and display of user information to facilitate community membership and relationship building.
- NEAR contract that associates relative user meta data with a NEAR account name
- should be extremely robust to accommodate any type of community. Ideally there is a way to dynamically add profile fields for community customization.
- the profile schema should be built with Textile ThreadsDB (Hub) to store all the data off chain in IPFS. The contract should associate a member-id with its corresponding threadID to perform necessary CRUD operations.
- should use Textile Buckets to associate media with user profiles (i.e., give each user profile a media library (pictures, video, other)).
- all data must be encrypted and remain in user's custody. Only with permission should the community be able to use their data to aggregate and report community statistics. One way to achieve this is with user and app level threads - maintaining synchronization by adding/deleting content from the app level thread when user chooses to make profile fields public/private. Textile was working on more fine-grain access control, so they may have a better solution than this available now.
- leave it to the platform frontend to handle which profile fields to integrate and how they are displayed in each type of community.
2. Member Directory
General. If a member so chooses, they should be listed in the community directory allowing other people to find, follow, and build relationships with other community members.
Aim. To provide the community with a way to find and connect with other members on the platform.
- frontend queries the profile contract for an up to date list of all member-ids that have public privacy settings
- Information is displayed in cards or list type format
- Includes search functionality to refine the list by various profile fields such as shared interests
- Each member card/overview opens up the member's complete profile
3. Secure Messaging System
General. Community members should be able to initiate and carry on conversations on the platform if they so desire. A secure/encrypted messaging system that is integrated into appropriate aspects of the platform will help facilitate that.
Aim. Implement a secure/encrypted private or group chat/messaging system that allows members to converse with one another.
- should provide familiar chat interface, notifications
- can be built using Textile User Mailboxes which is built with ThreadsDB
Communities may require the ability to coordinate funds and resources. As an example, let's consider how guilds interact in the NEAR Guilds community. Each guild has the option of submitting proposals to the community for funding consideration.
One option to deciding whether to fund the proposal is to have a human committee sit around and discuss each proposal and then arbitrarily or based on some set criteria decide to award the funding from the resource pool.
A better option considering we are interested in web 3.0 technologies is to provide a module that facilitates coordination and resource allocation through a decentralized autonomous organization (DAO). Moloch could be the answer.
WTF is a Moloch? Moloch is a simple, secure, and extensible DAO framework on Ethereum and XDai networks that allows members to raise and coordinate funds and resources. And it's perfect for what we want in our community platform.
Aim. To integrate Moloch functionality into the community platform.
- Replicate or integrate - it's your choice. NEAR is quickly making progress on having the Ethereum Virtual Machine (EVM) run inside a contract on NEAR. If I understand things right, that should allow us to deploy Solidity contracts which would simply mean deploying Moloch as a service to be branded/used with the platform; or
- The other option is to port Moloch from Solidity to Rust or AssemblyScript (Rust is typically recommended for financial applications) and deploy it to NEAR.
- Provide a mechanism to plug a customized DAO component into any community which would probably require some kind of Moloch factory setup.
Communities should be active and vibrant places that people enjoy going to and spending time in. Further, members join communities because they have a shared interest or are passionate about the community's objectives and/or people. Thus, we want to engage them and provide the means for them to contribute content (or relevant community material) and we want to use gamification techniques to drive engagement and retention.
1. Content Management
General. Members should be able to contribute content, comment on other's content.
Aim. To provide a system where members may contribute and interact with content on the platform.
- provide standard content input form that will submit and store information in a Textile ThreadsID collection built on a schema for that specific type of content (i.e., blog post)
- should be WYSIWYG capable with image/video input (integrated with Textile Buckets/system as developed as part of member's media library in Member's Component)
- all data should be stored in IPFS (Textile ThreadsId), putting only key information such as the content id on chain and creating the link
- may want to use a content hash for some type of verification symbol indicating retrieved content from IPFS matches what was stored in the first place
- should have the ability for member to comment on content and start a threaded discussion (i.e., blog comments).
- frontend should display relevant information about the content author
- member should have published/draft options for the content, not making it public until desired. Ideally, more fine-grained access control is available allowing member to share the content with specific members or groups. Similar to what is described in the member component, this can currently be done using user and account level threads with Textile and synchronizing addition/deletion of content in one or both based on a publish flag.
- everything needs to be encrypted (handled by Textile) and member must maintain complete control over their contributions
- ideally there is a way to customize templates of content contributions. For example, community may want to create a template for a specific type of contribution such as a monthly report.
- shareable on traditional platforms for content discovery and marketing purposes
2. Reputation System
General. Thoughtful gamification is a way to improve user engagement and community retention. Trust is also an issue that arises in any type of community where people are coming together and/or welcoming new members. Some way of identifying which members have proven track records of activity, helpfulness, competency, etc... provide a starting point for relationships and trust to emerge.
Aim. Implement a system that tracks engagement and desired competencies/qualifications of members to provide a reputation score that can be used in member leaderboards or as incentives for community contributions.
- create a points schema using Textile ThreadsDB
- attach points as incentives to common uses of the platform - eg. submitting blog post (5 pts), commenting (5 pts), submitting proposal (10 pts), like (1 pt) etc...
- track and report member points on a community leaderboard as indicator of engagement
- implement badges that are awarded for milestones, achievement, and/or automatically via points accumulation
- could possibly look at/build on what sourcecred and 1up are doing
- should be a way for community leaders to customize what points are allocated to, how long the accumulations should be for leaderboard/gamification components (i.e., daily, weekly, monthly, etc...), and what actions in the community should be incentivized
This is envisioned to talk to each of the other components that make up the platform. By identifying the key performance indicators (KPI), measures of effectiveness (MoE), and measures of performance (MoP) inherent in each module, we can collectively report on the current and expected trends affecting the community.
For example, KPI for the member component could include:
- community is growing
- diversity of the community is increasing
Corresponding MoE would be:
- # of new members each minute, day, hour, week
- # of new members that are women, minorities, etc...
Which lets us define MoP with positive performance reflected by:
- increasing trend of new members
- increasing trend of sign-up rate
- increasing diversity trends
Aim. To provide relevant analytics to community leaders that help them grow and nurture their communities as well as inform all stakeholders in/out of the community regarding its health and prospects.
- collaborate with lead working on each of the other components and the platform to ensure KPI, MoE, MoP are defined and relevant information is being exposed for collection. For example - NEAR's guild program coordinator would be very interested in monitoring the Moloch DAO component of their guild communities to see proposals being proposed, how resources/funding is being apportioned, and linking that to the results that funding has enabled.
- implement a polling capability (NEAR's current equivalent of event/emit functions on Ethereum) that constantly scan the relevant info from the other modules. May want to store relevent info in ThreadsDB collection for quicker retrieval/manipulation
- provide a frontend analytics dashboard that intuitively explains what's going on in the community based on the data collected
- consider implementing machine learning to predict emerging trends or classify actions
This speaks to what is possible if we build the community platform to adhere to a specific set of standards (like ERC-20s, NFT standards, etc...). Doing so would allow an aggregation or directory service like coinmarketcap.com to appear, but instead of listing fungible tokens, it would track popularity/use volume of anyone using our community platform standard.
This would serve to provide a constantly up-to-date list of existing communities. That list could be customizable based on fields which would let each community provide a list of potential collaborators/other communities that members could reach out to and expand the influence of both.
Further, because they use the same member component with profile capability, relevant information is readily available for the directory to use to display the list of available communities.
Aim. To enable third-parties or custom directory components to aggregrate and display relevant community data (that has been made public).
- this is probably just a frontend component that pulls information from the chain and displays information about each community
- potentially offers customizability in what types of communities are displayed (indexable/searchable by field)
- provides a way for prospective members to connect with a community
Communities become valuable and that value could be reflected in a community token. Further a community token can be used as currency within the community or as incentive for community work. It lends to branding and brings some character and uniqueness to the community.
Providing access to a token factory contract that allows community leaders to mint and administer a community token that can be traded, bought, sold, and used within the community while building value for the community as a whole adds another dynamic to the community that is inherently web 3.0.
Aim. Allow communities to mint, administer, and use a unique community token.
- can build on work already done (video demo above) - creating fungible tokens on NEAR repo
- should be built on NEP-21 standard to facilitate exchanges, directories, defi, wallets and other things that will eventually emerge like they have on Ethereum to interact with the ERC-20 standard tokens
- could expand to include NFTs in same manner
- possibly provide community membership options for private communities/content (in similar manner to Unlock Protocol on Ethereum)
- implementation of community e-commerce selling community items/resources
- could include a community fundraising aspect
We think it goes without saying that the individual components described here turn into something incredible when mixed/matched to form community platforms that thrill and engage their members.
However, the potential won't be realized without a great UI/UX. Arguably the most important part of this community platform is how all these individual components are tied together into one beautiful, seamlessly integrated, ever evolving and improving system (through the continual optimization of each individual component).
That's not to say we need one specific frontend for all communities and if we did go that route, at minimum it would need to be brandable and customizable for each. Out-of-the-box a standard frontend implemantion should be available.
However, we should also focus on ensuring the relevant end points/data are available from each module so community leaders do not have to rely on the standard frontend and have the option of building unique and community-centric interfaces that suit their specific needs and personalities.
VICTOR HUGO | AUTHOR (1802-1885)
THERE IS ONLY ONE THING STRONGER THAN ALL THE ARMIES IN THE WORLD: AND THAT IS AN IDEA WHOSE TIME HAS COME.
The Future of Community Platforms is Built on NEAR
(and it's closer than you think)
Development of this community platform is already underway and we're leveraging Vital Point Guild and hackathon after hackathon to continue building out its feature set.
The basic prototype/proof of concept integrating NEAR accounts with Textile ThreadsDB was accomplished during the EthGlobal HackFS hackathon (check out the video demo at about 1:00 mark). It's not pretty, but it works.
Next up, we're focused on NEAR's Hack the Rainbow (15-30 Sep 2020) to improve on what's been started. To that end, in conjunction with NEAR and Textile, we're looking to help participants focus their hackathon efforts on the component parts of this platform.