docs: add temporary Discord feature parity map
This commit is contained in:
@@ -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.<br>
|
||||
> 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 | ⬜ | |
|
||||
Reference in New Issue
Block a user