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.