8.0 KiB
8.0 KiB
Discord Parity :3
Warning
The contents here are AI-generated using a local LLM as i didn't want to spend an hour writing this.
So it's a given that this would be non-authoritative.
Note
I would like to make Tofu have all the same features as Discord, and be easy for people to transition from Discord, whilst having all the benefits from Matrix.
- ✅ working
- 🟡 partial
- ⬜ not built yet (but matrix supports it)
- ❌ no Matrix equivalent (maybe can be implemented still?)
Navigation
| Server rail (spaces) | ✅ | Initials/colour instead of avatars |
|---|---|---|
| Feature | Notes | |
Server icons from mxc:// avatars |
⬜ | Needs media fetch + cache; same for user avatars |
| Unread dot / mention badge on servers | ✅ | Aggregated over child rooms |
| Create / join / leave server | ⬜ | add-server button is a stub |
| Server settings menu | ⬜ | Header click is a stub |
| Channel list with categories | 🟡 | One level of nesting; categories aren't collapsible yet |
| Unjoined channels shown dimmed, join on click | ✅ | Discord shows all channels; Matrix needs a join first |
| Voice channels | 🟡 | Listed with speaker icon; not joinable (needs MatrixRTC / Element Call) |
| Create / edit / reorder channels | ⬜ | |
| DMs list, most-recent first | ✅ | |
| Start a new DM / group DM | ⬜ | |
| Accept / decline invites | ⬜ | |
| Friends list, friend requests | ❌ | No concept in Matrix (closest: m.direct + ignore list) |
| Quick switcher (Ctrl+K) | ⬜ |
Messaging
| Feature | Notes | |
|---|---|---|
| Send (Enter) / newline (Shift+Enter) | ✅ | Sent as markdown |
| Edit, delete own messages | ✅ | Via hover toolbar |
| Reply | ✅ | Banner above composer, preview above message |
| Reactions: add/remove, counts, "mine" highlight | 🟡 | Toolbar button toggles 👍; clicking a chip toggles that key; no emoji picker |
| Message grouping, date dividers, "start of channel" | ✅ | |
| Infinite history scroll | ✅ | Scroll anchoring on prepend is untested |
| Typing indicator (send + receive) | ✅ | |
| Read receipts / mark as read | 🟡 | Marks read whenever the room is open; no "new messages" divider |
| Local echo / pending state | ✅ | |
| Render markdown / formatted messages | ⬜ | |
| Mentions: autocomplete and highlight | ⬜ | @/# completion, mention styling |
| Links, embeds, URL previews | ⬜ | |
| Images, files, video: display | ⬜ | Shown as [image] name text |
| Upload (button, drag-drop, paste) | ⬜ | attach is a stub |
| Emoji picker, custom emoji, stickers | ⬜ | Custom emoji: MSC2545 |
| Threads | ⬜ | Header button is a stub; SDK supports threads |
| Pinned messages | ⬜ | Stub |
| Search | ⬜ | Stub |
| Spoilers, code-block highlighting | ⬜ | Needs formatted-body renderer first |
| Polls | ⬜ | Shown as [poll] |
| Forward / copy link / report | ⬜ | Text is selectable & copyable |
People
| Feature | Notes | |
|---|---|---|
| Member list grouped by role | ✅ | Power levels: 100 admin, 50 mod |
| Online / offline split | ⬜ | Matrix presence is optional and server-dependent |
| Profile popout, notes | ⬜ | |
| Roles & permissions UI | ⬜ | Power-level editor |
| Kick / ban / timeout | ⬜ |
Voice, video, apps
| Feature | Notes | |
|---|---|---|
| Voice / video calls, screen share | ⬜ | MatrixRTC (LiveKit); largest remaining chunk |
| Stage channels | ❌ | |
| Mute / deafen buttons | 🟡 | Local toggle only |
| Bots & slash commands | 🟡 | Bots exist in Matrix; no slash-command UI |
| Activities, Nitro, boosts, server discovery | ❌ | Not Matrix concepts |
Account & app
| Feature | Notes | |
|---|---|---|
| Password login, session restore | ✅ | |
| SSO / OIDC login | ⬜ | Needed for matrix.org and other MAS servers |
| Encryption (E2EE) | 🟡 | Works in SDK; no verification / key-backup / recovery UI |
| Notifications (desktop, per-channel mute) | ⬜ | Push rules |
| User settings, themes | 🟡 | Theme global makes themes easy; no settings screen |
| Multi-account | ⬜ | TOFU_DATA_DIR runs separate instances meanwhile |
| Keyring storage for secrets | ⬜ |