Update Developer Path: Implementing Commons Using ActivityPub, Groups, and Hashtags
parent
8a4d624a37
commit
17e5259291
|
@ -76,4 +76,118 @@ Test tag-aliasing with injected metadata.
|
||||||
|
|
||||||
Write draft UX spec for hashtag/flow abstraction.
|
Write draft UX spec for hashtag/flow abstraction.
|
||||||
|
|
||||||
Implement basic trust-group logic using existing ActivityPub verbs.
|
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?
|
Loading…
Reference in New Issue