feat: add Lotus Chat column and official Cinny comparison to landing page
Add chat.lotusguild.org as the featured Cinny fork column and cinny.in as a second comparison column. Adds official Cinny card in Other Clients section and updates table colspan to 8. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+72
-25
@@ -281,7 +281,7 @@
|
||||
|
||||
table {
|
||||
width: 100%; border-collapse: collapse;
|
||||
font-size: 0.78rem; min-width: 640px;
|
||||
font-size: 0.78rem; min-width: 760px;
|
||||
}
|
||||
|
||||
thead tr { border-bottom: 1px solid rgba(152,0,0,0.15); }
|
||||
@@ -465,7 +465,7 @@
|
||||
|
||||
/* Table */
|
||||
.scroll-hint { display: block; }
|
||||
table { font-size: 0.71rem; min-width: 520px; }
|
||||
table { font-size: 0.71rem; min-width: 620px; }
|
||||
th { padding: 8px 5px; font-size: 0.6rem; }
|
||||
th:first-child { min-width: 100px; padding-left: 10px; }
|
||||
td { padding: 7px 5px; }
|
||||
@@ -497,7 +497,7 @@
|
||||
h1 { font-size: 1.3rem; }
|
||||
.logo { width: 84px; height: 84px; }
|
||||
.card { padding: 18px 12px; }
|
||||
table { font-size: 0.66rem; min-width: 480px; }
|
||||
table { font-size: 0.66rem; min-width: 580px; }
|
||||
th { font-size: 0.55rem; padding: 7px 4px; }
|
||||
td { padding: 6px 4px; }
|
||||
td:first-child { font-size: 0.66rem; min-width: 90px; }
|
||||
@@ -554,8 +554,8 @@
|
||||
</a>
|
||||
</div>
|
||||
<p class="also-available">
|
||||
A custom Lotus Guild fork of Cinny with added features: DM calls with ring notification, GIF picker, draggable+resizable PiP call window, poll display & voting, message forwarding, image/video captions, location sharing (map view + send), deleted message placeholders, and the Lotus Terminal design theme.
|
||||
Prefer the official client? Use <a href="https://cinny.in" target="_blank" rel="noopener">cinny.in</a> and set homeserver to <code style="font-size:0.8em;color:#e88;">matrix.lotusguild.org</code>.
|
||||
Our Lotus Guild fork of Cinny adds: incoming call ring + Answer/Decline (DMs & group chats), GIF picker (Giphy), draggable+resizable picture-in-picture call window, poll display & voting, message forwarding, image/video captions, location sharing (map view + send), deleted message placeholders, and the Lotus Terminal design theme.
|
||||
Prefer the unmodified upstream? <a href="https://cinny.in" target="_blank" rel="noopener">cinny.in</a> works with our homeserver — set it to <code style="font-size:0.8em;color:#e88;">matrix.lotusguild.org</code>.
|
||||
</p>
|
||||
|
||||
<div class="space-join">
|
||||
@@ -569,6 +569,22 @@
|
||||
<div class="clients-section">
|
||||
<h3>Other Clients</h3>
|
||||
|
||||
<div class="client-group">
|
||||
<p class="client-group-label">Web & Desktop — Official Cinny</p>
|
||||
<div class="client-cards">
|
||||
<div class="client-card">
|
||||
<div class="client-card-top">
|
||||
<a href="https://cinny.in" target="_blank" rel="noopener" class="client-card-name">Cinny</a>
|
||||
<div class="client-card-tags">
|
||||
<span class="tag dim">Web</span>
|
||||
<span class="tag dim">Desktop</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="client-card-desc">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 <code style="font-size:0.85em;color:#e88;background:rgba(152,0,0,0.08);padding:1px 5px;border-radius:4px;">matrix.lotusguild.org</code>.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="client-group">
|
||||
<p class="client-group-label">Mobile — iOS & Android</p>
|
||||
<div class="client-cards">
|
||||
@@ -592,17 +608,17 @@
|
||||
<span class="tag dim">Android</span>
|
||||
<span class="tag dim">Desktop</span>
|
||||
<span class="tag dim">Web</span>
|
||||
<span class="tag rust">Rust SDK</span>
|
||||
<span class="tag dim">Dart SDK</span>
|
||||
<span class="tag warn">Calls Experimental</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="client-card-desc">Simple, beginner-friendly, fully cross-platform. Rust encryption (Vodozemac). Unique: supports image captions (text + image as one event). Voice/video calls are experimental — reliability varies by homeserver and platform.</p>
|
||||
<p class="client-card-desc">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.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="client-group">
|
||||
<p class="client-group-label">Discord-like — Android, Windows & Linux</p>
|
||||
<p class="client-group-label">Discord-like — Android, Windows, macOS & Linux</p>
|
||||
<div class="client-cards">
|
||||
<div class="client-card">
|
||||
<div class="client-card-top">
|
||||
@@ -610,12 +626,13 @@
|
||||
<div class="client-card-tags">
|
||||
<span class="tag dim">Android</span>
|
||||
<span class="tag dim">Windows</span>
|
||||
<span class="tag dim">macOS</span>
|
||||
<span class="tag dim">Linux</span>
|
||||
<span class="tag beta">Beta</span>
|
||||
<span class="tag voice">Voice & Video</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="client-card-desc">Most Discord-like client overall. Multi-account support, built-in GIF search (privacy proxy — uploads to homeserver), shared calendars & photo albums, polls (v0.4.2), screenshare on browsers & Android. Available on Android, Windows, Linux, Web, and macOS (Beta). Active development.</p>
|
||||
<p class="client-card-desc">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.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -665,10 +682,11 @@
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th class="ours">Cinny<small>chat.lotusguild.org<br>Lotus fork</small></th>
|
||||
<th class="ours">Lotus Chat<small>chat.lotusguild.org<br>Our Cinny fork</small></th>
|
||||
<th>Cinny<small>cinny.in<br>Official</small></th>
|
||||
<th>Element X<small>iOS & Android</small></th>
|
||||
<th>FluffyChat<small>All platforms</small></th>
|
||||
<th>Commet<small>Android / Win / Linux</small></th>
|
||||
<th>Commet<small>Android / Win / macOS / Linux</small></th>
|
||||
<th>Element<small>Web & Desktop</small></th>
|
||||
<th>Nheko<small>Desktop only</small></th>
|
||||
</tr>
|
||||
@@ -676,10 +694,11 @@
|
||||
<tbody>
|
||||
|
||||
<!-- Platform -->
|
||||
<tr class="section-header"><td colspan="7">Platform</td></tr>
|
||||
<tr class="section-header"><td colspan="8">Platform</td></tr>
|
||||
<tr>
|
||||
<td>iOS</td>
|
||||
<td class="ours"><span class="no">✗</span></td>
|
||||
<td><span class="no">✗</span></td>
|
||||
<td><span class="yes">✓</span></td>
|
||||
<td><span class="yes">✓</span></td>
|
||||
<td><span class="no">✗</span></td>
|
||||
@@ -689,6 +708,7 @@
|
||||
<tr>
|
||||
<td>Android</td>
|
||||
<td class="ours"><span class="no">✗</span></td>
|
||||
<td><span class="no">✗</span></td>
|
||||
<td><span class="yes">✓</span></td>
|
||||
<td><span class="yes">✓</span></td>
|
||||
<td><span class="yes">✓</span></td>
|
||||
@@ -698,15 +718,17 @@
|
||||
<tr>
|
||||
<td>Desktop app</td>
|
||||
<td class="ours"><span class="yes">✓</span></td>
|
||||
<td><span class="yes">✓</span><small>Cinny Desktop</small></td>
|
||||
<td><span class="no">✗</span></td>
|
||||
<td><span class="yes">✓</span></td>
|
||||
<td><span class="yes">✓</span><small>Win & Linux</small></td>
|
||||
<td><span class="yes">✓</span><small>Win, macOS & Linux</small></td>
|
||||
<td><span class="yes">✓</span></td>
|
||||
<td><span class="yes">✓</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Web browser</td>
|
||||
<td class="ours"><span class="yes">✓</span></td>
|
||||
<td><span class="yes">✓</span></td>
|
||||
<td><span class="no">✗</span></td>
|
||||
<td><span class="yes">✓</span></td>
|
||||
<td><span class="no">✗</span></td>
|
||||
@@ -716,6 +738,7 @@
|
||||
<tr>
|
||||
<td>Performance</td>
|
||||
<td class="ours">Light</td>
|
||||
<td>Light</td>
|
||||
<td>Very fast<small>Sliding Sync</small></td>
|
||||
<td>Moderate</td>
|
||||
<td>Moderate</td>
|
||||
@@ -724,7 +747,7 @@
|
||||
</tr>
|
||||
|
||||
<!-- Security -->
|
||||
<tr class="section-header"><td colspan="7">Security & Encryption</td></tr>
|
||||
<tr class="section-header"><td colspan="8">Security & Encryption</td></tr>
|
||||
<tr>
|
||||
<td>E2EE</td>
|
||||
<td class="ours"><span class="yes">✓</span></td>
|
||||
@@ -733,19 +756,22 @@
|
||||
<td><span class="yes">✓</span></td>
|
||||
<td><span class="yes">✓</span></td>
|
||||
<td><span class="yes">✓</span></td>
|
||||
<td><span class="yes">✓</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Rust SDK (Vodozemac)<small>stronger crypto track record</small></td>
|
||||
<td>Vodozemac encryption<small>stronger crypto track record</small></td>
|
||||
<td class="ours"><span class="no">✗</span><small>js-sdk</small></td>
|
||||
<td><span class="yes">✓</span></td>
|
||||
<td><span class="yes">✓</span></td>
|
||||
<td><span class="yes">✓</span></td>
|
||||
<td><span class="no">✗</span><small>js-sdk</small></td>
|
||||
<td><span class="yes">✓</span><small>Rust SDK</small></td>
|
||||
<td><span class="yes">✓</span><small>dart-sdk</small></td>
|
||||
<td><span class="yes">✓</span><small>dart-sdk</small></td>
|
||||
<td><span class="no">✗</span><small>js-sdk, migrating</small></td>
|
||||
<td><span class="no">✗</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Device verification</td>
|
||||
<td class="ours"><span class="part">~</span><small>requests may show as<br>"Unsupported message"</small></td>
|
||||
<td><span class="part">~</span><small>cross-client requests<br>may show unsupported</small></td>
|
||||
<td><span class="yes">✓</span></td>
|
||||
<td><span class="yes">✓</span></td>
|
||||
<td><span class="yes">✓</span></td>
|
||||
@@ -754,10 +780,11 @@
|
||||
</tr>
|
||||
|
||||
<!-- Calling -->
|
||||
<tr class="section-header"><td colspan="7">Voice & Video</td></tr>
|
||||
<tr class="section-header"><td colspan="8">Voice & Video</td></tr>
|
||||
<tr>
|
||||
<td>Voice & video calls</td>
|
||||
<td class="ours"><span class="yes">✓</span><small>rooms & DMs, group calls,<br>screenshare via Element Call</small></td>
|
||||
<td><span class="part">~</span><small>Element Call embed;<br>no ring notification</small></td>
|
||||
<td><span class="yes">✓</span><small>MatrixRTC</small></td>
|
||||
<td><span class="part">~</span><small>experimental, varies<br>by homeserver</small></td>
|
||||
<td><span class="part">~</span><small>1:1 + group,<br>no E2EE voice rooms</small></td>
|
||||
@@ -767,15 +794,17 @@
|
||||
<tr>
|
||||
<td>Screenshare</td>
|
||||
<td class="ours"><span class="yes">✓</span><small>via Element Call embed</small></td>
|
||||
<td><span class="yes">✓</span><small>via Element Call embed</small></td>
|
||||
<td><span class="yes">✓</span></td>
|
||||
<td><span class="no">✗</span></td>
|
||||
<td><span class="no">✗</span></td>
|
||||
<td><span class="yes">✓</span></td>
|
||||
<td><span class="part">~</span><small>partial</small></td>
|
||||
<td><span class="yes">✓</span><small>XDG portals & native</small></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Group calls</td>
|
||||
<td class="ours"><span class="yes">✓</span><small>via Element Call embed</small></td>
|
||||
<td><span class="yes">✓</span><small>via Element Call embed</small></td>
|
||||
<td><span class="yes">✓</span><small>MatrixRTC</small></td>
|
||||
<td><span class="no">✗</span></td>
|
||||
<td><span class="part">~</span><small>no E2EE voice rooms</small></td>
|
||||
@@ -784,7 +813,8 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Incoming call notification<small>ring + Answer/Decline</small></td>
|
||||
<td class="ours"><span class="yes">✓</span><small>DM rooms; ring tone,<br>30s auto-dismiss</small></td>
|
||||
<td class="ours"><span class="yes">✓</span><small>DMs & group chats;<br>ring tone, auto-dismiss</small></td>
|
||||
<td><span class="no">✗</span></td>
|
||||
<td><span class="yes">✓</span><small>native push</small></td>
|
||||
<td><span class="part">~</span><small>experimental</small></td>
|
||||
<td><span class="yes">✓</span></td>
|
||||
@@ -793,11 +823,12 @@
|
||||
</tr>
|
||||
|
||||
<!-- Core features -->
|
||||
<tr class="section-header"><td colspan="7">Core Features</td></tr>
|
||||
<tr class="section-header"><td colspan="8">Core Features</td></tr>
|
||||
<tr>
|
||||
<td>Spaces</td>
|
||||
<td class="ours"><span class="yes">✓</span><small>best-in-class sub-space nav</small></td>
|
||||
<td><span class="part">~</span><small>viewing works;<br>management in progress</small></td>
|
||||
<td><span class="yes">✓</span><small>best-in-class sub-space nav</small></td>
|
||||
<td><span class="yes">✓</span><small>dedicated spaces tab,<br>full management</small></td>
|
||||
<td><span class="yes">✓</span></td>
|
||||
<td><span class="yes">✓</span><small>Discord-like categories</small></td>
|
||||
<td><span class="yes">✓</span><small>sub-spaces clunky</small></td>
|
||||
@@ -806,6 +837,7 @@
|
||||
<tr>
|
||||
<td>Threads</td>
|
||||
<td class="ours"><span class="part">~</span><small>basic, no dedicated view</small></td>
|
||||
<td><span class="part">~</span><small>basic, no dedicated view</small></td>
|
||||
<td><span class="part">~</span><small>Labs flag</small></td>
|
||||
<td><span class="no">✗</span><small>shows as regular messages</small></td>
|
||||
<td><span class="yes">✓</span></td>
|
||||
@@ -815,6 +847,7 @@
|
||||
<tr>
|
||||
<td>Polls</td>
|
||||
<td class="ours"><span class="yes">✓</span><small>display & vote</small></td>
|
||||
<td><span class="part">~</span><small>display only</small></td>
|
||||
<td><span class="yes">✓</span><small>create, vote & end</small></td>
|
||||
<td><span class="yes">✓</span><small>added v2.3.0</small></td>
|
||||
<td><span class="yes">✓</span><small>added v0.4.2</small></td>
|
||||
@@ -824,6 +857,7 @@
|
||||
<tr>
|
||||
<td>Voice messages<small>record & play</small></td>
|
||||
<td class="ours"><span class="part">~</span><small>playback only</small></td>
|
||||
<td><span class="part">~</span><small>playback only</small></td>
|
||||
<td><span class="yes">✓</span><small>record, play, variable speed,<br>reply with voice</small></td>
|
||||
<td><span class="yes">✓</span><small>record & play,<br>pause support</small></td>
|
||||
<td><span class="part">~</span><small>playback confirmed;<br>recording unclear</small></td>
|
||||
@@ -833,6 +867,7 @@
|
||||
<tr>
|
||||
<td>Pinned messages</td>
|
||||
<td class="ours"><span class="yes">✓</span></td>
|
||||
<td><span class="yes">✓</span></td>
|
||||
<td><span class="yes">✓</span><small>dedicated pins view</small></td>
|
||||
<td><span class="part">~</span><small>view only</small></td>
|
||||
<td><span class="yes">✓</span></td>
|
||||
@@ -842,6 +877,7 @@
|
||||
<tr>
|
||||
<td>Custom emoji & stickers</td>
|
||||
<td class="ours"><span class="yes">✓</span><small>best-in-class</small></td>
|
||||
<td><span class="yes">✓</span></td>
|
||||
<td><span class="part">~</span></td>
|
||||
<td><span class="yes">✓</span></td>
|
||||
<td><span class="yes">✓</span><small>bulk upload, Signal packs</small></td>
|
||||
@@ -853,6 +889,7 @@
|
||||
<td class="ours"><span class="yes">✓</span><small>Giphy, Terminal TDS themed,<br>click-outside to close</small></td>
|
||||
<td><span class="no">✗</span></td>
|
||||
<td><span class="no">✗</span></td>
|
||||
<td><span class="no">✗</span></td>
|
||||
<td><span class="yes">✓</span><small>privacy proxy,<br>uploads to homeserver</small></td>
|
||||
<td><span class="no">✗</span></td>
|
||||
<td><span class="no">✗</span></td>
|
||||
@@ -860,6 +897,7 @@
|
||||
<tr>
|
||||
<td>Message search (encrypted)</td>
|
||||
<td class="ours"><span class="part">~</span><small>partial, some rooms broken</small></td>
|
||||
<td><span class="part">~</span><small>partial</small></td>
|
||||
<td><span class="no">✗</span></td>
|
||||
<td><span class="part">~</span></td>
|
||||
<td><span class="yes">✓</span></td>
|
||||
@@ -872,16 +910,18 @@
|
||||
<td><span class="no">✗</span></td>
|
||||
<td><span class="no">✗</span></td>
|
||||
<td><span class="no">✗</span></td>
|
||||
<td><span class="no">✗</span></td>
|
||||
<td><span class="yes">✓</span></td>
|
||||
<td><span class="no">✗</span></td>
|
||||
</tr>
|
||||
|
||||
<!-- UX / extras -->
|
||||
<tr class="section-header"><td colspan="7">UX & Extras</td></tr>
|
||||
<tr class="section-header"><td colspan="8">UX & Extras</td></tr>
|
||||
<tr>
|
||||
<td>Multi-account</td>
|
||||
<td class="ours"><span class="no">✗</span></td>
|
||||
<td><span class="no">✗</span></td>
|
||||
<td><span class="no">✗</span></td>
|
||||
<td><span class="part">~</span><small>supported but clunky</small></td>
|
||||
<td><span class="yes">✓</span></td>
|
||||
<td><span class="no">✗</span></td>
|
||||
@@ -890,6 +930,7 @@
|
||||
<tr>
|
||||
<td>Image captions<small>(text + image as one event)</small></td>
|
||||
<td class="ours"><span class="yes">✓</span><small>caption field on<br>image & video upload</small></td>
|
||||
<td><span class="no">✗</span></td>
|
||||
<td><span class="yes">✓</span><small>scrollable captions<br>on media (v26.04.2)</small></td>
|
||||
<td><span class="yes">✓</span><small>unique feature</small></td>
|
||||
<td><span class="no">✗</span></td>
|
||||
@@ -899,6 +940,7 @@
|
||||
<tr>
|
||||
<td>Discord-like UI</td>
|
||||
<td class="ours"><span class="yes">✓</span><small>best-in-class for web</small></td>
|
||||
<td><span class="yes">✓</span></td>
|
||||
<td><span class="no">✗</span></td>
|
||||
<td><span class="no">✗</span><small>WhatsApp/Telegram style</small></td>
|
||||
<td><span class="yes">✓</span><small>most Discord-like overall</small></td>
|
||||
@@ -910,6 +952,7 @@
|
||||
<td class="ours"><span class="no">✗</span></td>
|
||||
<td><span class="no">✗</span></td>
|
||||
<td><span class="no">✗</span></td>
|
||||
<td><span class="no">✗</span></td>
|
||||
<td><span class="yes">✓</span><small>unique to Commet</small></td>
|
||||
<td><span class="no">✗</span></td>
|
||||
<td><span class="no">✗</span></td>
|
||||
@@ -917,6 +960,7 @@
|
||||
<tr>
|
||||
<td>Deleted message visibility<small>(redacted events)</small></td>
|
||||
<td class="ours"><span class="yes">✓</span><small>"Message deleted" with reason<br>if provided</small></td>
|
||||
<td><span class="no">✗</span><small>redacted messages hidden</small></td>
|
||||
<td><span class="yes">✓</span><small>"Message deleted"<br>placeholder shown</small></td>
|
||||
<td><span class="yes">✓</span><small>shows redaction notice</small></td>
|
||||
<td><span class="yes">✓</span><small>shows redaction notice</small></td>
|
||||
@@ -926,6 +970,7 @@
|
||||
<tr>
|
||||
<td>Location sharing</td>
|
||||
<td class="ours"><span class="part">~</span><small>map embed view +<br>static share button</small></td>
|
||||
<td><span class="no">✗</span></td>
|
||||
<td><span class="yes">✓</span><small>live & static,<br>map rendering</small></td>
|
||||
<td><span class="part">~</span><small>basic static</small></td>
|
||||
<td><span class="no">✗</span></td>
|
||||
@@ -935,6 +980,7 @@
|
||||
<tr>
|
||||
<td>Message forwarding</td>
|
||||
<td class="ours"><span class="yes">✓</span><small>forward to any room</small></td>
|
||||
<td><span class="no">✗</span></td>
|
||||
<td><span class="part">~</span><small>via share menu</small></td>
|
||||
<td><span class="yes">✓</span></td>
|
||||
<td><span class="part">~</span></td>
|
||||
@@ -944,6 +990,7 @@
|
||||
<tr>
|
||||
<td>Push notifications</td>
|
||||
<td class="ours"><span class="part">~</span><small>web push only</small></td>
|
||||
<td><span class="part">~</span><small>web push only</small></td>
|
||||
<td><span class="yes">✓</span></td>
|
||||
<td><span class="yes">✓</span></td>
|
||||
<td><span class="yes">✓</span></td>
|
||||
@@ -956,7 +1003,7 @@
|
||||
</div><!-- table-wrap -->
|
||||
|
||||
<div class="security-note" style="margin:14px 16px 6px;">
|
||||
<strong>Encryption architecture:</strong> Element X, FluffyChat, and Commet use <strong>Vodozemac</strong> — the Rust implementation of Matrix encryption — which has a stronger security track record than the older JavaScript SDK. Commet v0.4.2 added a web-compatible Vodozemac Dart binding. Cinny and Element Web/Desktop currently use <strong>matrix-js-sdk</strong>; Element is actively migrating to the Rust SDK via WebAssembly. Rust-based clients were not affected by historical js-sdk vulnerabilities.
|
||||
<strong>Encryption architecture:</strong> Element X uses the native <strong>matrix-rust-sdk</strong> with Vodozemac. FluffyChat and Commet use <strong>matrix-dart-sdk</strong>, which also wraps Vodozemac for its crypto — all three benefit from Vodozemac's stronger security track record over the older JavaScript SDK. Cinny and Element Web/Desktop currently use <strong>matrix-js-sdk</strong>; Element is actively migrating to the Rust SDK. Clients using Vodozemac were not affected by historical js-sdk vulnerabilities.
|
||||
</div>
|
||||
|
||||
<div class="legend">
|
||||
|
||||
Reference in New Issue
Block a user