Files
Tofu/docs/DISCORD-PARITY.md
T

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 ⬜