From 1dccca914cb41d54ad4aca441cd4885e5bef66e0 Mon Sep 17 00:00:00 2001 From: Lotus CI Date: Sat, 26 Sep 2026 16:53:07 -0400 Subject: [PATCH] landing: re-verify every client claim (reviewed 2026-09-26) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Each client's card and all 64 table cells were checked against its latest release (source at the release tag, changelogs, official docs): Cinny v4.12.7, Element Web v1.12.29, Element X 26.09.2, FluffyChat v2.9.5, Commet v0.5.0, Nheko v0.12.1. ~95 cells corrected, notes tightened, chips made consistent (platforms / SDK / one calling chip). Notable: - Cinny: calls, voice rooms and screenshare via Element Call are stable (card gained the calling chip); ring, who-reacted, read receipts: yes; polls: no. - Element X: cannot START a screenshare (mobile web views have no getDisplayMedia) — chip is now "Voice & Video". - FluffyChat: threads, pinning, media gallery, custom status, QR invites: yes; calls still experimental (DM-only, legacy 1:1). - Commet: web app + Windows/Linux, no macOS; screenshare, widgets (v0.5.0), favourites: yes; "Beta" chip dropped (not self-described). - Nheko: calls are 1:1 only and only in Linux builds; threads: yes; no release since Aug 2025. - Element: no bookmarks or scheduling; custom status is Labs; QR invites and sort order: yes. - Lotus Chat: Vodozemac yes (Rust crypto), widgets yes, push = only while open (no background push yet); desktop app is Windows + Linux (the feature list said macOS). - Vodozemac is yes for every js-sdk client now (Rust crypto). Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01PPmy3tPq869XDW4njjVaKA --- landing/data/comparison.json | 339 ++++++++++++++++++++--------------- landing/data/features.json | 2 +- landing/index.html | 248 ++++++++++++------------- 3 files changed, 324 insertions(+), 265 deletions(-) diff --git a/landing/data/comparison.json b/landing/data/comparison.json index 58e8f54..46367cb 100644 --- a/landing/data/comparison.json +++ b/landing/data/comparison.json @@ -1,5 +1,5 @@ { - "reviewed": "2026-09-23", + "reviewed": "2026-09-26", "clients": [ { "name": "Lotus Chat", @@ -15,11 +15,11 @@ }, { "name": "FluffyChat", - "sub": "All platforms" + "sub": "Android, iOS, Web & Linux" }, { "name": "Commet", - "sub": "Android / Win / macOS / Linux" + "sub": "Android / Win / Linux / Web" }, { "name": "Element", @@ -97,14 +97,15 @@ "note": "Cinny Desktop" }, { - "mark": "no" + "mark": "part", + "note": "iOS build runs on Apple Silicon Macs (no Windows/Linux)" }, { "mark": "yes" }, { "mark": "yes", - "note": "Win, macOS & Linux" + "note": "Windows & Linux (macOS: build from source only)" }, { "mark": "yes" @@ -130,7 +131,8 @@ "mark": "yes" }, { - "mark": "no" + "mark": "yes", + "note": "app.commet.chat (v0.5.0)" }, { "mark": "yes" @@ -187,16 +189,19 @@ "mark": "no" }, { - "mark": "no" + "mark": "part", + "note": "Linux: click opens chat, Mark-as-read/Mute actions; no inline reply" }, { - "mark": "no" + "mark": "yes", + "note": "Windows & Linux: click-to-open, inline reply, call accept/decline" }, { "mark": "part" }, { - "mark": "no" + "mark": "yes", + "note": "Linux inline reply (D-Bus), macOS quick reply, click-to-open" } ] }, @@ -291,7 +296,8 @@ "mark": "no" }, { - "mark": "no" + "mark": "part", + "note": "wakelock during (experimental) calls" }, { "mark": "no" @@ -365,12 +371,12 @@ "feature": "Vodozemac encryptionstronger crypto track record", "cells": [ { - "mark": "no", - "note": "js-sdk" + "mark": "yes", + "note": "Rust crypto (matrix-sdk-crypto-wasm) via js-sdk" }, { - "mark": "no", - "note": "js-sdk" + "mark": "yes", + "note": "Rust crypto (matrix-sdk-crypto-wasm) via js-sdk" }, { "mark": "yes", @@ -385,8 +391,8 @@ "note": "dart-sdk" }, { - "mark": "no", - "note": "js-sdk, migrating" + "mark": "yes", + "note": "Rust crypto (matrix-sdk-crypto-wasm)" }, { "mark": "no" @@ -402,7 +408,7 @@ }, { "mark": "part", - "note": "cross-client requests
may show unsupported" + "note": "own devices only (emoji + recovery key)" }, { "mark": "yes" @@ -434,26 +440,27 @@ "note": "rooms & DMs, group calls,
screenshare via Element Call" }, { - "mark": "part", - "note": "Element Call embed;
no ring notification" + "mark": "yes", + "note": "1:1 + group via embedded Element Call" }, { "mark": "yes", - "note": "MatrixRTC" + "note": "1:1 & group via embedded Element Call" }, { "mark": "part", - "note": "experimental, varies
by homeserver" + "note": "experimental setting, DMs only (legacy 1:1 WebRTC)" }, { - "mark": "part", - "note": "1:1 + group,
no E2EE voice rooms" + "mark": "yes", + "note": "1:1 WebRTC; voice channels via MatrixRTC + LiveKit; E2EE experimental" }, { "mark": "yes" }, { - "mark": "yes" + "mark": "part", + "note": "1:1 only, legacy VoIP; Linux builds only" } ] }, @@ -469,20 +476,23 @@ "note": "via Element Call embed" }, { - "mark": "yes" + "mark": "no", + "note": "can view others' screenshares, cannot start one" }, { - "mark": "no" + "mark": "part", + "note": "experimental 1:1 calls, mobile & web only" }, { - "mark": "no" + "mark": "yes", + "note": "desktop, Android & browser; 1:1 and voice channels" }, { "mark": "yes" }, { "mark": "yes", - "note": "XDG portals & native" + "note": "Linux builds only (1:1 calls; XDG portal)" } ] }, @@ -502,14 +512,16 @@ "note": "browser-native" }, { - "mark": "no" - }, - { - "mark": "no" + "mark": "part", + "note": "WebRTC-native" }, { "mark": "part", - "note": "browser-native;
ML only on LiveKit Cloud" + "note": "browser-native (WebRTC)" + }, + { + "mark": "part", + "note": "browser-native (WebRTC noiseSuppression toggle)" }, { "mark": "no" @@ -524,7 +536,8 @@ "note": "configurable hold key,
PTT badge in call bar;
M = push-to-deafen;
system-wide on Windows desktop" }, { - "mark": "no" + "mark": "part", + "note": "hold Space while muted (Element Call built-in); no configurable key" }, { "mark": "no" @@ -536,7 +549,8 @@ "mark": "no" }, { - "mark": "no" + "mark": "part", + "note": "hold Space while muted in Element Call; no configurable key" }, { "mark": "no" @@ -605,19 +619,23 @@ "note": "3 styles,
Web Audio synth" }, { - "mark": "no" + "mark": "yes", + "note": "via Element Call (calls up to 8 people)" + }, + { + "mark": "yes", + "note": "via Element Call" }, { "mark": "no" }, { - "mark": "no" + "mark": "yes", + "note": "voice channels play join/leave cues for other participants" }, { - "mark": "no" - }, - { - "mark": "no" + "mark": "yes", + "note": "Element Call (calls up to 8 people)" }, { "mark": "no" @@ -637,21 +655,21 @@ }, { "mark": "yes", - "note": "MatrixRTC" + "note": "via embedded Element Call" }, { "mark": "no" }, { "mark": "part", - "note": "no E2EE voice rooms" + "note": "MatrixRTC voice channels; E2EE experimental (v0.5.0)" }, { "mark": "yes" }, { - "mark": "part", - "note": "partial" + "mark": "no", + "note": "1:1 only; no MatrixRTC/Element Call or Jitsi" } ] }, @@ -663,7 +681,8 @@ "note": "DMs & group chats;
ring tone, auto-dismiss" }, { - "mark": "no" + "mark": "yes", + "note": "rings for DM calls (Answer/Reject); silent prompt for group calls" }, { "mark": "yes", @@ -678,11 +697,11 @@ }, { "mark": "yes", - "note": "desktop" + "note": "ringing toast with Accept/Decline (web & desktop)" }, { - "mark": "part", - "note": "partial" + "mark": "yes", + "note": "ringtone (selectable) + Accept/Decline bar" } ] } @@ -739,8 +758,8 @@ "note": "Labs flag" }, { - "mark": "no", - "note": "shows as regular messages" + "mark": "yes", + "note": "thread view since v2.3.0" }, { "mark": "yes" @@ -749,7 +768,8 @@ "mark": "yes" }, { - "mark": "no" + "mark": "yes", + "note": "since v0.11.0" } ] }, @@ -761,8 +781,8 @@ "note": "create, vote & display;
single or multiple choice" }, { - "mark": "part", - "note": "display only" + "mark": "no", + "note": "not rendered (no m.poll support)" }, { "mark": "yes", @@ -811,7 +831,8 @@ "mark": "yes" }, { - "mark": "no" + "mark": "part", + "note": "playback only (inline audio player); no recording" } ] }, @@ -829,8 +850,8 @@ "note": "dedicated pins view" }, { - "mark": "part", - "note": "view only" + "mark": "yes", + "note": "pin/unpin + pinned banner" }, { "mark": "yes" @@ -916,7 +937,7 @@ }, { "mark": "part", - "note": "cache scan only" + "note": "per-room; downloads & decrypts history client-side" }, { "mark": "yes", @@ -936,7 +957,8 @@ "feature": "Widgets", "cells": [ { - "mark": "no" + "mark": "yes", + "note": "room widgets; asks before a widget may read or send in the room" }, { "mark": "no" @@ -948,13 +970,15 @@ "mark": "no" }, { - "mark": "no" + "mark": "yes", + "note": "added v0.5.0 (Widgets API, native runner on Android/Windows)" }, { "mark": "yes" }, { - "mark": "no" + "mark": "part", + "note": "listed in room header, open externally" } ] } @@ -976,8 +1000,8 @@ "mark": "no" }, { - "mark": "part", - "note": "supported but clunky" + "mark": "yes", + "note": "account switcher; multi-account push since v2.6.0" }, { "mark": "yes" @@ -999,21 +1023,22 @@ "note": "caption field on
image & video upload" }, { - "mark": "no" + "mark": "part", + "note": "shows captions from other clients; cannot send" }, { "mark": "yes", "note": "scrollable captions
on media (v26.04.2)" }, { - "mark": "yes", - "note": "unique feature" + "mark": "yes" }, { "mark": "no" }, { - "mark": "no" + "mark": "part", + "note": "shows captions from other clients; cannot send" }, { "mark": "part" @@ -1039,7 +1064,7 @@ }, { "mark": "yes", - "note": "most Discord-like overall" + "note": "Discord-like layout" }, { "mark": "no" @@ -1138,8 +1163,8 @@ "note": "\"Message deleted\" with reason
if provided" }, { - "mark": "no", - "note": "redacted messages hidden" + "mark": "part", + "note": "hidden by default; shown with \"Show Hidden Events\"" }, { "mark": "yes", @@ -1150,8 +1175,8 @@ "note": "shows redaction notice" }, { - "mark": "yes", - "note": "shows redaction notice" + "mark": "no", + "note": "redacted events are hidden from the timeline" }, { "mark": "yes", @@ -1171,7 +1196,8 @@ "note": "map embed view +
static share button" }, { - "mark": "no" + "mark": "part", + "note": "shows received locations; cannot send" }, { "mark": "yes", @@ -1203,20 +1229,20 @@ "mark": "no" }, { - "mark": "part", - "note": "via share menu" - }, - { - "mark": "yes" - }, - { - "mark": "part" + "mark": "yes", + "note": "Forward action; multi-room on Android" }, { "mark": "yes" }, { "mark": "no" + }, + { + "mark": "yes" + }, + { + "mark": "yes" } ] }, @@ -1228,7 +1254,8 @@ "note": "avatar pill below message,
click for list + timestamps" }, { - "mark": "no" + "mark": "yes", + "note": "'Read Receipts' in message menu lists readers" }, { "mark": "yes", @@ -1257,21 +1284,23 @@ "note": "hover tooltip with names;
right-click for full avatar modal" }, { - "mark": "no" + "mark": "yes", + "note": "hover tooltip + 'View Reactions' viewer" }, { - "mark": "part", - "note": "tap reaction chip" + "mark": "yes", + "note": "long-press reaction for summary sheet" }, { - "mark": "part" + "mark": "yes", + "note": "long-press reaction" }, { "mark": "yes" }, { "mark": "yes", - "note": "tooltip + click for list" + "note": "hover tooltip lists reactors" }, { "mark": "yes" @@ -1290,7 +1319,8 @@ "note": "label shown, not clickable" }, { - "mark": "yes" + "mark": "no", + "note": "shows \"(edited)\" label only" }, { "mark": "no" @@ -1302,7 +1332,8 @@ "mark": "yes" }, { - "mark": "yes" + "mark": "no", + "note": "only an 'Edited' marker" } ] }, @@ -1317,20 +1348,24 @@ "mark": "no" }, { - "mark": "no" - }, - { - "mark": "no" - }, - { - "mark": "no" + "mark": "part", + "note": "emoji + text status (needs server support)" }, { "mark": "yes", - "note": "via profile settings" + "note": "Set status; shown under DM header & in profile" }, { - "mark": "no" + "mark": "yes", + "note": "shown under name in user panels/profile" + }, + { + "mark": "part", + "note": "Labs; needs homeserver support (MSC4429)" + }, + { + "mark": "yes", + "note": "shown next to sender name in timeline & in profile" } ] }, @@ -1343,7 +1378,11 @@ }, { "mark": "part", - "note": "manual AFK only; auto idle
detection PR open, unmerged" + "note": "shows others' status; no idle detection" + }, + { + "mark": "part", + "note": "reports own presence; doesn't show others'" }, { "mark": "part", @@ -1351,19 +1390,15 @@ }, { "mark": "part", - "note": "basic online/offline only" + "note": "sets 'unavailable' 15s after the app loses focus; no input-idle timer" }, { "mark": "part", - "note": "inactivity monitor shipped Oct 2025;
no tab/close detection confirmed" + "note": "3-min idle → away; no hide toggle" }, { "mark": "part", - "note": "3-min idle timer (shipped Nov 2023);
no tab detection, no offline on close,
no user-facing hide toggle" - }, - { - "mark": "part", - "note": "basic online/offline only" + "note": "auto: unavailable ~30 s after losing focus" } ] }, @@ -1378,16 +1413,19 @@ "mark": "no" }, { - "mark": "no" + "mark": "yes", + "note": "\"Media and files\" browser in room info" + }, + { + "mark": "yes", + "note": "Gallery & Files tabs in chat search" }, { "mark": "no" }, { - "mark": "no" - }, - { - "mark": "no" + "mark": "part", + "note": "Files panel lists room attachments; no grid gallery" }, { "mark": "no" @@ -1405,10 +1443,12 @@ "mark": "no" }, { - "mark": "no" + "mark": "yes", + "note": "room list search + filter chips" }, { - "mark": "no" + "mark": "yes", + "note": "search field filters chat list by name + filter chips" }, { "mark": "no" @@ -1432,20 +1472,24 @@ "mark": "no" }, { - "mark": "no" + "mark": "part", + "note": "Favourites filter chip (no separate section)" }, { - "mark": "no" + "mark": "part", + "note": "favourite (pin) floats to top; tag filter chips" }, { - "mark": "no" + "mark": "yes", + "note": "'Favorites' section (v0.5.0)" }, { "mark": "yes", "note": "favourites section" }, { - "mark": "no" + "mark": "yes", + "note": "'Favourites' tag in community sidebar" } ] }, @@ -1460,16 +1504,19 @@ "mark": "no" }, { - "mark": "no" + "mark": "part", + "note": "share room link; no QR" + }, + { + "mark": "yes", + "note": "share invite link + QR codes" }, { "mark": "no" }, { - "mark": "no" - }, - { - "mark": "no" + "mark": "yes", + "note": "Share room dialog: matrix.to link + QR code" }, { "mark": "no" @@ -1487,7 +1534,8 @@ "mark": "no" }, { - "mark": "no" + "mark": "part", + "note": "iOS: choose alert tone (global)" }, { "mark": "no" @@ -1496,7 +1544,8 @@ "mark": "no" }, { - "mark": "no" + "mark": "part", + "note": "per room, not per category" }, { "mark": "no" @@ -1546,18 +1595,19 @@ }, { "mark": "part", - "note": "alphabetical only" - }, - { - "mark": "yes", - "note": "multiple sort options" + "note": "activity only (favourites first, low priority last)" }, { "mark": "part", - "note": "limited" + "note": "manual drag-reorder; no sort selector" }, { - "mark": "no" + "mark": "yes", + "note": "Activity, A-Z or Unread-first" + }, + { + "mark": "yes", + "note": "by importance/unread or alphabetical" } ] }, @@ -1566,11 +1616,11 @@ "cells": [ { "mark": "part", - "note": "web push only" + "note": "OS notifications while the app is open; no background push yet" }, { "mark": "part", - "note": "web push only" + "note": "only while the tab/app is open; optional email" }, { "mark": "yes" @@ -1638,8 +1688,7 @@ "mark": "no" }, { - "mark": "part", - "note": "partial / labs" + "mark": "no" }, { "mark": "no" @@ -1666,7 +1715,7 @@ "mark": "no" }, { - "mark": "yes" + "mark": "no" }, { "mark": "no" @@ -1687,7 +1736,8 @@ "mark": "no" }, { - "mark": "no" + "mark": "yes", + "note": "collapses >25 lines (configurable), Show more/less" }, { "mark": "no" @@ -1771,7 +1821,8 @@ "mark": "no" }, { - "mark": "no" + "mark": "yes", + "note": "leading emoji becomes the room icon when no avatar" }, { "mark": "no" @@ -1798,14 +1849,15 @@ "mark": "no" }, { - "mark": "part", - "note": "hover bar, no recents" + "mark": "yes", + "note": "hover bar shows up to 4 recent reactions, 1-click" }, { "mark": "no" }, { - "mark": "no" + "mark": "yes", + "note": "hover bar shows recent reactions, 1-click" } ] }, @@ -1847,7 +1899,8 @@ "mark": "no" }, { - "mark": "no" + "mark": "part", + "note": "iOS only (Apple Translation)" }, { "mark": "no" @@ -1866,4 +1919,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/landing/data/features.json b/landing/data/features.json index 5fba8da..08bd904 100644 --- a/landing/data/features.json +++ b/landing/data/features.json @@ -58,7 +58,7 @@ { "title": "Desktop App", "items": [ - "Windows, macOS and Linux (Tauri)", + "Windows and Linux (Tauri): installer, AppImage, .deb and Arch package", "Rich Windows notifications with inline reply; Focus Assist sync", "Taskbar call controls, jump list and upload progress; tray with call status", "Stays awake during calls, reconnects on network changes, updates itself" diff --git a/landing/index.html b/landing/index.html index 90d18bb..15e1d2b 100644 --- a/landing/index.html +++ b/landing/index.html @@ -571,9 +571,11 @@ Lotus Guild Chat Hosted Cinny — homeserver pre-configured, no setup - Desktop & Web + Windows + Linux + Web Lotus Fork - Voice & Video Rooms + Voice, Video & Screenshare Discord-like UI @@ -640,7 +642,7 @@

Desktop App

    -
  • Windows, macOS and Linux (Tauri)
  • +
  • Windows and Linux (Tauri): installer, AppImage, .deb and Arch package
  • Rich Windows notifications with inline reply; Focus Assist sync
  • Taskbar call controls, jump list and upload progress; tray with call status
  • Stays awake during calls, reconnects on network changes, updates itself
  • @@ -678,11 +680,14 @@
    Cinny
    + Windows + macOS + Linux Web - Desktop + Voice, Video & Screenshare
    -

    The upstream open-source Cinny client. Same Discord-like UI and best-in-class space navigation as Lotus Chat, but without our custom additions (no GIF picker, no call ring notification, no PiP window, no message forwarding). Set homeserver to matrix.lotusguild.org.

    +

    The upstream open-source Cinny client, on the web and as a desktop app for Windows, macOS and Linux. It has the same Discord-like UI and space navigation as Lotus Chat, and now includes voice/video calls, voice rooms and screenshare through embedded Element Call, with ringing for DM calls. It lacks our custom additions (no GIF picker, no PiP window, no message forwarding). Set homeserver to matrix.lotusguild.org.

@@ -697,10 +702,10 @@ iOS Android Rust SDK - Voice, Video & Screenshare + Voice & Video -

Fastest Matrix client — instant load via Sliding Sync. Native MatrixRTC calls (voice-only + video), screenshare, DM voice calls, live location sharing, media captions. Full space create & management. Rust encryption (Vodozemac).

+

Element's next-generation mobile client for iOS and Android, built on the Rust SDK with Simplified Sliding Sync for near-instant startup (the iOS app also runs on Apple Silicon Macs). Voice and video calls, 1:1 and group, via embedded Element Call (MatrixRTC). It can view but not start screenshares. Live location sharing, media captions, polls, pinned messages, a media browser and spaces with create and management, plus custom status on supported homeservers. Threads are in Labs. Rust crypto (Vodozemac).

@@ -708,19 +713,19 @@
iOS Android - Desktop + Linux Web - Dart SDK - Calls Experimental + Dart SDK + Voice & Video (Experimental)
-

Simple, beginner-friendly, fully cross-platform. Dart SDK with Vodozemac encryption. Unique: supports image captions (text + image as one event). Voice/video calls are experimental — reliability varies by homeserver and platform.

+

Simple, beginner-friendly Matrix client with a WhatsApp/Telegram-style design, available on Android, iOS, web and Linux desktop. Built on the Dart SDK with Vodozemac encryption. Supports threads, polls, image captions, custom sticker packs, voice messages and spaces. 1:1 voice and video calls exist but remain experimental: they are off by default, DM-only, legacy WebRTC, and there are no group calls.

-

Discord-like — Android, Windows, macOS & Linux

+

Discord-like — Android, Windows, Linux & Web

@@ -728,13 +733,13 @@
Android Windows - macOS Linux - Beta - Voice & Video + Web + Dart SDK + Voice, Video & Screenshare
-

Most Discord-like client overall. Multi-account support, built-in GIF search (privacy proxy — uploads to homeserver), shared calendars & photo albums, polls, screenshare on browsers & Android. Available on Android, Windows, macOS, Linux, and Web. Active development — iOS planned.

+

Discord-style client built with Flutter. Multi-account support with all accounts signed in at once, built-in GIF search (Tenor through a privacy proxy, uploaded to your homeserver), shared calendar and photo-album rooms, polls, threads and widgets (new in v0.5.0). 1:1 calls use WebRTC and voice channels use MatrixRTC/LiveKit, with screenshare on desktop, Android and web. Encrypted group calls are experimental. Available for Windows, Linux, Android and on the web at app.commet.chat. Actively developed; macOS and iOS are planned.

@@ -753,7 +758,7 @@ Voice, Video & Screenshare -

Most feature-complete Matrix client — every spec feature including polls, widgets, threads, screenshare. Heavier on resources. Encrypted message search on desktop only (not web).

+

Element's reference web and desktop client (Electron), with the broadest feature set here: threads, polls, widgets, location sharing, chat export and a room list with sections, filters and sorting. Voice/video calls with screenshare use embedded Element Call when the homeserver provides it, with legacy 1:1 and Jitsi fallbacks. Heavier on resources. Encrypted message search on desktop only (not web).

@@ -762,10 +767,11 @@ Windows macOS Linux - Voice & Video + Qt/C++ + Voice, Video & Screenshare (1:1, Linux)
-

Native C++/Qt client — lightest desktop option, no Electron. Deep KDE/Plasma integration. No threads, no mobile or web. Best for Linux power users who want minimal resource usage.

+

Native Qt/C++ desktop client with no Electron and a low resource footprint. It has threads, local encrypted search, custom emoji and sticker packs, and a D-Bus API for Linux integrations. 1:1 voice and video calls with screenshare use legacy WebRTC and are only in Linux builds; there are no group calls. No mobile or web version. Development has slowed: the last release was v0.12.1 in August 2025. A good fit for Linux users who want a lightweight native client.

@@ -779,7 +785,7 @@

Client Feature Comparison

-Client comparison last reviewed +Client comparison last reviewed

← swipe to compare →

@@ -791,8 +797,8 @@ Client comparison last reviewed Lotus Chatchat.lotusguild.org
Our Cinny fork
Cinnycinny.in
Official
Element XiOS & Android - FluffyChatAll platforms - CommetAndroid / Win / macOS / Linux + FluffyChatAndroid, iOS, Web & Linux + CommetAndroid / Win / Linux / Web ElementWeb & Desktop NhekoDesktop only @@ -823,9 +829,9 @@ Client comparison last reviewed Desktop app ✓ ✓Cinny Desktop - ✗ + ~iOS build runs on Apple Silicon Macs (no Windows/Linux) ✓ - ✓Win, macOS & Linux + ✓Windows & Linux (macOS: build from source only) ✓ ✓ @@ -835,7 +841,7 @@ Client comparison last reviewed ✓ ✗ ✓ - ✗ + ✓app.commet.chat (v0.5.0) ✓ ✗ @@ -855,10 +861,10 @@ Client comparison last reviewed ✓ ✗ ✗ - ✗ - ✗ + ~Linux: click opens chat, Mark-as-read/Mute actions; no inline reply + ✓Windows & Linux: click-to-open, inline reply, call accept/decline ~ - ✗ + ✓Linux inline reply (D-Bus), macOS quick reply, click-to-open Windows Jump List (recent rooms) @@ -895,7 +901,7 @@ Client comparison last reviewed ✓ ✗ ✗ - ✗ + ~wakelock during (experimental) calls ✗ ~ ✗ @@ -923,18 +929,18 @@ Client comparison last reviewed Vodozemac encryptionstronger crypto track record - ✗js-sdk - ✗js-sdk + ✓Rust crypto (matrix-sdk-crypto-wasm) via js-sdk + ✓Rust crypto (matrix-sdk-crypto-wasm) via js-sdk ✓Rust SDK ✓dart-sdk ✓dart-sdk - ✗js-sdk, migrating + ✓Rust crypto (matrix-sdk-crypto-wasm) ✗ Device verification ✓SAS emoji, cross-client requests show inline card - ~cross-client requests
may show unsupported
+ ~own devices only (emoji + recovery key) ✓ ✓ ✓ @@ -945,41 +951,41 @@ Client comparison last reviewed Voice & video calls ✓rooms & DMs, group calls,
screenshare via Element Call
- ~Element Call embed;
no ring notification
- ✓MatrixRTC - ~experimental, varies
by homeserver
- ~1:1 + group,
no E2EE voice rooms
- ✓ + ✓1:1 + group via embedded Element Call + ✓1:1 & group via embedded Element Call + ~experimental setting, DMs only (legacy 1:1 WebRTC) + ✓1:1 WebRTC; voice channels via MatrixRTC + LiveKit; E2EE experimental ✓ + ~1:1 only, legacy VoIP; Linux builds only Screenshare ✓via Element Call; fullscreen button,
independent audio mute
✓via Element Call embed + ✗can view others' screenshares, cannot start one + ~experimental 1:1 calls, mobile & web only + ✓desktop, Android & browser; 1:1 and voice channels ✓ - ✗ - ✗ - ✓ - ✓XDG portals & native + ✓Linux builds only (1:1 calls; XDG portal) Noise suppressionfilter background noise from mic ✓3 tiers: off / browser-native /
on-device ML (RNNoise, Speex,
DTLN, DeepFilterNet 3),
works on self-hosted SFU
~browser-native
via Element Call
~browser-native - ✗ - ✗ - ~browser-native;
ML only on LiveKit Cloud
+ ~WebRTC-native + ~browser-native (WebRTC) + ~browser-native (WebRTC noiseSuppression toggle) ✗ Push-to-Talkhold key to transmit ✓configurable hold key,
PTT badge in call bar;
M = push-to-deafen;
system-wide on Windows desktop
+ ~hold Space while muted (Element Call built-in); no configurable key ✗ ✗ ✗ - ✗ - ✗ + ~hold Space while muted in Element Call; no configurable key ✗ @@ -1005,32 +1011,32 @@ Client comparison last reviewed Call join/leave soundscue when others come & go ✓3 styles,
Web Audio synth
+ ✓via Element Call (calls up to 8 people) + ✓via Element Call ✗ - ✗ - ✗ - ✗ - ✗ + ✓voice channels play join/leave cues for other participants + ✓Element Call (calls up to 8 people) ✗ Group calls ✓via Element Call embed ✓via Element Call embed - ✓MatrixRTC + ✓via embedded Element Call ✗ - ~no E2EE voice rooms + ~MatrixRTC voice channels; E2EE experimental (v0.5.0) ✓ - ~partial + ✗1:1 only; no MatrixRTC/Element Call or Jitsi Incoming call notificationring + Answer/Decline ✓DMs & group chats;
ring tone, auto-dismiss
- ✗ + ✓rings for DM calls (Answer/Reject); silent prompt for group calls ✓native push ~experimental ✓ - ✓desktop - ~partial + ✓ringing toast with Accept/Decline (web & desktop) + ✓ringtone (selectable) + Accept/Decline bar Core Features @@ -1048,15 +1054,15 @@ Client comparison last reviewed ✓side panel + Slack-style per-thread notifications ~basic, no dedicated view ~Labs flag - ✗shows as regular messages + ✓thread view since v2.3.0 ✓ ✓ - ✗ + ✓since v0.11.0 Polls ✓create, vote & display;
single or multiple choice
- ~display only + ✗not rendered (no m.poll support) ✓create, vote & end ✓added v2.3.0 ✓added v0.4.2 @@ -1071,14 +1077,14 @@ Client comparison last reviewed ✓record & play,
pause support
~playback confirmed;
recording unclear
✓ - ✗ + ~playback only (inline audio player); no recording Pinned messages ✓ ✓ ✓dedicated pins view - ~view only + ✓pin/unpin + pinned banner ✓ ✓ ✓ @@ -1108,20 +1114,20 @@ Client comparison last reviewed ✓local cache scan; load-more
buttons extend history per room
~server search only;
no E2EE support
✗ - ~cache scan only + ~per-room; downloads & decrypts history client-side ✓client-side; auto-fetches +
decrypts history during search
~desktop only, not web ~local DB scan Widgets - ✗ - ✗ + ✓room widgets; asks before a widget may read or send in the room ✗ ✗ ✗ + ✓added v0.5.0 (Widgets API, native runner on Android/Windows) ✓ - ✗ + ~listed in room header, open externally UX & Extras @@ -1129,7 +1135,7 @@ Client comparison last reviewed ✗ ✗ ✗ - ~supported but clunky + ✓account switcher; multi-account push since v2.6.0 ✓ ✗ ✗CLI profiles only @@ -1137,11 +1143,11 @@ Client comparison last reviewed Image captions(text + image as one event) ✓caption field on
image & video upload
- ✗ + ~shows captions from other clients; cannot send ✓scrollable captions
on media (v26.04.2)
- ✓unique feature - ✗ + ✓ ✗ + ~shows captions from other clients; cannot send ~ @@ -1150,7 +1156,7 @@ Client comparison last reviewed ✓ ✗ ✗WhatsApp/Telegram style - ✓most Discord-like overall + ✓Discord-like layout ✗ ✗ @@ -1187,17 +1193,17 @@ Client comparison last reviewed Deleted message visibility(redacted events) ✓"Message deleted" with reason
if provided
- ✗redacted messages hidden + ~hidden by default; shown with "Show Hidden Events" ✓"Message deleted"
placeholder shown
✓shows redaction notice - ✓shows redaction notice + ✗redacted events are hidden from the timeline ✓"Message deleted"
placeholder shown
✓shows redaction notice Location sharing ~map embed view +
static share button
- ✗ + ~shows received locations; cannot send ✓live & static,
map rendering
~basic static ✗ @@ -1208,16 +1214,16 @@ Client comparison last reviewed Message forwarding ✓forward to any room ✗ - ~via share menu - ✓ - ~ + ✓Forward action; multi-room on Android ✓ ✗ + ✓ + ✓ Per-message read receiptswho read each message ✓avatar pill below message,
click for list + timestamps
- ✗ + ✓'Read Receipts' in message menu lists readers ✓avatar thumbnails ✓ ✓ @@ -1227,59 +1233,59 @@ Client comparison last reviewed Who reactedsee who reacted with each emoji ✓hover tooltip with names;
right-click for full avatar modal
- ✗ - ~tap reaction chip - ~ + ✓hover tooltip + 'View Reactions' viewer + ✓long-press reaction for summary sheet + ✓long-press reaction ✓ - ✓tooltip + click for list + ✓hover tooltip lists reactors ✓ Edit history viewersee all prior versions of an edited message ✓click "(edited)" label → modal
with all versions + timestamps
✗label shown, not clickable - ✓ + ✗shows "(edited)" label only ✗ ✗ ✓ - ✓ + ✗only an 'Edited' marker Custom status messageshown below username ✓emoji picker, auto-clear timer
(30 min – 7 days), 64-char limit
✗ - ✗ - ✗ - ✗ - ✓via profile settings - ✗ + ~emoji + text status (needs server support) + ✓Set status; shown under DM header & in profile + ✓shown under name in user panels/profile + ~Labs; needs homeserver support (MSC4429) + ✓shown next to sender name in timeline & in profile Online presence trackingidle/away auto-detection ✓online on start, idle after 10 min,
unavailable when tab hidden,
offline on close; hide-status toggle
- ~manual AFK only; auto idle
detection PR open, unmerged
- ~basic online/offline only - ~basic online/offline only - ~inactivity monitor shipped Oct 2025;
no tab/close detection confirmed
- ~3-min idle timer (shipped Nov 2023);
no tab detection, no offline on close,
no user-facing hide toggle
+ ~shows others' status; no idle detection + ~reports own presence; doesn't show others' ~basic online/offline only + ~sets 'unavailable' 15s after the app loses focus; no input-idle timer + ~3-min idle → away; no hide toggle + ~auto: unavailable ~30 s after losing focus Media Gallerybrowse room images/videos/files ✓right-side drawer;
Images/Videos/Files tabs
✗ + ✓"Media and files" browser in room info + ✓Gallery & Files tabs in chat search ✗ - ✗ - ✗ - ✗ + ~Files panel lists room attachments; no grid gallery ✗ Sidebar room filterfilter by name in real time ✓Home & DMs tabs ✗ - ✗ - ✗ + ✓room list search + filter chips + ✓search field filters chat list by name + filter chips ✗ ✗ ✗ @@ -1288,30 +1294,30 @@ Client comparison last reviewed Favorite roomsstarred section in sidebar ✓m.favourite tag, syncs
across devices
✗ - ✗ - ✗ - ✗ + ~Favourites filter chip (no separate section) + ~favourite (pin) floats to top; tag filter chips + ✓'Favorites' section (v0.5.0) ✓favourites section - ✗ + ✓'Favourites' tag in community sidebar Invite link + QR code ✓matrix.to URL + QR code
in invite modal & room settings
✗ + ~share room link; no QR + ✓share invite link + QR codes ✗ - ✗ - ✗ - ✗ + ✓Share room dialog: matrix.to link + QR code ✗ Custom notification soundsper-category sound selector ✓per-category sound selector; ▶ preview ✗ + ~iOS: choose alert tone (global) ✗ ✗ - ✗ - ✗ + ~per room, not per category ✗ @@ -1329,15 +1335,15 @@ Client comparison last reviewed ✓Recent / A→Z / Unread First ✗ ~sort by activity only - ~alphabetical only - ✓multiple sort options - ~limited - ✗ + ~activity only (favourites first, low priority last) + ~manual drag-reorder; no sort selector + ✓Activity, A-Z or Unread-first + ✓by importance/unread or alphabetical Push notifications - ~web push only - ~web push only + ~OS notifications while the app is open; no background push yet + ~only while the tab/app is open; optional email ✓ ✓ ✓ @@ -1361,7 +1367,7 @@ Client comparison last reviewed ✗ ✗ ✗ - ~partial / labs + ✗ ✗ @@ -1371,7 +1377,7 @@ Client comparison last reviewed ✗ ✗ ✗ - ✓ + ✗ ✗ @@ -1379,7 +1385,7 @@ Client comparison last reviewed ✓"Read more" toggle,
threshold configurable
✗ ✗ - ✗ + ✓collapses >25 lines (configurable), Show more/less ✗ ✗ ✗ @@ -1410,7 +1416,7 @@ Client comparison last reviewed ✗ ✗ ✗ - ✗ + ✓leading emoji becomes the room icon when no avatar ✗ ✗ @@ -1420,9 +1426,9 @@ Client comparison last reviewed ✗ ✗ ✗ - ~hover bar, no recents - ✗ + ✓hover bar shows up to 4 recent reactions, 1-click ✗ + ✓hover bar shows recent reactions, 1-click In-app notification toastsTDS-styled, when window focused @@ -1438,7 +1444,7 @@ Client comparison last reviewed On-device message translationread foreign messages in your language ✓100% on-device browser AI;
works in E2EE rooms, no cloud;
Chromium desktop & Lotus app
✗ - ✗ + ~iOS only (Apple Translation) ✗ ✗ ✗