From 23a44aa21057769172135b218a3a7ebe720e7653 Mon Sep 17 00:00:00 2001 From: InakoDev Date: Fri, 9 Oct 2026 19:57:12 +0100 Subject: [PATCH] docs: add temporary Discord feature parity map --- docs/DISCORD-PARITY.md | 87 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 docs/DISCORD-PARITY.md diff --git a/docs/DISCORD-PARITY.md b/docs/DISCORD-PARITY.md new file mode 100644 index 0000000..e140e15 --- /dev/null +++ b/docs/DISCORD-PARITY.md @@ -0,0 +1,87 @@ +# 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 | ⬜ | | \ No newline at end of file