···
1
+
# Forum Platform Domain Knowledge
3
+
This document serves as the central reference for domain-specific knowledge about our forum platform. It should be maintained and updated as the platform evolves.
7
+
Our forum platform is a federated discussion system that combines traditional forum features with modern federation protocols (atproto and ActivityPub). The platform emphasizes user control, community autonomy, and cross-platform interoperability.
14
+
The home feed provides a personalized experience for each user based on their preferences and subscriptions.
17
+
- UI will be a tiktok style scrollable feed but left to right
20
+
- **User-specific**: Each user sees a unique feed based on their subscriptions
21
+
- **Community subscription slider**: Users can adjust content visibility per community (1-5 scale)
22
+
- 1 = Only show the best/most popular content from this community
23
+
- 5 = Show all content from this community
24
+
- **Read state tracking**: Already read posts are automatically hidden from the feed
25
+
- Requires `isRead` flag in the lexicon
26
+
- Users can access read posts through a dedicated history tab
27
+
- Store read history in PostgreSQL AppView, NOT in CAR files
28
+
- This data never enters the user's repository
29
+
- Only accessible through authenticated private endpoints
32
+
A global feed showing content from across the entire platform.
35
+
- Displays all public content from all communities
36
+
- Respects read state (hides already-read posts)
37
+
- Provides discovery mechanism for new communities and content
40
+
A community feed showing content from a single community.
43
+
- Incorporates typical forum feed features such as hot, top (month, day, year), new
47
+
Communities are the primary organizational unit for content and discussions.
50
+
- **Creation**: Users can create new communities
51
+
- **Blocking**: Users can block communities from appearing in their feeds
52
+
- **Wiki**: Each community maintains its own wiki for documentation
53
+
- **Subscriptions**: Users can subscribe/unsubscribe to communities
54
+
- **NSFW Toggle**: Communities can be marked as NSFW with appropriate filtering
56
+
#### Reputation System
57
+
- **User reputation**: Gained through community interaction such as creating posts, comments, positive tags
58
+
- **Member access levels**: Reputation affects user privileges
59
+
- **Comment ordering**: Higher reputation may influence comment visibility
60
+
- **Voting**: Voting is more impactful for reputable community members
63
+
Communities can enable specific rules to shape content and behavior:
64
+
- **Rule voting**: Community rules are enabled through democratic votes
65
+
- **Post type restrictions**: e.g., "Text Only" communities
66
+
- **Website blocklists**: Prevent specific domains from being shared
67
+
- **Geolocation restrictions**: Limit posting to users in specific locations
69
+
#### Bots and Plugins
70
+
- **RSS feed poster**: Automatically post content from RSS feeds
71
+
- **Game thread bots**: Automated creation of sports/gaming discussion threads
72
+
- Additional open source plugin system for community-specific automation
74
+
#### Moderation Models
76
+
##### Sortition-Based Moderation
77
+
A democratic approach to content moderation:
78
+
- **Tag-based removal**: Content hidden when enough users tag it as inappropriate, is flagged for tribunal review
79
+
- **Tribunal system**: Posts/accounts that have been tagged go through tribunal review
80
+
- Minimum reputation required to serve
83
+
##### Traditional Moderation
84
+
- **Moderator hierarchy**: Standard moderator-based enforcement
85
+
- **Community override**: Users can still vote to remove moderators
86
+
- **Hybrid approach**: Even moderator-led communities incorporate user feedback
89
+
- Support for post/user flairs (implementation details TBD)
93
+
Our platform supports bidirectional federation with major protocols.
95
+
#### atproto (Bluesky) Integration
96
+
- **Post display**: Show Bluesky posts inline with native content
97
+
- **Backend implementation**: Posts stored as references to Bluesky records
98
+
- **Future roadmap**: Comment federation planned (posts-only for initial release)
100
+
#### ActivityPub Integration
101
+
Full two-way compatibility with ActivityPub networks:
102
+
- **Instance mapping**: All AP instances converted to "Hubs"
103
+
- **Community mapping**: AP communities mapped to Coves communities
104
+
- **User identity**: AP users assigned atproto DIDs
105
+
- **Action translation**: Bidirectional conversion between AP actions and Coves lexicon
110
+
- **Text**: Traditional text-based discussions
111
+
- **Video**: Video content with discussion threads
112
+
- **Image**: Image posts with comments
113
+
- **Article**: Long-form content/blog posts
114
+
- **Microblog**: Explicitly created for bsky posts
117
+
- **Voting**: Upvote system
118
+
- **Tagging system**: Posts can be tagged (helpful, spam, hostile, etc.)
119
+
- **Share tracking**: Monitor post sharing/distribution
120
+
- **Comment threads**: Each post owns its comment thread
121
+
- **Federation indicators**: Display source platform (Lemmy, Bluesky, Mbin, etc.)
125
+
#### Identity and Authentication
126
+
- **Phone verification**: Required for account creation for Coves users (grants verified status)
127
+
- **Identity system**: Uses atproto DID (Decentralized Identifier) system
128
+
- **Federation**: Each user belongs to a federated platform (Bluesky, Lemmy, etc.)
130
+
#### Username System
131
+
- **Random generation**: When not provided, usernames follow patterns:
132
+
- "Adjective Noun" (e.g., "BraveEagle")
133
+
- "Adjective Adjective Noun" (e.g., "SmallQuietMouse")
136
+
- **Blocking**: Users can block other users
137
+
- **Offline sync**: Basic framework for offline functionality
138
+
- **Notification control**: Mute notifications from own posts
139
+
- **Save posts**: Bookmark posts for later reference
140
+
- **Post history**: View all previously seen posts
142
+
## Future Enhancements
143
+
- Comment federation for Bluesky
144
+
- Possibly Mastadon integration
145
+
- Extended plugin system for communities
146
+
- Edit/History for comments/posts/wiki
147
+
- Enhanced offline capabilities
148
+
- Incognito browsing
149
+
- Disables browsing history
150
+
- Read state not stored on device
151
+
- Community forking process (Theoretically built in via DID's)
155
+
*Last updated: [Date]*