diff --git a/Developer-Path%3A-Implementing-Commons-Using-ActivityPub%2C-Groups%2C-and-Hashtags.md b/Developer-Path%3A-Implementing-Commons-Using-ActivityPub%2C-Groups%2C-and-Hashtags.md index eaecc58..0df0296 100644 --- a/Developer-Path%3A-Implementing-Commons-Using-ActivityPub%2C-Groups%2C-and-Hashtags.md +++ b/Developer-Path%3A-Implementing-Commons-Using-ActivityPub%2C-Groups%2C-and-Hashtags.md @@ -76,4 +76,118 @@ Test tag-aliasing with injected metadata. Write draft UX spec for hashtag/flow abstraction. -Implement basic trust-group logic using existing ActivityPub verbs. \ No newline at end of file +Implement basic trust-group logic using existing ActivityPub verbs. + +---------------------- + +DRAFT - OMN Commons System — Developer Roadmap +Phase 1: Foundations + +Goals: Understand current Fediverse norms, pick a viable path, lay groundwork. + +* Review existing ActivityPub specs + + Collections, Groups (FEP-1b12), Update/Delete flows, Object types. + +* Decide on a Grouping Approach + + Evaluate Lemmy/Peertube models + + Choose between implementing FEP-1b12 or a more custom logic using hashtags + +* Phase 2: do a working version using Emissary + + +* Phase 3: Core Object Model + +Goals: Build basic ActivityPub-compliant object handling. + +Implement UPDATE as primary user interaction + +Implement object history/versioning (wiki-style) + +Phase 4: Federation + +Goals: Federate content using ActivityPub, handle common verbs. + +Outbox/Inbox endpoint logic + +Signature validation and auth + +Object ID resolution and deduplication + +Propagation of edits (trust-based or rules-based) + +Support federation of UPDATE alongside Create + +Phase 5: Group + Commons Logic + +Goals: Implement logic for groups, commons access, and authorization. + +Group object model (as virtual objects or ActivityPub actors) + +Implement group membership flows + +Store group-object relationships in DB? + +Boolean logic for hashtag-group relations + +UX: Display objects by hashtag flow + group context + +Define “Commons” group as a writable shared space + +Phase 6: Trust + Authorization + +Goals: Mediate access to objects based on trust logic. + +Define and store "trust flow" data (user-group relationships) + +Build auth logic for edit vs. comment rights + +Implement permissions at the object and group level + +UX feedback for permission errors + +Phase 7: Scaling + UX Flows + +Goals: Refine UX and scale up the logic. + +Metadata injection via instance logic (e.g. grouping hashtags) + +Display hashtags abstractly (UX templating of messy tags) + +Optimize object retrieval (object IDs by group → fetch only needed) + +Caching and pagination for large flows + +Tag aliasing/grouping UI tools + +Phase 8: Application Launch + +Goals: Polish and release a working prototype instance. + +“MakingHistory” and “Indymedia” themed templates + +MVP instance of federated “commons” publishing + +Simple mobile-first UI with edit/comment modes + +Editable content histories + +Federation with at least 1-2 existing Fediverse projects + +**Developer Questions (Ongoing)** + + How does our chosen backend implement DB relationships? + + Can we implement "groups" using only hashtags and aliasing logic? + + How do we scale boolean logic across thousands of hashtags? + + What’s the best way to model UPDATE as primary interaction in ActivityPub? + + Can we cache and compress federated flows without breaking expected behaviors? + + How to handle clashing edits on shared (commons) objects? + + What are the best existing tools for ActivityPub testing/debugging? \ No newline at end of file