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