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*