# Use-Case for Modularity ## Basic Discussion Tools for a Community To crystallise best practices wrt modularity, we consider the use case of a community (let's say Community A) that is looking for simple technical tools to communicate among themselves. ![](https://i.imgur.com/FDdTSEW.png) ### Requirements of the community: - Reddit style thread tools + Blogging tools for communication - Two layers to the community: Inner circle and Outer circle - When people first join the community, they are placed in the Outer Circle. To do this, the need a 'vouch' from any of the existing members. - Members of the Outer circle can only access the Reddit tools. Not the Blogging tools. They cannot read the Blogs posted either. - Members of the Inner circle can access both: Reddit and Blogging tools and read content across both tools. - When a member of the Outer circles receives '100 upvotes' across threads they can join the Inner Circle. ### Other factors that the community needs to decide on: - If a user commits fraud in the Outer circle, how important is it that this info flows to the Inner circle? Or, if the user hacks the Reddit code, how important is it to bleed into the other functionalities like Blogging etc.? Or, if the user hacks the votes code, does it inform other membranes? > [name=sid] Technically, isn't it safe to assume that a user would download all the DNA bundles that are part of the community? In that case, if we have a warrant issued in the thread DNA, wouldn't users in the votes DNA know about this, since the users are exactly the same? We could bridge at the UI to access this info, and perhaps raise red flags? It's not elegant, but it could be a start? ### Questions for Implementation: - It is likely that Reddit tools and Blogging tools are implemented as separate DNAs for read access control as specified above. However, should Threads/Votes within Reddit/Blogging tools be implemented as mixin zomes, or further split as DNAs? - If votes/threads are implemented as mixin Zomes within the Reddit DNA, does this mean a non-dev person can pull this together? Can CRISPR/Chimera allow such a person to do it? - Should the membrane tools for Inner and Outer circle be implemented as membrane zomes? - Please add more ### Future conversations: - If a user does not have vouches within Community A, can we allow them to 'import' vouches from other related communities like Communities B,C,D? - More complex tools like HoloREA made available to communities - Swappable modules for votes/claps etc. - Add more. ### Proposed Implementations 1. DNAs for Reddit/Blogging tools; Zomes for functionalities like voting/posts within the tools; Zomes for membrane control. 2. DNAs for Reddit/Blogging tools; DNAs for functionalities like voting/posts within the tools; DNAs for membrane control (group agents) ### Pros cons of methods mentioned above (draft) 1. Pros: no concern of hacking specific functionalities like votings/posts. Cons: restricts ability of users to swap out modules/functionalities that they do not like. For eg: swapping out the 'likes' module for a 'claps' module. Updating libraries and version control of these zomes will be painful. 2. Pros: highly modular, which offers more options to end users. Also, easier version control. Cons: agents can hack their funtional DNAs if there isn't decent warrant notification in place.