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.
Overview#
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.
Core Concepts#
Feed System#
Home Feed#
The home feed provides a personalized experience for each user based on their preferences and subscriptions.
UI:
- UI will be a tiktok style scrollable feed but left to right
Key Features:
- 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
isReadflag 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
- Requires
All Feed#
A global feed showing content from across the entire platform.
Key Features:
- Displays all public content from all communities
- Respects read state (hides already-read posts)
- Provides discovery mechanism for new communities and content
Community Feed#
A community feed showing content from a single community.
Key Features:
- Incorporates typical forum feed features such as hot, top (month, day, year), new
Communities#
Communities are the primary organizational unit for content and discussions.
Core Features#
- 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
Reputation System#
- 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
Rules System#
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
Bots and Plugins#
- 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
Moderation Models#
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
Flairs#
- Support for post/user flairs (implementation details TBD)
Federation#
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
Posts#
Post Types#
- 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
Post Features#
- 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.)
Users#
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.)
Username System#
- Random generation: When not provided, usernames follow patterns:
- "Adjective Noun" (e.g., "BraveEagle")
- "Adjective Adjective Noun" (e.g., "SmallQuietMouse")
User Features#
- 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
Future Enhancements#
- Comment federation for Bluesky
- Possibly Mastadon integration
- Extended plugin system for communities
- Edit/History for comments/posts/wiki
- Enhanced offline capabilities
- Incognito browsing
- Disables browsing history
- Read state not stored on device
- Community forking process (Theoretically built in via DID's)
Last updated: [Date] Version: 1.0