A community based topic aggregation platform built on atproto
1# Forum Platform Domain Knowledge 2 3This document serves as the central reference for domain-specific knowledge about our forum platform. It should be maintained and updated as the platform evolves. 4 5## Overview 6 7Our 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. 8 9## Core Concepts 10 11### Feed System 12 13#### Home Feed 14The home feed provides a personalized experience for each user based on their preferences and subscriptions. 15 16**UI:** 17- UI will be a tiktok style scrollable feed but left to right 18 19**Key Features:** 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 30 31#### All Feed 32A global feed showing content from across the entire platform. 33 34**Key Features:** 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 38 39#### Community Feed 40A community feed showing content from a single community. 41 42**Key Features:** 43- Incorporates typical forum feed features such as hot, top (month, day, year), new 44 45### Communities 46 47Communities are the primary organizational unit for content and discussions. 48 49#### Core Features 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 55 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 61 62#### Rules System 63Communities 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 68 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 73 74#### Moderation Models 75 76##### Sortition-Based Moderation 77A 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 81 82 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 87 88#### Flairs 89- Support for post/user flairs (implementation details TBD) 90 91### Federation 92 93Our platform supports bidirectional federation with major protocols. 94 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) 99 100#### ActivityPub Integration 101Full 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 106 107### Posts 108 109#### Post Types 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 115 116#### Post Features 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.) 122 123### Users 124 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.) 129 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") 134 135#### User Features 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 141 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) 152 153--- 154 155*Last updated: [Date]* 156*Version: 1.0*