A community based topic aggregation platform built on atproto
1# Coves Product Requirements Document (PRD)
2## Digital Community Infrastructure Platform
3
4---
5
6## 1. Executive Summary
7
8**Vision**: A federated forum platform that ensures a solid framework for digital community building and meaningful information discussion.
9
10**Core Values**:
11- User sovereignty through data portability
12- Community autonomy and self-governance
13- Cross-platform interoperability
14
15---
16
17## 2. MVP Scope Definition
18
19### Phase 1: Core Forum Platform (Web)
20
21#### Must Have:
22- **Indigo PDS Integration**1 - Use existing atProto infrastructure (no CAR file reimplementation!)
23- User registration with phone verification (verified badge)
24- Community creation, subscription, and discovery
25- Post creation (text initially, then image/video/article)
26- Threaded comments with upvoting
27- Three feed types:
28 - **Home**: Personalized based on subscriptions with 1-5 visibility slider per community
29 - **All**: Global content discovery
30 - **Community**: Standard forum sorting (hot/new/top)
31- Read state tracking (hide read posts, history tab)
32- Content tagging system (helpful/spam/hostile)
33- User blocking capabilities
34
35#### Defer to Post-MVP:
36- Community wikis
37- Advanced reputation system
38- Sortition/tribunal moderation
39- Edit history tracking
40- Plugin/bot system
41
42### Phase 2: Federation (MVP+)
43- Bluesky post display (read-only via Indigo firehose)
44- ActivityPub bidirectional support
45- Federation source indicators
46
47### Phase 3: Mobile Apps (Separate Repo)
48- iOS/Android native apps
49- TikTok-style horizontal scrolling feed
50- Offline-first architecture
51- Push notifications
52
53---
54
55## 3. Technical Architecture
56
57### Backend Stack:
58- **PDS Layer**: Indigo PDS implementation (handles atProto, CAR files, firehose)
59- **Application Layer**: Go services for Coves-specific features
60- **Databases**:
61 - Indigo PDS's PostgreSQL (user repos, DID management)
62 - Separate PostgreSQL for AppView (queries, read states, community data)
63- **APIs**: XRPC protocol (leverage Indigo's implementation)
64- **Identity**: atProto DIDs with phone verification
65
66### Frontend Stack:
67- **Web**: React/Next.js
68- **Mobile**: React Native or Flutter (separate repository)
69- **State Management**: Zustand/Redux with offline sync
70
71---
72
73## 4. Development Roadmap
74
75### Week 1-2: Foundation
76- Deploy Indigo PDS instance
77- Set up AppView database
78- Create core Lexicon schemas (community, post, comment)
79- Implement phone verification flow
80
81### Week 3-4: User & Identity
82- User registration/login via Indigo PDS
83- Profile management
84- DID resolution and handle system
85- Basic user settings
86
87### Week 5-6: Communities
88- Community CRUD operations
89- Subscription management
90- Community discovery page
91- Basic moderation tools
92
93### Week 7-8: Content Creation
94- Post creation (text, then multimedia)
95- Comment threads
96- Upvoting system
97- Content tagging
98
99### Week 9-10: Feed System
100- Home feed with subscription slider
101- Community feeds with sorting
102- All/global feed
103- Read state tracking and history
104
105### Week 11-12: Polish & Testing
106- Search functionality
107- User blocking
108- Performance optimization
109- Security audit
110- Alpha deployment
111
112### Post-MVP: Federation
113- Subscribe to Indigo firehose for Bluesky content
114- ActivityPub adapter service
115- Cross-platform user mapping
116
117---
118
119## 5. Mobile Application Strategy
120
121**Approach**: Separate repository, API-first design
122
123### MVP Features:
124- Horizontal swipe navigation between posts
125- Offline caching with background sync
126- Push notifications for interactions
127- Native performance optimization
128
129**Timeline**: Begin after web MVP validation (Month 4-6)
130
131---
132
133## 6. Key Technical Decisions
134
135### Leveraging Indigo:
136- Use Indigo PDS for all atProto infrastructure
137- Subscribe to Indigo firehose instead of building our own
138- Focus engineering on Coves-specific features
139
140### Data Architecture:
141- User content → Indigo PDS (portable)
142- Read states/analytics → AppView (non-portable, privacy-focused)
143- No ads, tracking, or user data monetization
144
145### Open Source:
146- MIT license
147- Public repository
148- Community contributions welcome
149
150---
151
152## 7. Success Metrics
153
154### MVP Launch (3 months):
155- 50+ active communities
156- 500+ registered users
157- <2 second page loads
158- 99.5% uptime
159- Successful Bluesky content display
160
161### 6 Month Goals:
162- 500+ communities
163- 5,000+ MAU
164- Mobile app launched
165- Federation with 3+ platforms
166
167---
168
169## 8. Resource Requirements
170
171### Team:
172- 2 Backend Engineers (Go, atProto experience)
173- 1 Frontend Engineer (React)
174- 1 DevOps (part-time, Indigo deployment)
175- 1 Mobile Developer (post-MVP)
176
177### Infrastructure:
178- Indigo PDS instance: ~$200/month
179- AppView database: ~$100/month
180- CDN/Storage: ~$100/month
181- **Total**: ~$400-500/month initially
182
183---
184
185## 9. Risk Mitigation
186
187| Risk | Mitigation |
188|------|------------|
189| Indigo PDS complexity | Start with vanilla deployment, customize gradually |
190| Moderation at scale | Launch with simple tagging, evolve based on community needs |
191| Federation conflicts | Phased rollout, Bluesky read-only first |
192| Mobile development | Consider PWA if native timeline slips |
193| Community adoption | Focus on unique features (read states, visibility slider) |
194
195---
196
197## 10. Immediate Next Steps
198
199### Week 1:
200- Deploy Indigo PDS test instance
201- Design Coves-specific Lexicon schemas
202- Set up development environment
203
204### Week 2:
205- Implement phone verification service
206- Create first XRPC endpoints for communities
207- Begin frontend scaffolding
208
209### Week 3:
210- User registration flow
211- Community creation
212- Basic post functionality
213
214---
215
216## 11. Long-term Vision (Post-MVP)
217
218- Sortition-based moderation experiments
219- Community wikis and documentation
220- Plugin system for community bots
221- Advanced reputation mechanics
222- Full ActivityPub federation
223- Possible Mastodon integration
224- Community forking via DIDs
225- Incognito browsing mode
226
227---
228
229## 12. Differentiators
230
231**Why Coves vs Reddit/Lemmy/Discourse?**
232- True data portability via atProto
233- Subscription visibility slider (unique feed control)
234- Read state tracking across devices
235- Phone verification for trust
236- Federation-first, not an afterthought
237- Community-driven moderation models
238- No corporate ownership or ads
239
240---
241
242## Feature Details from Domain Knowledge
243
244### Feed System Specifications
245
246#### Home Feed:
247- **UI**: TikTok-style scrollable feed (horizontal swipe)
248- **Personalization**:
249 - Subscription slider (1-5 scale per community)
250 - 1 = Only best/most popular content
251 - 5 = Show all content
252 - Read state tracking with history tab
253 - Read history stored in AppView (not user repos)
254
255#### Community Feed:
256- Standard sorting: hot, top (day/month/year), new
257- Respects read state
258- Community-specific rules application
259
260### Community Features
261
262#### Core Capabilities:
263- Creation and blocking
264- Wiki maintenance
265- NSFW toggling
266- Subscription management
267
268#### Reputation System:
269- Gained through posts, comments, positive tags
270- Affects member access levels
271- Influences comment ordering
272- Voting weight based on reputation
273
274#### Rules System:
275- Democratic rule voting
276- Post type restrictions (e.g., text-only)
277- Website blocklists
278- Geolocation restrictions
279
280#### Moderation Models:
2811. **Sortition-Based**:
282 - Tag-based removal with tribunal review
283 - Minimum reputation for tribunal service
284
2852. **Traditional**:
286 - Moderator hierarchy
287 - Community override capability
288 - Hybrid approach with user feedback
289
290### Post System
291
292#### Types:
293- Text (MVP)
294- Video
295- Image
296- Article
297- Microblog (for Bluesky posts)
298
299#### Features:
300- Upvoting
301- Tagging (helpful/spam/hostile)
302- Share tracking
303- Comment ownership
304- Federation source indicators
305
306### User System
307
308#### Identity:
309- Phone verification (grants verified status)
310- atProto DID system
311- Platform federation tracking
312
313#### Username System:
314- Random generation patterns:
315 - "AdjectiveNoun" (e.g., "BraveEagle")
316 - "AdjectiveAdjectiveNoun" (e.g., "SmallQuietMouse")
317
318#### Features:
319- User blocking
320- Notification muting
321- Post saving
322- View history
323
324### Federation Approach
325
326#### atProto (Bluesky):
327- Display posts inline as references
328- Posts-only initially (comments later)
329
330#### ActivityPub:
331- Two-way compatibility
332- Instance → Hub mapping
333- Community mapping
334- User DID assignment
335- Action translation to Coves lexicon
336
337---
338
339*Last Updated: January 2025*
340*Version: 1.0*
341
342This PRD focuses on shipping a working MVP in 3 months by leveraging existing Indigo infrastructure, then iterating based on real community feedback.