70 lines
4.2 KiB
Markdown
70 lines
4.2 KiB
Markdown
# Ditchcord Features Matrix
|
|
|
|
## ✅ Completed Features
|
|
| Feature | Status | Notes |
|
|
| :--- | :---: | :--- |
|
|
| Multi-server support | [x] | Scalable workspace switching with instant cache |
|
|
| Instant Load Pagination | [x] | 100-message "Recent Activity Cache" per channel |
|
|
| On-demand History Expansion | [x] | Lazy-load deep channel history via surgical subscriptions |
|
|
| Voice Channels | [x] | WebRTC audio signaling via SpacetimeDB |
|
|
| Screen Sharing | [x] | WebRTC video/screen sharing support |
|
|
| Threaded Conversations | [x] | Create threads from messages with unified scroll context |
|
|
| User Profiles | [x] | Avatars, Banners, Biographies, and Display Names |
|
|
| **User Statuses** | [x] | Custom status messages shown in member list and profile |
|
|
| **Message Grouping** | [x] | Merge consecutive messages from same user within 5 mins |
|
|
| **Server Management** | [x] | Create, Rename, Leave, Delete, and Upload Server Avatars |
|
|
| **Private Servers** | [x] | Servers restricted to invited members only via `public` flag |
|
|
| **Server Invites** | [x] | Secure 12-char codes with full URL join support and usage limits |
|
|
| **Direct Messages** | [x] | Private 1-on-1 messaging with instant conversation focus |
|
|
| **End-to-End Encryption (E2EE)** | [x] | Opt-in GPG encryption for DMs with dual-encryption for self-readability |
|
|
| **Navigation Persistence** | [x] | Automatically returns user to last active server/channel on reload |
|
|
| **Join Status Feedback** | [x] | User-visible error reporting for invalid/expired invites (no backend panics) |
|
|
| **Max 5 images per message** | [x] | Reducer-level enforcement and UI staged image limits |
|
|
| **Consolidated Subscriptions** | [x] | Merged 5+ state tables into 2; reduced network overhead |
|
|
| **Restricted Visibility Views** | [x] | RLS-like filtering for user states and typing activity |
|
|
| Dark/Light Mode Themes | [x] | Full theme engine with persistence and 7+ premium presets |
|
|
| Custom Emojis | [x] | Upload, categorization, and global picker support |
|
|
| Typing activity in a channel | [x] | Real-time indicators with restricted shared-context visibility |
|
|
| Responsive Design | [x] | Media queries for various screen sizes |
|
|
| Server Ownership | [x] | Tracked in the `server` table |
|
|
| Sync settings to SpacetimeDB | [x] | User profile and server memberships are persistent |
|
|
| **Zep System Assistant** | [x] | Automated welcome DMs for new users |
|
|
|
|
## 🚀 Planned Features (PM Prioritized)
|
|
|
|
### Phase 1: Core Engagement & Reliability
|
|
High-impact features that bridge the gap between "experimental" and "usable daily driver."
|
|
|
|
| Feature | Priority | Difficulty | Notes |
|
|
| :--- | :---: | :---: | :--- |
|
|
| **Read Status** | P0 | Med | Unread indicators for channels and servers |
|
|
| **@ Mentions** | P0 | High | Global tagging and notification triggers |
|
|
| **Group DMs** | P1 | Med | Multi-user private conversations (3+ users) |
|
|
| **Notifications** | P1 | High | RLS-protected delivery of mentions/DMs |
|
|
| **View Optimization** | P1 | Med | Refactor nested loops in `views.rs` to use semijoins (O(N) scaling) |
|
|
| **Rate limiting** | P1 | High | Prevent spam and module resource exhaustion |
|
|
|
|
### Phase 2: Enhanced Messaging UX
|
|
Improving the quality of life for active conversations.
|
|
|
|
| Feature | Priority | Difficulty | Notes |
|
|
| :--- | :---: | :---: | :--- |
|
|
| **Replying to messages** | P2 | Med | Standalone replies (distinct from threads) |
|
|
| **Profile Preview Cards** | P2 | Med | Quick-view user details when clicking in member list |
|
|
| **Permissions System** | P2 | High | Simplified RBAC (Admin/Member/Guest roles) |
|
|
| **S3 Media Offloading** | P2 | High | Optional background worker for SeaweedFS/S3 storage |
|
|
| **Spoiler Content** | P3 | Low | Mark text or images as spoilers |
|
|
|
|
### Phase 3: Platform & Polish
|
|
Expanding reach and refining the feel of the application.
|
|
|
|
| Feature | Priority | Difficulty | Notes |
|
|
| :--- | :---: | :---: | :--- |
|
|
| **Hotkey Support** | P3 | Med | Keyboard navigation and quick-switch shortcuts |
|
|
| **Voice Clips** | P3 | Med | Record and attach short audio messages |
|
|
| **Ephemeral Channels** | P4 | Med | Snapchat-style disappearing message channels |
|
|
| **Custom Input Refactor** | P4 | Low | Disable platform-native autocorrect for a cleaner chat feel |
|
|
| **Watch Party** | P4 | High | Synchronized video playback in voice channels |
|
|
|
|
---
|