Files
zep/FEATURES.md
2026-04-21 18:05:16 -04:00

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 |
---