NEAR-DevHub / neardevhub-bos

NEAR DevHub UI hosted on NEAR BOS
https://neardevhub.org
MIT License
24 stars 23 forks source link

[Communities] Ability to discover, create, and edit community #80

Closed ori-near closed 1 year ago

ori-near commented 1 year ago

Problem Currently, only DevDAO developers have the ability to create a new community space using custom hand code, leaving users without the power to discover or create the communities they care about. This creates limitation and hinders the growth of our platform. This ticket introduces a dedicated "All Communities" page that will serve as the main hub for all communities. It will also offer the ability for users to create and edit new communities.

User Stories

Acceptance Criteria

Attachments See Figma design

ori-near commented 1 year ago

@nearmax @frol @ailisp – Please see this proposed ticket for creating a new community and provide any feedback or concerns.

Some considerations:

  1. Should we provide anyone with the ability to create a new community page?
  2. Should there be some kind of "moderation" step to review and approve new communities before they're published? I think we're better off allowing anyone to create one, and just adding the ability to delete/hide pages that violate any terms.
  3. How should we show "communities" that DevDAO plans to "officially support." Perhaps that's something we list on our DevGov page. Or we could add an official indication in the community (e.g. a badge that says DevDAO sponsored community).
jefedeoro commented 1 year ago

I think it could be a good idea to allow anyone to add a community but have 2 sections of community links.

(First / at the top) the official Dev Hub communities (followed by) a section for the greater community (with flagging/removal if breaks terms)

and then the ability to promote a community page to the official Dev Hub list.

ailisp commented 1 year ago

Short community URL slug (e.g. /communities/slug – only allow dashes, letters, and numbers)

This is not possible because near social's router cannot be configured - each widget is strictly mapped to the source code file in the repo. E.g. /communities/zk - must be a file in neardevhub-widgets: src/communities/zk.jsx

ori-near commented 1 year ago

@near-akaia-root As we discussed, I incorporated the old Discover "All Communities" page (#79) ticket into the first AC of this ticket. Will repurpose 79 for a different task.

CC: @ailisp

carina-akaia commented 1 year ago

UPD: In progress

gagdiez commented 1 year ago

Hi team, amazing job on moving this forward. Could we get some insight into how the community is planned to be stored? Is this a data blob in social.near? In such case, what are the data fields, and under which key/action is it stored? Is there an indexer call happening on creation? Using which fields?

A great idea would be to coordinate so we propose a standard: https://github.com/NearSocial/standards/tree/main

If you already have an initial idea, would love to hear it and help in standardising it.

carina-akaia commented 1 year ago

Hi team, amazing job on moving this forward. Could we get some insight into how the community is planned to be stored? Is this a data blob in social.near? In such case, what are the data fields, and under which key/action is it stored? Is there an indexer call happening on creation? Using which fields?

A great idea would be to coordinate so we propose a standard: https://github.com/NearSocial/standards/tree/main

If you already have an initial idea, would love to hear it and help in standardising it.

Hi, recently we decided to store and process data on DevHub's own contract, as it is the fastest way to implement MVP at this moment

SocialDB will be considered a target for migration in later updates

frol commented 1 year ago

@gagdiez As @near-akaia-root has already mentioned, after some brainstorming, we decided to postpone the usage of SocialDB for communities due to permission system limitations (you cannot revoke access after you granted it).

Just for future context, our exploration led us into considering creating new accounts (zk-community.near) or subaccounts (like, zk.dev-hub.near) and using its profile key to reflect that it is a community account. Users willing to post to the community would post it to their own feed with a special index key, and a relevant community account then would re-share those posts to their feed (it could even be a DAO-enabled process to ensure pre-moderation). This way the posts would still belong to the author while the community account would help to organize them, and it won't introduce major changes to the feed implementation and communities discovery will just leverage the existing accounts search capabilities.

There are a ton of small details when it comes to the implementation, so we decided to get back to it later once we will know more about the needs of the communities on NEAR. Learn more about SocialDB limitations and various quirks we can implement in #137.