···
+
# Forum Platform Domain Knowledge
+
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.
+
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.
+
The home feed provides a personalized experience for each user based on their preferences and subscriptions.
+
- UI will be a tiktok style scrollable feed but left to right
+
- **User-specific**: Each user sees a unique feed based on their subscriptions
+
- **Community subscription slider**: Users can adjust content visibility per community (1-5 scale)
+
- 1 = Only show the best/most popular content from this community
+
- 5 = Show all content from this community
+
- **Read state tracking**: Already read posts are automatically hidden from the feed
+
- Requires `isRead` flag in the lexicon
+
- Users can access read posts through a dedicated history tab
+
- Store read history in PostgreSQL AppView, NOT in CAR files
+
- This data never enters the user's repository
+
- Only accessible through authenticated private endpoints
+
A global feed showing content from across the entire platform.
+
- Displays all public content from all communities
+
- Respects read state (hides already-read posts)
+
- Provides discovery mechanism for new communities and content
+
A community feed showing content from a single community.
+
- Incorporates typical forum feed features such as hot, top (month, day, year), new
+
Communities are the primary organizational unit for content and discussions.
+
- **Creation**: Users can create new communities
+
- **Blocking**: Users can block communities from appearing in their feeds
+
- **Wiki**: Each community maintains its own wiki for documentation
+
- **Subscriptions**: Users can subscribe/unsubscribe to communities
+
- **NSFW Toggle**: Communities can be marked as NSFW with appropriate filtering
+
- **User reputation**: Gained through community interaction such as creating posts, comments, positive tags
+
- **Member access levels**: Reputation affects user privileges
+
- **Comment ordering**: Higher reputation may influence comment visibility
+
- **Voting**: Voting is more impactful for reputable community members
+
Communities can enable specific rules to shape content and behavior:
+
- **Rule voting**: Community rules are enabled through democratic votes
+
- **Post type restrictions**: e.g., "Text Only" communities
+
- **Website blocklists**: Prevent specific domains from being shared
+
- **Geolocation restrictions**: Limit posting to users in specific locations
+
- **RSS feed poster**: Automatically post content from RSS feeds
+
- **Game thread bots**: Automated creation of sports/gaming discussion threads
+
- Additional open source plugin system for community-specific automation
+
##### Sortition-Based Moderation
+
A democratic approach to content moderation:
+
- **Tag-based removal**: Content hidden when enough users tag it as inappropriate, is flagged for tribunal review
+
- **Tribunal system**: Posts/accounts that have been tagged go through tribunal review
+
- Minimum reputation required to serve
+
##### Traditional Moderation
+
- **Moderator hierarchy**: Standard moderator-based enforcement
+
- **Community override**: Users can still vote to remove moderators
+
- **Hybrid approach**: Even moderator-led communities incorporate user feedback
+
- Support for post/user flairs (implementation details TBD)
+
Our platform supports bidirectional federation with major protocols.
+
#### atproto (Bluesky) Integration
+
- **Post display**: Show Bluesky posts inline with native content
+
- **Backend implementation**: Posts stored as references to Bluesky records
+
- **Future roadmap**: Comment federation planned (posts-only for initial release)
+
#### ActivityPub Integration
+
Full two-way compatibility with ActivityPub networks:
+
- **Instance mapping**: All AP instances converted to "Hubs"
+
- **Community mapping**: AP communities mapped to Coves communities
+
- **User identity**: AP users assigned atproto DIDs
+
- **Action translation**: Bidirectional conversion between AP actions and Coves lexicon
+
- **Text**: Traditional text-based discussions
+
- **Video**: Video content with discussion threads
+
- **Image**: Image posts with comments
+
- **Article**: Long-form content/blog posts
+
- **Microblog**: Explicitly created for bsky posts
+
- **Voting**: Upvote system
+
- **Tagging system**: Posts can be tagged (helpful, spam, hostile, etc.)
+
- **Share tracking**: Monitor post sharing/distribution
+
- **Comment threads**: Each post owns its comment thread
+
- **Federation indicators**: Display source platform (Lemmy, Bluesky, Mbin, etc.)
+
#### Identity and Authentication
+
- **Phone verification**: Required for account creation for Coves users (grants verified status)
+
- **Identity system**: Uses atproto DID (Decentralized Identifier) system
+
- **Federation**: Each user belongs to a federated platform (Bluesky, Lemmy, etc.)
+
- **Random generation**: When not provided, usernames follow patterns:
+
- "Adjective Noun" (e.g., "BraveEagle")
+
- "Adjective Adjective Noun" (e.g., "SmallQuietMouse")
+
- **Blocking**: Users can block other users
+
- **Offline sync**: Basic framework for offline functionality
+
- **Notification control**: Mute notifications from own posts
+
- **Save posts**: Bookmark posts for later reference
+
- **Post history**: View all previously seen posts
+
- Comment federation for Bluesky
+
- Possibly Mastadon integration
+
- Extended plugin system for communities
+
- Edit/History for comments/posts/wiki
+
- Enhanced offline capabilities
+
- Disables browsing history
+
- Read state not stored on device
+
- Community forking process (Theoretically built in via DID's)