2026-09-26 15:11:50 -04:00
{
2026-09-26 16:53:07 -04:00
"reviewed" : "2026-09-26" ,
2026-09-26 15:11:50 -04:00
"clients" : [
{
"name" : "Lotus Chat" ,
"sub" : "chat.lotusguild.org<br>Our Cinny fork"
},
{
"name" : "Cinny" ,
"sub" : "cinny.in<br>Official"
},
{
"name" : "Element X" ,
"sub" : "iOS & Android"
},
{
"name" : "FluffyChat" ,
2026-09-26 16:53:07 -04:00
"sub" : "Android, iOS, Web & Linux"
2026-09-26 15:11:50 -04:00
},
{
"name" : "Commet" ,
2026-09-26 16:53:07 -04:00
"sub" : "Android / Win / Linux / Web"
2026-09-26 15:11:50 -04:00
},
{
"name" : "Element" ,
"sub" : "Web & Desktop"
},
{
"name" : "Nheko" ,
"sub" : "Desktop only"
}
],
"sections" : [
{
"title" : "Platform" ,
"rows" : [
{
"feature" : "iOS" ,
"cells" : [
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "yes"
},
{
"mark" : "yes"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
}
]
},
{
"feature" : "Android" ,
"cells" : [
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "yes"
},
{
"mark" : "yes"
},
{
"mark" : "yes"
},
{
"mark" : "no"
},
{
"mark" : "no"
}
]
},
{
"feature" : "Desktop app" ,
"cells" : [
{
"mark" : "yes"
},
{
"mark" : "yes" ,
"note" : "Cinny Desktop"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "part" ,
"note" : "iOS build runs on Apple Silicon Macs (no Windows/Linux)"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "yes"
},
{
"mark" : "yes" ,
2026-09-26 16:53:07 -04:00
"note" : "Windows & Linux (macOS: build from source only)"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "yes"
},
{
"mark" : "yes"
}
]
},
{
"feature" : "Web browser" ,
"cells" : [
{
"mark" : "yes"
},
{
"mark" : "yes"
},
{
"mark" : "no"
},
{
"mark" : "yes"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
"note" : "app.commet.chat (v0.5.0)"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "yes"
},
{
"mark" : "no"
}
]
},
{
"feature" : "Performance" ,
"cells" : [
{
"text" : "Light"
},
{
"text" : "Light"
},
{
"text" : "Very fast" ,
"note" : "Sliding Sync"
},
{
"text" : "Moderate"
},
{
"text" : "Moderate"
},
{
"text" : "Heavy" ,
"note" : "Electron / JS"
},
{
"text" : "Light" ,
"note" : "Native C++"
}
]
}
]
},
{
"title" : "Desktop App" ,
"rows" : [
{
"feature" : "Native rich notifications (click→open, inline reply)" ,
"cells" : [
{
"mark" : "yes"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "part" ,
2026-10-13 02:36:25 -04:00
"note" : "Linux: click opens chat, Mark as read/Mute actions; no inline reply"
2026-09-26 15:11:50 -04:00
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
2026-10-13 02:36:25 -04:00
"note" : "Windows & Linux: click to open, inline reply, call accept/decline"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "part"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
2026-10-13 02:36:25 -04:00
"note" : "Linux inline reply (D-Bus), macOS quick reply, click to open"
2026-09-26 15:11:50 -04:00
}
]
},
{
"feature" : "Windows Jump List (recent rooms)" ,
"cells" : [
{
"mark" : "yes"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
}
]
},
{
2026-10-13 02:36:25 -04:00
"feature" : "Taskbar + volume flyout call controls" ,
2026-09-26 15:11:50 -04:00
"cells" : [
{
"mark" : "yes"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
}
]
},
{
2026-10-13 02:36:25 -04:00
"feature" : "Focus Assist → auto Do Not Disturb" ,
2026-09-26 15:11:50 -04:00
"cells" : [
{
"mark" : "yes"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
}
]
},
{
"feature" : "Stay awake during calls" ,
"cells" : [
{
"mark" : "yes"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "part" ,
"note" : "wakelock during (experimental) calls"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "no"
},
{
"mark" : "part"
},
{
"mark" : "no"
}
]
},
{
2026-10-13 02:36:25 -04:00
"feature" : "Recursive folder drag drop upload" ,
2026-09-26 15:11:50 -04:00
"cells" : [
{
"mark" : "yes"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
}
]
}
]
},
{
"title" : "Security & Encryption" ,
"rows" : [
{
"feature" : "E2EE" ,
"cells" : [
{
"mark" : "yes"
},
{
"mark" : "yes"
},
{
"mark" : "yes"
},
{
"mark" : "yes"
},
{
"mark" : "yes"
},
{
"mark" : "yes"
},
{
"mark" : "yes"
}
]
},
{
"feature" : "Vodozemac encryption<small>stronger crypto track record</small>" ,
"cells" : [
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
"note" : "Rust crypto (matrix-sdk-crypto-wasm) via js-sdk"
2026-09-26 15:11:50 -04:00
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
"note" : "Rust crypto (matrix-sdk-crypto-wasm) via js-sdk"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "yes" ,
"note" : "Rust SDK"
},
{
"mark" : "yes" ,
"note" : "dart-sdk"
},
{
"mark" : "yes" ,
"note" : "dart-sdk"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
"note" : "Rust crypto (matrix-sdk-crypto-wasm)"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "no"
}
]
},
{
"feature" : "Device verification" ,
"cells" : [
{
"mark" : "yes" ,
2026-10-13 02:36:25 -04:00
"note" : "SAS emoji, cross client requests show inline card"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "part" ,
2026-09-26 16:53:07 -04:00
"note" : "own devices only (emoji + recovery key)"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "yes"
},
{
"mark" : "yes"
},
{
"mark" : "yes"
},
{
"mark" : "yes"
},
{
"mark" : "yes"
}
]
}
]
},
{
"title" : "Voice & Video" ,
"rows" : [
{
"feature" : "Voice & video calls" ,
"cells" : [
{
"mark" : "yes" ,
"note" : "rooms & DMs, group calls,<br>screenshare via Element Call"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
"note" : "1:1 + group via embedded Element Call"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "yes" ,
2026-09-26 16:53:07 -04:00
"note" : "1:1 & group via embedded Element Call"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "part" ,
2026-09-26 16:53:07 -04:00
"note" : "experimental setting, DMs only (legacy 1:1 WebRTC)"
2026-09-26 15:11:50 -04:00
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
"note" : "1:1 WebRTC; voice channels via MatrixRTC + LiveKit; E2EE experimental"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "yes"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "part" ,
"note" : "1:1 only, legacy VoIP; Linux builds only"
2026-09-26 15:11:50 -04:00
}
]
},
{
"feature" : "Screenshare" ,
"cells" : [
{
"mark" : "yes" ,
"note" : "via Element Call; fullscreen button,<br>independent audio mute"
},
{
"mark" : "yes" ,
"note" : "via Element Call embed"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "no" ,
"note" : "can view others' screenshares, cannot start one"
2026-09-26 15:11:50 -04:00
},
{
2026-09-26 16:53:07 -04:00
"mark" : "part" ,
"note" : "experimental 1:1 calls, mobile & web only"
2026-09-26 15:11:50 -04:00
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
"note" : "desktop, Android & browser; 1:1 and voice channels"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "yes"
},
{
"mark" : "yes" ,
2026-09-26 16:53:07 -04:00
"note" : "Linux builds only (1:1 calls; XDG portal)"
2026-09-26 15:11:50 -04:00
}
]
},
{
"feature" : "Noise suppression<small>filter background noise from mic</small>" ,
"cells" : [
{
"mark" : "yes" ,
2026-10-13 02:36:25 -04:00
"note" : "3 tiers: off / browser native /<br>on device ML (RNNoise, Speex,<br>DTLN, DeepFilterNet 3),<br>works on self hosted SFU"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "part" ,
2026-10-13 02:36:25 -04:00
"note" : "browser native<br>via Element Call"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "part" ,
2026-10-13 02:36:25 -04:00
"note" : "browser native"
2026-09-26 15:11:50 -04:00
},
{
2026-09-26 16:53:07 -04:00
"mark" : "part" ,
2026-10-13 02:36:25 -04:00
"note" : "WebRTC native"
2026-09-26 15:11:50 -04:00
},
{
2026-09-26 16:53:07 -04:00
"mark" : "part" ,
2026-10-13 02:36:25 -04:00
"note" : "browser native (WebRTC)"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "part" ,
2026-10-13 02:36:25 -04:00
"note" : "browser native (WebRTC noiseSuppression toggle)"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "no"
}
]
},
{
2026-10-13 02:36:25 -04:00
"feature" : "Push to Talk<small>hold key to transmit</small>" ,
2026-09-26 15:11:50 -04:00
"cells" : [
{
"mark" : "yes" ,
2026-10-13 02:36:25 -04:00
"note" : "configurable hold key,<br>PTT badge in call bar;<br>M = push to deafen;<br>system wide on Windows desktop"
2026-09-26 15:11:50 -04:00
},
{
2026-09-26 16:53:07 -04:00
"mark" : "part" ,
2026-10-13 02:36:25 -04:00
"note" : "hold Space while muted (Element Call built in); no configurable key"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "part" ,
"note" : "hold Space while muted in Element Call; no configurable key"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "no"
}
]
},
{
2026-10-13 02:36:25 -04:00
"feature" : "AFK auto mute<small>silence mic after idle timeout</small>" ,
2026-09-26 15:11:50 -04:00
"cells" : [
{
"mark" : "yes" ,
2026-10-13 02:36:25 -04:00
"note" : "1 to 30 min timeout,<br>toast notification"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
}
]
},
{
2026-10-13 02:36:25 -04:00
"feature" : "Voice channel user limit<small>admin set max participants</small>" ,
2026-09-26 15:11:50 -04:00
"cells" : [
{
"mark" : "yes" ,
2026-10-13 02:36:25 -04:00
"note" : "per room cap,<br>server enforced<br>for all clients"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
}
]
},
{
"feature" : "Call join/leave sounds<small>cue when others come & go</small>" ,
"cells" : [
{
"mark" : "yes" ,
"note" : "3 styles,<br>Web Audio synth"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
"note" : "via Element Call (calls up to 8 people)"
2026-09-26 15:11:50 -04:00
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
"note" : "via Element Call"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "no"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
"note" : "voice channels play join/leave cues for other participants"
2026-09-26 15:11:50 -04:00
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
"note" : "Element Call (calls up to 8 people)"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "no"
}
]
},
{
"feature" : "Group calls" ,
"cells" : [
{
"mark" : "yes" ,
"note" : "via Element Call embed"
},
{
"mark" : "yes" ,
"note" : "via Element Call embed"
},
{
"mark" : "yes" ,
2026-09-26 16:53:07 -04:00
"note" : "via embedded Element Call"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "no"
},
{
"mark" : "part" ,
2026-09-26 16:53:07 -04:00
"note" : "MatrixRTC voice channels; E2EE experimental (v0.5.0)"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "yes"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "no" ,
"note" : "1:1 only; no MatrixRTC/Element Call or Jitsi"
2026-09-26 15:11:50 -04:00
}
]
},
{
"feature" : "Incoming call notification<small>ring + Answer/Decline</small>" ,
"cells" : [
{
"mark" : "yes" ,
2026-10-13 02:36:25 -04:00
"note" : "DMs & group chats;<br>ring tone, auto dismiss"
2026-09-26 15:11:50 -04:00
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
"note" : "rings for DM calls (Answer/Reject); silent prompt for group calls"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "yes" ,
"note" : "native push"
},
{
"mark" : "part" ,
"note" : "experimental"
},
{
"mark" : "yes"
},
{
"mark" : "yes" ,
2026-09-26 16:53:07 -04:00
"note" : "ringing toast with Accept/Decline (web & desktop)"
2026-09-26 15:11:50 -04:00
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
"note" : "ringtone (selectable) + Accept/Decline bar"
2026-09-26 15:11:50 -04:00
}
]
}
]
},
{
"title" : "Core Features" ,
"rows" : [
{
"feature" : "Spaces" ,
"cells" : [
{
"mark" : "yes" ,
2026-10-13 02:36:25 -04:00
"note" : "best in class subspace nav"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "yes" ,
2026-10-13 02:36:25 -04:00
"note" : "best in class subspace nav"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "yes" ,
"note" : "dedicated spaces tab,<br>full management"
},
{
"mark" : "yes"
},
{
"mark" : "yes" ,
2026-10-13 02:36:25 -04:00
"note" : "Discord like categories"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "yes" ,
2026-10-13 02:36:25 -04:00
"note" : "subspaces clunky"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "part" ,
"note" : "limited"
}
]
},
{
"feature" : "Threads" ,
"cells" : [
{
"mark" : "yes" ,
2026-10-13 02:36:25 -04:00
"note" : "side panel + Slack style per thread notifications"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "part" ,
"note" : "basic, no dedicated view"
},
{
"mark" : "part" ,
"note" : "Labs flag"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
"note" : "thread view since v2.3.0"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "yes"
},
{
"mark" : "yes"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
"note" : "since v0.11.0"
2026-09-26 15:11:50 -04:00
}
]
},
{
"feature" : "Polls" ,
"cells" : [
{
"mark" : "yes" ,
"note" : "create, vote & display;<br>single or multiple choice"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "no" ,
"note" : "not rendered (no m.poll support)"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "yes" ,
"note" : "create, vote & end"
},
{
"mark" : "yes" ,
"note" : "added v2.3.0"
},
{
"mark" : "yes" ,
"note" : "added v0.4.2"
},
{
"mark" : "yes"
},
{
"mark" : "no"
}
]
},
{
"feature" : "Voice messages<small>record & play</small>" ,
"cells" : [
{
"mark" : "yes" ,
"note" : "record & play, E2EE;<br>0.75× /1× /1.5× /2× speed"
},
{
"mark" : "part" ,
"note" : "playback only"
},
{
"mark" : "yes" ,
"note" : "record, play, variable speed,<br>reply with voice"
},
{
"mark" : "yes" ,
"note" : "record & play,<br>pause support"
},
{
"mark" : "part" ,
"note" : "playback confirmed;<br>recording unclear"
},
{
"mark" : "yes"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "part" ,
"note" : "playback only (inline audio player); no recording"
2026-09-26 15:11:50 -04:00
}
]
},
{
"feature" : "Pinned messages" ,
"cells" : [
{
"mark" : "yes"
},
{
"mark" : "yes"
},
{
"mark" : "yes" ,
"note" : "dedicated pins view"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
"note" : "pin/unpin + pinned banner"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "yes"
},
{
"mark" : "yes"
},
{
"mark" : "yes"
}
]
},
{
"feature" : "Custom emoji & stickers" ,
"cells" : [
{
"mark" : "yes" ,
2026-10-13 02:36:25 -04:00
"note" : "best in class"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "yes"
},
{
"mark" : "part"
},
{
"mark" : "yes"
},
{
"mark" : "yes" ,
"note" : "bulk upload, Signal packs"
},
{
"mark" : "part" ,
"note" : "sometimes shows mxc:// URLs"
},
{
"mark" : "yes"
}
]
},
{
"feature" : "GIF search / picker" ,
"cells" : [
{
"mark" : "yes" ,
2026-10-13 02:36:25 -04:00
"note" : "Giphy, Terminal TDS themed,<br>click outside to close"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "yes" ,
"note" : "privacy proxy,<br>uploads to homeserver"
},
{
"mark" : "no"
},
{
"mark" : "no"
}
]
},
{
"feature" : "Message search (encrypted)" ,
"cells" : [
{
"mark" : "yes" ,
2026-10-13 02:36:25 -04:00
"note" : "local cache scan; load more<br>buttons extend history per room"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "part" ,
"note" : "server search only;<br>no E2EE support"
},
{
"mark" : "no"
},
{
"mark" : "part" ,
2026-10-13 02:36:25 -04:00
"note" : "per room; downloads & decrypts history client side"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "yes" ,
2026-10-13 02:36:25 -04:00
"note" : "client side; auto fetches +<br>decrypts history during search"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "part" ,
"note" : "desktop only, not web"
},
{
"mark" : "part" ,
"note" : "local DB scan"
}
]
},
{
"feature" : "Widgets" ,
"cells" : [
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
"note" : "room widgets; asks before a widget may read or send in the room"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
"note" : "added v0.5.0 (Widgets API, native runner on Android/Windows)"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "yes"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "part" ,
"note" : "listed in room header, open externally"
2026-09-26 15:11:50 -04:00
}
]
}
]
},
{
"title" : "UX & Extras" ,
"rows" : [
{
2026-10-13 02:36:25 -04:00
"feature" : "Multi account" ,
2026-09-26 15:11:50 -04:00
"cells" : [
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
2026-10-13 02:36:25 -04:00
"note" : "account switcher; multi account push since v2.6.0"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "yes"
},
{
"mark" : "no"
},
{
"mark" : "no" ,
"note" : "CLI profiles only"
}
]
},
{
"feature" : "Image captions<small>(text + image as one event)</small>" ,
"cells" : [
{
"mark" : "yes" ,
"note" : "caption field on<br>image & video upload"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "part" ,
"note" : "shows captions from other clients; cannot send"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "yes" ,
"note" : "scrollable captions<br>on media (v26.04.2)"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "no"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "part" ,
"note" : "shows captions from other clients; cannot send"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "part"
}
]
},
{
2026-10-13 02:36:25 -04:00
"feature" : "Discord like UI" ,
2026-09-26 15:11:50 -04:00
"cells" : [
{
"mark" : "yes" ,
2026-10-13 02:36:25 -04:00
"note" : "best in class for web"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "yes"
},
{
"mark" : "no"
},
{
"mark" : "no" ,
"note" : "WhatsApp/Telegram style"
},
{
"mark" : "yes" ,
2026-10-13 02:36:25 -04:00
"note" : "Discord like layout"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "no"
},
{
"mark" : "no"
}
]
},
{
"feature" : "Shared calendars & albums" ,
"cells" : [
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "yes" ,
"note" : "unique to Commet"
},
{
"mark" : "no"
},
{
"mark" : "no"
}
]
},
{
"feature" : "Night Light / Blue Light Filter<small>warm overlay, adjustable intensity</small>" ,
"cells" : [
{
"mark" : "yes" ,
2026-10-13 02:36:25 -04:00
"note" : "5 to 80% intensity slider,<br>Settings → Appearance"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
}
]
},
{
2026-10-13 02:36:25 -04:00
"feature" : "Animated chat backgrounds<small>CSS only, GPU accelerated</small>" ,
2026-09-26 15:11:50 -04:00
"cells" : [
{
"mark" : "yes" ,
"note" : "5 animated wallpapers (rain,<br>stars, grid pulse, aurora,<br>fireflies); pause toggle"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
}
]
},
{
"feature" : "Deleted message visibility<small>(redacted events)</small>" ,
"cells" : [
{
"mark" : "yes" ,
"note" : "\"Message deleted\" with reason<br>if provided"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "part" ,
"note" : "hidden by default; shown with \"Show Hidden Events\""
2026-09-26 15:11:50 -04:00
},
{
"mark" : "yes" ,
"note" : "\"Message deleted\"<br>placeholder shown"
},
{
"mark" : "yes" ,
"note" : "shows redaction notice"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "no" ,
"note" : "redacted events are hidden from the timeline"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "yes" ,
"note" : "\"Message deleted\"<br>placeholder shown"
},
{
"mark" : "yes" ,
"note" : "shows redaction notice"
}
]
},
{
"feature" : "Location sharing" ,
"cells" : [
{
"mark" : "part" ,
"note" : "map embed view +<br>static share button"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "part" ,
"note" : "shows received locations; cannot send"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "yes" ,
"note" : "live & static,<br>map rendering"
},
{
"mark" : "part" ,
"note" : "basic static"
},
{
"mark" : "no"
},
{
"mark" : "yes"
},
{
"mark" : "no"
}
]
},
{
"feature" : "Message forwarding" ,
"cells" : [
{
"mark" : "yes" ,
"note" : "forward to any room"
},
{
"mark" : "no"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
2026-10-13 02:36:25 -04:00
"note" : "Forward action; multi room on Android"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "yes"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "no"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "yes"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes"
2026-09-26 15:11:50 -04:00
}
]
},
{
2026-10-13 02:36:25 -04:00
"feature" : "Per message read receipts<small>who read each message</small>" ,
2026-09-26 15:11:50 -04:00
"cells" : [
{
"mark" : "yes" ,
"note" : "avatar pill below message,<br>click for list + timestamps"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
"note" : "'Read Receipts' in message menu lists readers"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "yes" ,
"note" : "avatar thumbnails"
},
{
"mark" : "yes"
},
{
"mark" : "yes"
},
{
"mark" : "yes" ,
"note" : "avatar row below message"
},
{
"mark" : "yes"
}
]
},
{
"feature" : "Who reacted<small>see who reacted with each emoji</small>" ,
"cells" : [
{
"mark" : "yes" ,
2026-10-13 02:36:25 -04:00
"note" : "hover tooltip with names;<br>right click for full avatar modal"
2026-09-26 15:11:50 -04:00
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
"note" : "hover tooltip + 'View Reactions' viewer"
2026-09-26 15:11:50 -04:00
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
2026-10-13 02:36:25 -04:00
"note" : "long press reaction for summary sheet"
2026-09-26 15:11:50 -04:00
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
2026-10-13 02:36:25 -04:00
"note" : "long press reaction"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "yes"
},
{
"mark" : "yes" ,
2026-09-26 16:53:07 -04:00
"note" : "hover tooltip lists reactors"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "yes"
}
]
},
{
"feature" : "Edit history viewer<small>see all prior versions of an edited message</small>" ,
"cells" : [
{
"mark" : "yes" ,
"note" : "click \"(edited)\" label → modal<br>with all versions + timestamps"
},
{
"mark" : "no" ,
"note" : "label shown, not clickable"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "no" ,
"note" : "shows \"(edited)\" label only"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "yes"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "no" ,
"note" : "only an 'Edited' marker"
2026-09-26 15:11:50 -04:00
}
]
},
{
"feature" : "Custom status message<small>shown below username</small>" ,
"cells" : [
{
"mark" : "yes" ,
2026-10-13 02:36:25 -04:00
"note" : "emoji picker, auto clear timer<br>(30 min to 7 days), 64 char limit"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "no"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "part" ,
"note" : "emoji + text status (needs server support)"
2026-09-26 15:11:50 -04:00
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
"note" : "Set status; shown under DM header & in profile"
2026-09-26 15:11:50 -04:00
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
"note" : "shown under name in user panels/profile"
2026-09-26 15:11:50 -04:00
},
{
2026-09-26 16:53:07 -04:00
"mark" : "part" ,
"note" : "Labs; needs homeserver support (MSC4429)"
2026-09-26 15:11:50 -04:00
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
"note" : "shown next to sender name in timeline & in profile"
2026-09-26 15:11:50 -04:00
}
]
},
{
2026-10-13 02:36:25 -04:00
"feature" : "Online presence tracking<small>idle/away auto detection</small>" ,
2026-09-26 15:11:50 -04:00
"cells" : [
{
"mark" : "yes" ,
2026-10-13 02:36:25 -04:00
"note" : "online on start, idle after 10 min,<br>unavailable when tab hidden,<br>offline on close; hide status toggle"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "part" ,
2026-09-26 16:53:07 -04:00
"note" : "shows others' status; no idle detection"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "part" ,
2026-09-26 16:53:07 -04:00
"note" : "reports own presence; doesn't show others'"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "part" ,
"note" : "basic online/offline only"
},
{
"mark" : "part" ,
2026-10-13 02:36:25 -04:00
"note" : "sets 'unavailable' 15s after the app loses focus; no input idle timer"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "part" ,
2026-10-13 02:36:25 -04:00
"note" : "3 min idle → away; no hide toggle"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "part" ,
2026-09-26 16:53:07 -04:00
"note" : "auto: unavailable ~30 s after losing focus"
2026-09-26 15:11:50 -04:00
}
]
},
{
"feature" : "Media Gallery<small>browse room images/videos/files</small>" ,
"cells" : [
{
"mark" : "yes" ,
2026-10-13 02:36:25 -04:00
"note" : "right side drawer;<br>Images/Videos/Files tabs"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "no"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
"note" : "\"Media and files\" browser in room info"
2026-09-26 15:11:50 -04:00
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
"note" : "Gallery & Files tabs in chat search"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "no"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "part" ,
"note" : "Files panel lists room attachments; no grid gallery"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "no"
}
]
},
{
"feature" : "Sidebar room filter<small>filter by name in real time</small>" ,
"cells" : [
{
"mark" : "yes" ,
"note" : "Home & DMs tabs"
},
{
"mark" : "no"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
"note" : "room list search + filter chips"
2026-09-26 15:11:50 -04:00
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
"note" : "search field filters chat list by name + filter chips"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
}
]
},
{
"feature" : "Favorite rooms<small>starred section in sidebar</small>" ,
"cells" : [
{
"mark" : "yes" ,
"note" : "m.favourite tag, syncs<br>across devices"
},
{
"mark" : "no"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "part" ,
"note" : "Favourites filter chip (no separate section)"
2026-09-26 15:11:50 -04:00
},
{
2026-09-26 16:53:07 -04:00
"mark" : "part" ,
"note" : "favourite (pin) floats to top; tag filter chips"
2026-09-26 15:11:50 -04:00
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
"note" : "'Favorites' section (v0.5.0)"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "yes" ,
"note" : "favourites section"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
"note" : "'Favourites' tag in community sidebar"
2026-09-26 15:11:50 -04:00
}
]
},
{
"feature" : "Invite link + QR code" ,
"cells" : [
{
"mark" : "yes" ,
"note" : "matrix.to URL + QR code<br>in invite modal & room settings"
},
{
"mark" : "no"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "part" ,
"note" : "share room link; no QR"
2026-09-26 15:11:50 -04:00
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
"note" : "share invite link + QR codes"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "no"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
"note" : "Share room dialog: matrix.to link + QR code"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "no"
}
]
},
{
2026-10-13 02:36:25 -04:00
"feature" : "Custom notification sounds<small>per category sound selector</small>" ,
2026-09-26 15:11:50 -04:00
"cells" : [
{
"mark" : "yes" ,
2026-10-13 02:36:25 -04:00
"note" : "per category sound selector; ▶ preview"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "no"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "part" ,
"note" : "iOS: choose alert tone (global)"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "part" ,
"note" : "per room, not per category"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "no"
}
]
},
{
"feature" : "Notification quiet hours<small>silence notifs in a time window</small>" ,
"cells" : [
{
"mark" : "yes" ,
"note" : "silence all notifs in a time window; overnight support"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
}
]
},
{
"feature" : "Room sort order<small>sort sidebar rooms by activity, name, or unread</small>" ,
"cells" : [
{
"mark" : "yes" ,
"note" : "Recent / A→Z / Unread First"
},
{
"mark" : "no"
},
{
"mark" : "part" ,
"note" : "sort by activity only"
},
{
"mark" : "part" ,
2026-09-26 16:53:07 -04:00
"note" : "activity only (favourites first, low priority last)"
2026-09-26 15:11:50 -04:00
},
{
2026-09-26 16:53:07 -04:00
"mark" : "part" ,
2026-10-13 02:36:25 -04:00
"note" : "manual drag reorder; no sort selector"
2026-09-26 15:11:50 -04:00
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
2026-10-13 02:36:25 -04:00
"note" : "Activity, A to Z or Unread first"
2026-09-26 15:11:50 -04:00
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
"note" : "by importance/unread or alphabetical"
2026-09-26 15:11:50 -04:00
}
]
},
{
"feature" : "Push notifications" ,
"cells" : [
{
"mark" : "part" ,
2026-11-09 19:12:48 -05:00
"note" : "OS notifications while the web or desktop app is open (the desktop app keeps running in the tray); background web push is not planned, so use Element X or FluffyChat on phones"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "part" ,
2026-09-26 16:53:07 -04:00
"note" : "only while the tab/app is open; optional email"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "yes"
},
{
"mark" : "yes"
},
{
"mark" : "yes"
},
{
"mark" : "yes" ,
"note" : "desktop"
},
{
"mark" : "yes"
}
]
},
{
"feature" : "Export room history<small>download messages as file</small>" ,
"cells" : [
{
"mark" : "yes" ,
2026-10-13 02:36:25 -04:00
"note" : "txt/json/html, date range,<br>E2EE aware"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "yes" ,
"note" : "has export"
},
{
"mark" : "no"
}
]
},
{
"feature" : "Message scheduling<small>send later with datetime picker</small>" ,
"cells" : [
{
"mark" : "yes" ,
"note" : "MSC4140, datetime picker,<br>cancel tray above composer"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "no"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "no"
}
]
},
{
"feature" : "Message bookmarks / saved messages" ,
"cells" : [
{
"mark" : "yes" ,
2026-10-13 02:36:25 -04:00
"note" : "right click bookmark,<br>sidebar panel, syncs across devices"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "no"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "no"
}
]
},
{
2026-10-13 02:36:25 -04:00
"feature" : "Collapsible long messages<small>auto collapse >20 lines</small>" ,
2026-09-26 15:11:50 -04:00
"cells" : [
{
"mark" : "yes" ,
"note" : "\"Read more\" toggle,<br>threshold configurable"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
"note" : "collapses >25 lines (configurable), Show more/less"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
}
]
},
{
2026-10-13 02:36:25 -04:00
"feature" : "Inline GIF preview<small>Giphy / Tenor links auto embed</small>" ,
2026-09-26 15:11:50 -04:00
"cells" : [
{
"mark" : "yes" ,
"note" : "via homeserver proxy,<br>no direct CDN contact"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
}
]
},
{
"feature" : "Presence avatar border ring<small>colored ring shows online status</small>" ,
"cells" : [
{
"mark" : "yes" ,
"note" : "green/yellow/red ring;<br>timeline, members, mentions"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
}
]
},
{
"feature" : "Room emoji prefix<small>🎮 renders larger in sidebar</small>" ,
"cells" : [
{
"mark" : "yes" ,
"note" : "1.15× size; emoji picker<br>in all name inputs"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
"note" : "leading emoji becomes the room icon when no avatar"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "no"
},
{
"mark" : "no"
}
]
},
{
2026-10-13 02:36:25 -04:00
"feature" : "Quick emoji reactions on hover<small>one click react, no menu needed</small>" ,
2026-09-26 15:11:50 -04:00
"cells" : [
{
"mark" : "yes" ,
"note" : "3 recent emoji in hover bar;<br>dismisses emoji picker"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
2026-10-13 02:36:25 -04:00
"note" : "hover bar shows up to 4 recent reactions, one click"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "no"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "yes" ,
2026-10-13 02:36:25 -04:00
"note" : "hover bar shows recent reactions, one click"
2026-09-26 15:11:50 -04:00
}
]
},
{
2026-10-13 02:36:25 -04:00
"feature" : "In app notification toasts<small>TDS styled, when window focused</small>" ,
2026-09-26 15:11:50 -04:00
"cells" : [
{
"mark" : "yes" ,
2026-10-13 02:36:25 -04:00
"note" : "slides in bottom right;<br>4 s auto dismiss, click to jump"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
}
]
},
{
2026-10-13 02:36:25 -04:00
"feature" : "On device message translation<small>read foreign messages in your language</small>" ,
2026-09-26 15:11:50 -04:00
"cells" : [
{
"mark" : "yes" ,
2026-10-13 02:36:25 -04:00
"note" : "100% on device browser AI;<br>works in E2EE rooms, no cloud;<br>Chromium desktop & Lotus app"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "no"
},
{
2026-09-26 16:53:07 -04:00
"mark" : "part" ,
"note" : "iOS only (Apple Translation)"
2026-09-26 15:11:50 -04:00
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
},
{
"mark" : "no"
}
]
}
]
}
]
2026-09-26 16:53:07 -04:00
}