diff --git a/landing/index.html b/landing/index.html index 87df2d9..b6fd38d 100644 --- a/landing/index.html +++ b/landing/index.html @@ -15,6 +15,7 @@ display: flex; align-items: center; justify-content: center; + padding: 20px 16px 40px; } body::before { @@ -34,9 +35,8 @@ position: relative; z-index: 1; text-align: center; - padding: 20px; - max-width: 560px; width: 100%; + max-width: 900px; } .logo { @@ -62,10 +62,7 @@ margin-bottom: 4px; } - h1 span { - color: #980000; - font-weight: 600; - } + h1 span { color: #980000; font-weight: 600; } .subtitle { font-size: 0.85rem; @@ -75,11 +72,14 @@ margin-bottom: 36px; } + /* ─── Cards / Panels ─── */ .card { - background: linear-gradient(145deg, rgba(22, 22, 22, 0.95), rgba(14, 14, 14, 0.98)); - border: 1px solid rgba(152, 0, 0, 0.2); + background: linear-gradient(145deg, rgba(22,22,22,0.95), rgba(14,14,14,0.98)); + border: 1px solid rgba(152,0,0,0.2); border-radius: 16px; padding: 32px; + max-width: 560px; + margin: 0 auto; } .card h2 { @@ -91,83 +91,58 @@ margin-bottom: 20px; } - .steps { - list-style: none; - text-align: left; - margin-bottom: 28px; - } + /* ─── Steps ─── */ + .steps { list-style: none; text-align: left; margin-bottom: 28px; } .steps li { display: flex; align-items: flex-start; gap: 14px; padding: 12px 0; - border-bottom: 1px solid rgba(255, 255, 255, 0.04); + border-bottom: 1px solid rgba(255,255,255,0.04); } .steps li:last-child { border-bottom: none; } .step-num { flex-shrink: 0; - width: 28px; - height: 28px; - background: rgba(152, 0, 0, 0.12); - border: 1px solid rgba(152, 0, 0, 0.35); + width: 28px; height: 28px; + background: rgba(152,0,0,0.12); + border: 1px solid rgba(152,0,0,0.35); border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; - font-size: 0.8rem; - font-weight: 600; - color: #c44; - } - - .step-text { - padding-top: 3px; - font-size: 0.95rem; - line-height: 1.5; - color: #bbb; + display: flex; align-items: center; justify-content: center; + font-size: 0.8rem; font-weight: 600; color: #c44; } + .step-text { padding-top: 3px; font-size: 0.95rem; line-height: 1.5; color: #bbb; } .step-text strong { color: #e0e0e0; } .homeserver { display: inline-block; - background: rgba(152, 0, 0, 0.1); - border: 1px solid rgba(152, 0, 0, 0.25); + background: rgba(152,0,0,0.1); + border: 1px solid rgba(152,0,0,0.25); color: #e88; font-family: 'SF Mono', 'Fira Code', 'Consolas', monospace; font-size: 0.85rem; padding: 3px 10px; border-radius: 6px; - margin-top: 2px; } - .step-text a { - color: #c44; - text-decoration: none; - border-bottom: 1px solid rgba(204, 68, 68, 0.3); + a { color: #c44; text-decoration: none; } + .step-text a, .option-block a { + border-bottom: 1px solid rgba(204,68,68,0.3); transition: border-color 0.2s; } + .step-text a:hover, .option-block a:hover { border-bottom-color: #c44; } - .step-text a:hover { border-bottom-color: #c44; } - + /* ─── Or divider ─── */ .or-divider { - display: flex; - align-items: center; - gap: 10px; + display: flex; align-items: center; gap: 10px; margin: 4px 0 10px 42px; - color: #444; - font-size: 0.78rem; - letter-spacing: 0.1em; - text-transform: uppercase; + color: #444; font-size: 0.78rem; letter-spacing: 0.1em; text-transform: uppercase; } - .or-divider::before, .or-divider::after { - content: ''; - flex: 1; - height: 1px; - background: rgba(255,255,255,0.06); + content: ''; flex: 1; height: 1px; background: rgba(255,255,255,0.06); } .option-block { @@ -176,374 +151,268 @@ background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.06); border-radius: 8px; - text-align: left; - font-size: 0.88rem; - color: #888; - line-height: 1.5; + text-align: left; font-size: 0.88rem; color: #888; line-height: 1.5; } - .option-block a { - color: #c44; - text-decoration: none; - border-bottom: 1px solid rgba(204, 68, 68, 0.3); - transition: border-color 0.2s; - } + .divider { height: 1px; background: rgba(152,0,0,0.15); margin: 24px 0; } - .option-block a:hover { border-bottom-color: #c44; } - - .divider { - height: 1px; - background: rgba(152, 0, 0, 0.15); - margin: 24px 0; + /* ─── Tags ─── */ + .tag { + font-size: 0.65rem; + background: rgba(255,255,255,0.08); + border: 1px solid rgba(255,255,255,0.1); + padding: 2px 8px; border-radius: 4px; + text-transform: uppercase; letter-spacing: 0.05em; color: #bbb; + white-space: nowrap; } + .tag.voice { background: rgba(0,180,120,0.2); border-color: rgba(0,180,120,0.4); color: #5effc4; } + .tag.beta { background: rgba(255,180,0,0.15); border-color: rgba(255,180,0,0.3); color: #ffcc55; } + .tag.dev { background: rgba(160,80,255,0.15); border-color: rgba(160,80,255,0.3); color: #cc88ff; } + .tag.rust { background: rgba(80,140,255,0.15); border-color: rgba(80,140,255,0.3); color: #88aaff; } + .tag.warn { background: rgba(255,140,0,0.15); border-color: rgba(255,140,0,0.3); color: #ffaa44; } + .tag.dim { background: rgba(255,255,255,0.04); border-color: rgba(255,255,255,0.08); color: #666; } - .clients-section h3 { - font-size: 0.8rem; - font-weight: 500; - color: #666; - text-transform: uppercase; - letter-spacing: 0.12em; - margin-bottom: 14px; - } - - .client-featured { - margin-bottom: 20px; - } + /* ─── Featured client ─── */ + .client-featured { margin-bottom: 16px; } .client-featured a { - display: flex; - flex-direction: column; - align-items: center; - gap: 6px; - background: linear-gradient(135deg, rgba(152, 0, 0, 0.25), rgba(120, 0, 0, 0.15)); - border: 1px solid rgba(152, 0, 0, 0.55); - color: #fff; - text-decoration: none; - padding: 18px 24px; - border-radius: 12px; + display: flex; flex-direction: column; align-items: center; gap: 6px; + background: linear-gradient(135deg, rgba(152,0,0,0.25), rgba(120,0,0,0.15)); + border: 1px solid rgba(152,0,0,0.55); + color: #fff; text-decoration: none; + padding: 18px 24px; border-radius: 12px; transition: all 0.25s ease; - box-shadow: 0 0 20px rgba(152, 0, 0, 0.1); + box-shadow: 0 0 20px rgba(152,0,0,0.1); } - .client-featured a:hover { - background: linear-gradient(135deg, rgba(152, 0, 0, 0.38), rgba(120, 0, 0, 0.25)); - border-color: rgba(152, 0, 0, 0.8); - box-shadow: 0 0 32px rgba(152, 0, 0, 0.25); + background: linear-gradient(135deg, rgba(152,0,0,0.38), rgba(120,0,0,0.25)); + border-color: rgba(152,0,0,0.8); + box-shadow: 0 0 32px rgba(152,0,0,0.25); transform: translateY(-2px); } - .client-featured .client-name { - font-size: 1.15rem; - font-weight: 600; - letter-spacing: 0.05em; + .client-name { font-size: 1.15rem; font-weight: 600; letter-spacing: 0.05em; } + .client-desc { font-size: 0.82rem; color: #ccc; } + + .tag-row { display: flex; gap: 6px; flex-wrap: wrap; justify-content: center; margin-top: 2px; } + + /* Also-available note */ + .also-available { + font-size: 0.78rem; color: #555; margin-top: 8px; line-height: 1.6; + } + .also-available a { color: #666; border-bottom: 1px solid rgba(102,102,102,0.3); transition: color 0.2s; } + .also-available a:hover { color: #999; } + + /* ─── Space join ─── */ + .space-join { + margin-top: 20px; padding: 16px 20px; + background: rgba(152,0,0,0.06); + border: 1px solid rgba(152,0,0,0.2); border-radius: 10px; + } + .space-join p { font-size: 0.82rem; color: #666; margin-bottom: 10px; } + .space-join a { + display: inline-block; + background: rgba(152,0,0,0.15); + border: 1px solid rgba(152,0,0,0.35); + color: #c44; text-decoration: none; + padding: 8px 20px; border-radius: 8px; font-size: 0.88rem; + transition: all 0.25s ease; + } + .space-join a:hover { background: rgba(152,0,0,0.25); color: #fff; } + + /* ─── Secondary client cards ─── */ + .clients-section h3 { + font-size: 0.8rem; font-weight: 500; color: #666; + text-transform: uppercase; letter-spacing: 0.12em; margin-bottom: 14px; } - .client-featured .client-desc { - font-size: 0.82rem; - color: #ccc; + .client-group { margin-bottom: 18px; } + + .client-group-label { + font-size: 0.75rem; color: #555; + text-transform: uppercase; letter-spacing: 0.1em; + margin-bottom: 8px; } - .client-featured .tag-row { - display: flex; - gap: 6px; - flex-wrap: wrap; - justify-content: center; - margin-top: 2px; - } - - .tag { - font-size: 0.65rem; - background: rgba(255,255,255,0.12); - border: 1px solid rgba(255,255,255,0.12); - padding: 2px 8px; - border-radius: 4px; - text-transform: uppercase; - letter-spacing: 0.05em; - color: #ccc; - } - - .tag.voice { - background: rgba(0, 180, 120, 0.2); - border-color: rgba(0, 180, 120, 0.4); - color: #5effc4; - } - - .tag.beta { - background: rgba(255, 180, 0, 0.15); - border: 1px solid rgba(255, 180, 0, 0.3); - color: #ffcc55; - } - - .tag.rust { - background: rgba(80, 140, 255, 0.15); - border: 1px solid rgba(80, 140, 255, 0.3); - color: #88aaff; - } - - .tag.experimental { - background: rgba(255, 140, 0, 0.15); - border: 1px solid rgba(255, 140, 0, 0.3); - color: #ffaa44; - } - - .tag.platform { - background: rgba(255,255,255,0.06); - border: 1px solid rgba(255,255,255,0.1); - color: #888; - } - - /* Secondary client cards */ - .client-cards { - display: flex; - flex-direction: column; - gap: 8px; - margin-bottom: 4px; - } + .client-cards { display: flex; flex-direction: column; gap: 8px; } .client-card { - display: flex; - flex-direction: column; - gap: 6px; + display: flex; flex-direction: column; gap: 6px; background: rgba(255,255,255,0.025); border: 1px solid rgba(255,255,255,0.06); - border-radius: 10px; - padding: 12px 14px; - text-align: left; + border-radius: 10px; padding: 12px 14px; text-align: left; transition: border-color 0.2s; } - .client-card:hover { border-color: rgba(152,0,0,0.3); } .client-card-top { - display: flex; - align-items: center; - justify-content: space-between; - gap: 10px; - flex-wrap: wrap; + display: flex; align-items: center; + justify-content: space-between; gap: 10px; flex-wrap: wrap; } .client-card-name { - font-size: 0.95rem; - font-weight: 600; - color: #e0e0e0; + font-size: 0.95rem; font-weight: 600; color: #e0e0e0; text-decoration: none; - border-bottom: 1px solid rgba(204,68,68,0.25); + border-bottom: 1px solid rgba(204,68,68,0.2); transition: color 0.2s, border-color 0.2s; } + .client-card-name:hover { color: #c44; border-bottom-color: #c44; } - .client-card-name:hover { - color: #c44; - border-bottom-color: #c44; - } + .client-card-tags { display: flex; gap: 5px; flex-wrap: wrap; } + .client-card-desc { font-size: 0.8rem; color: #666; line-height: 1.45; } - .client-card-tags { - display: flex; - gap: 5px; - flex-wrap: wrap; - } - - .client-card-desc { - font-size: 0.8rem; - color: #666; - line-height: 1.45; - } - - .client-group { - margin-bottom: 18px; - } - - .client-group-label { - font-size: 0.75rem; - color: #555; - text-transform: uppercase; - letter-spacing: 0.1em; - margin-bottom: 8px; - line-height: 1.4; - } - - .space-join { - margin-top: 20px; - padding: 16px 20px; - background: rgba(152, 0, 0, 0.06); - border: 1px solid rgba(152, 0, 0, 0.2); - border-radius: 10px; - } - - .space-join p { - font-size: 0.82rem; - color: #666; - margin-bottom: 10px; - } - - .space-join a { - display: inline-block; - background: rgba(152, 0, 0, 0.15); - border: 1px solid rgba(152, 0, 0, 0.35); - color: #c44; - text-decoration: none; - padding: 8px 20px; - border-radius: 8px; - font-size: 0.88rem; - transition: all 0.25s ease; - } - - .space-join a:hover { - background: rgba(152, 0, 0, 0.25); - color: #fff; - } - - .security-note { - margin-top: 14px; - padding: 10px 14px; - background: rgba(80, 140, 255, 0.04); - border: 1px solid rgba(80, 140, 255, 0.12); - border-radius: 8px; - font-size: 0.76rem; - color: #556; - line-height: 1.5; - text-align: left; - } - - .security-note strong { color: #88aaff; } - - .all-clients { - margin-top: 14px; - } - - .all-clients a { - font-size: 0.78rem; - color: #555; - text-decoration: none; - border-bottom: 1px solid rgba(85, 85, 85, 0.3); - transition: color 0.2s, border-color 0.2s; - } - - .all-clients a:hover { - color: #888; - border-bottom-color: #888; - } - - .contact { - margin-top: 24px; - padding: 16px; - background: linear-gradient(145deg, rgba(22, 22, 22, 0.95), rgba(14, 14, 14, 0.98)); - border: 1px solid rgba(152, 0, 0, 0.2); - border-radius: 12px; - text-align: center; - } - - .footer { - margin-top: 20px; - font-size: 0.72rem; - color: #383838; - letter-spacing: 0.04em; - display: flex; - justify-content: center; - gap: 14px; - flex-wrap: wrap; - } - - .footer a { - color: #444; - text-decoration: none; - transition: color 0.2s; - } - - .footer a:hover { color: #777; } - - .server-info { - margin-top: 24px; - background: linear-gradient(145deg, rgba(22, 22, 22, 0.95), rgba(14, 14, 14, 0.98)); - border: 1px solid rgba(152, 0, 0, 0.2); - border-radius: 12px; + /* ─── Comparison table ─── */ + .comparison-section { + margin-top: 32px; + background: linear-gradient(145deg, rgba(22,22,22,0.95), rgba(14,14,14,0.98)); + border: 1px solid rgba(152,0,0,0.2); + border-radius: 16px; overflow: hidden; } + .comparison-title { + font-size: 0.78rem; font-weight: 500; color: #980000; + text-transform: uppercase; letter-spacing: 0.15em; + padding: 16px 20px 12px; + border-bottom: 1px solid rgba(152,0,0,0.1); + } + + .table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; } + + table { + width: 100%; border-collapse: collapse; + font-size: 0.78rem; min-width: 640px; + } + + thead tr { border-bottom: 1px solid rgba(152,0,0,0.15); } + + th { + padding: 10px 8px; text-align: center; + font-size: 0.7rem; font-weight: 600; + color: #888; text-transform: uppercase; letter-spacing: 0.08em; + background: rgba(255,255,255,0.02); + } + th:first-child { text-align: left; padding-left: 16px; min-width: 140px; } + th.ours { color: #c66; } + + th small { display: block; font-size: 0.6rem; font-weight: 400; color: #555; margin-top: 2px; text-transform: none; letter-spacing: 0; } + + tr { border-bottom: 1px solid rgba(255,255,255,0.03); } + tr:last-child { border-bottom: none; } + + tr.section-header td { + background: rgba(152,0,0,0.06); + color: #770000; font-weight: 600; + font-size: 0.65rem; text-transform: uppercase; letter-spacing: 0.12em; + padding: 6px 8px 5px 16px; text-align: left; + } + + td { + padding: 8px 8px; text-align: center; vertical-align: middle; + color: #888; line-height: 1.3; + } + td:first-child { + text-align: left; padding-left: 16px; + color: #aaa; font-size: 0.78rem; + } + td small { display: block; font-size: 0.68rem; color: #555; margin-top: 1px; } + + .yes { color: #5effc4; font-size: 1rem; } + .part { color: #ffcc55; font-size: 0.9rem; } + .no { color: #444; font-size: 1rem; } + + /* highlight our hosted client column */ + th.ours, td.ours { background: rgba(152,0,0,0.04); } + + /* ─── Legend ─── */ + .legend { + display: flex; gap: 18px; justify-content: center; flex-wrap: wrap; + padding: 10px 16px 14px; + border-top: 1px solid rgba(255,255,255,0.04); + font-size: 0.72rem; color: #555; + } + .legend span { display: flex; align-items: center; gap: 5px; } + + /* ─── Security note ─── */ + .security-note { + margin: 0 20px 16px; + padding: 10px 14px; + background: rgba(80,140,255,0.04); + border: 1px solid rgba(80,140,255,0.12); + border-radius: 8px; + font-size: 0.76rem; color: #556; line-height: 1.55; text-align: left; + } + .security-note strong { color: #88aaff; } + + .all-clients { margin-top: 14px; } + .all-clients a { + font-size: 0.78rem; color: #555; + border-bottom: 1px solid rgba(85,85,85,0.3); + transition: color 0.2s, border-color 0.2s; + } + .all-clients a:hover { color: #888; border-bottom-color: #888; } + + /* ─── Server info ─── */ + .server-info { + margin-top: 24px; + background: linear-gradient(145deg, rgba(22,22,22,0.95), rgba(14,14,14,0.98)); + border: 1px solid rgba(152,0,0,0.2); + border-radius: 12px; overflow: hidden; + } .server-info-title { - font-size: 0.78rem; - font-weight: 500; - color: #980000; - text-transform: uppercase; - letter-spacing: 0.15em; + font-size: 0.78rem; font-weight: 500; color: #980000; + text-transform: uppercase; letter-spacing: 0.15em; padding: 14px 20px 10px; - border-bottom: 1px solid rgba(152, 0, 0, 0.1); + border-bottom: 1px solid rgba(152,0,0,0.1); } - - .info-grid { - display: grid; - grid-template-columns: 1fr 1fr; - gap: 0; - } - + .info-grid { display: grid; grid-template-columns: 1fr 1fr; } .info-item { padding: 12px 18px; border-bottom: 1px solid rgba(255,255,255,0.03); border-right: 1px solid rgba(255,255,255,0.03); text-align: left; } - .info-item:nth-child(even) { border-right: none; } .info-item:nth-last-child(-n+2) { border-bottom: none; } - - .info-label { - font-size: 0.7rem; - color: #555; - text-transform: uppercase; - letter-spacing: 0.1em; - margin-bottom: 3px; - } - - .info-value { - font-size: 0.88rem; - color: #ccc; - } - - .info-value.green { color: #5effc4; } + .info-label { font-size: 0.7rem; color: #555; text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 3px; } + .info-value { font-size: 0.88rem; color: #ccc; } .privacy-strip { - margin-top: 12px; padding: 10px 18px; - border-top: 1px solid rgba(152, 0, 0, 0.1); - display: flex; - gap: 18px; - justify-content: center; - flex-wrap: wrap; - } - - .privacy-badge { - font-size: 0.75rem; - color: #5effc4; - display: flex; - align-items: center; - gap: 5px; - } - - .privacy-badge::before { - content: '✓'; - font-weight: 700; + border-top: 1px solid rgba(152,0,0,0.1); + display: flex; gap: 18px; justify-content: center; flex-wrap: wrap; } + .privacy-badge { font-size: 0.75rem; color: #5effc4; display: flex; align-items: center; gap: 5px; } + .privacy-badge::before { content: '✓'; font-weight: 700; } + /* ─── Legal / contact / footer ─── */ .legal-note { - margin-top: 24px; - padding: 12px 18px; + margin-top: 24px; padding: 12px 18px; background: rgba(255,255,255,0.02); border: 1px solid rgba(255,255,255,0.05); - border-radius: 8px; - font-size: 0.75rem; - color: #444; - line-height: 1.6; - text-align: left; + border-radius: 8px; font-size: 0.75rem; color: #444; + line-height: 1.6; text-align: left; } - - .legal-note a { - color: #555; - text-decoration: none; - border-bottom: 1px solid rgba(85,85,85,0.3); - } - + .legal-note a { color: #555; border-bottom: 1px solid rgba(85,85,85,0.3); } .legal-note a:hover { color: #888; } - @media (max-width: 480px) { + .contact { + margin-top: 24px; padding: 16px; + background: linear-gradient(145deg, rgba(22,22,22,0.95), rgba(14,14,14,0.98)); + border: 1px solid rgba(152,0,0,0.2); + border-radius: 12px; text-align: center; + } + + .footer { + margin-top: 20px; font-size: 0.72rem; color: #383838; + letter-spacing: 0.04em; + display: flex; justify-content: center; gap: 14px; flex-wrap: wrap; + } + .footer a { color: #444; transition: color 0.2s; } + .footer a:hover { color: #777; } + + /* ─── Responsive ─── */ + @media (max-width: 600px) { .logo { width: 110px; height: 110px; } h1 { font-size: 1.5rem; } .card { padding: 24px 18px; } @@ -553,204 +422,468 @@
-Private Communications
+@jared:matrix.lotusguild.org
- Private Communications
-@jared:matrix.lotusguild.org
+
+ Runs the Cinny dev branch — latest beta features, updated nightly.
+ Prefer stable? Use cinny.in and set homeserver to matrix.lotusguild.org.
+
Already signed in? Jump straight into the community:
+ Join Lotus Guild Space →Already signed in? Jump straight into the community:
- Join Lotus Guild Space → -Mobile — iOS & Android
-Mobile — iOS & Android
+Fastest Matrix client. Native MatrixRTC calls and screenshare. Modern Rust encryption (Vodozemac). Spaces and Threads in active development.
Fastest Matrix client — instant load via Sliding Sync. Native MatrixRTC calls and screenshare. Rust encryption (Vodozemac). Spaces viewing works; creating/managing spaces still in progress.
+Simple, cross-platform, beginner-friendly. Rust encryption (Vodozemac). Voice/video calls are experimental — call support depends on your homeserver.
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.
Discord-like — Android, Windows & Linux
-Discord-like — Android, Windows & Linux
+Closest Discord replacement. Multi-account, GIF search (privacy-respecting proxy), shared calendars and photo albums. No iOS or macOS yet.
Most Discord-like client overall. Multi-account support, built-in GIF search (via privacy-respecting proxy — GIFs upload to your homeserver, not tracked by Tenor). Shared calendars and photo albums. No iOS or macOS yet. Active early-stage development.
Desktop — Windows, macOS & Linux
-Desktop — Windows, macOS & Linux
+Most feature-complete Matrix client. Every spec feature supported. Heavier on resources than alternatives.
Most feature-complete Matrix client — every spec feature including polls, widgets, threads, screenshare. Heavier on resources. Encrypted message search on desktop only (not web).
+Native C++/Qt client. Lightweight alternative to Electron-based apps. Recommended for Linux/KDE users who want low resource usage.
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.
Server Details
-Client Feature Comparison — March 2026
+| + | Cinnychat.lotusguild.org dev branch |
+ Element XiOS & Android | +FluffyChatAll platforms | +CommetAndroid / Win / Linux | +ElementWeb & Desktop | +NhekoDesktop only | +
|---|---|---|---|---|---|---|
| Platform | ||||||
| iOS | +✗ | +✓ | +✓ | +✗ | +✗ | +✗ | +
| Android | +✗ | +✓ | +✓ | +✓ | +✗ | +✗ | +
| Desktop app | +✓ | +✗ | +✓ | +✓Win & Linux | +✓ | +✓ | +
| Web browser | +✓ | +✗ | +✓ | +✗ | +✓ | +✗ | +
| Performance | +Light | +Very fastSliding Sync | +Moderate | +Moderate | +HeavyElectron / JS | +LightNative C++ | +
| Security & Encryption | ||||||
| E2EE | +✓ | +✓ | +✓ | +✓ | +✓ | +✓ | +
| Rust SDK (Vodozemac)stronger crypto track record | +✗js-sdk | +✓ | +✓ | +✓ | +✗js-sdk, migrating | +✗ | +
| Device verification | +~requests may show as "Unsupported message" |
+ ✓ | +✓ | +✓ | +✓ | +✓ | +
| Voice & Video | ||||||
| Voice & video calls | +~dedicated space rooms only, not DMs |
+ ✓MatrixRTC | +~experimental, varies by homeserver |
+ ✓1:1 + group | +✓ | +✓ | +
| Screenshare | +✗ | +✓ | +✗ | +✗ | +✓ | +~partial | +
| Group calls | +~space rooms only | +✓MatrixRTC | +✗ | +✓ | +✓ | +~partial | +
| Core Features | ||||||
| Spaces | +✓best-in-class sub-space nav | +~viewing works; management in progress |
+ ✓ | +✓Discord-like categories | +✓sub-spaces clunky | +~limited | +
| Threads | +~basic, no dedicated view | +~Labs flag | +✗shows as regular messages | +✓ | +✓ | +✗ | +
| Polls | +✗ | +✓ | +~recently added | +✗ | +✓ | +✗ | +
| Custom emoji & stickers | +✓best-in-class | +~ | +✓ | +✓bulk upload, Signal packs | +~sometimes shows mxc:// URLs | +✓ | +
| GIF search / picker | +✗ | +✗ | +✗ | +✓privacy proxy, uploads to homeserver |
+ ✗ | +✗ | +
| Message search (encrypted) | +~partial, some rooms broken | +✗ | +~ | +✓ | +~desktop only, not web | +~ | +
| Widgets | +✗ | +✗ | +✗ | +✗ | +✓ | +✗ | +
| UX & Extras | ||||||
| Multi-account | +✗ | +✗ | +~supported but clunky | +✓ | +✗ | +✗CLI profiles only | +
| Image captions(text + image as one event) | +✗ | +✗ | +✓unique feature | +✗ | +✗ | +~ | +
| Discord-like UI | +✓best-in-class for web | +✗ | +✗WhatsApp/Telegram style | +✓most Discord-like overall | +✗ | +✗ | +
| Shared calendars & albums | +✗ | +✗ | +✗ | +✓unique to Commet | +✗ | +✗ | +
| Push notifications | +~web push only | +✓ | +✓ | +✓ | +✓desktop | +✓ | +
Server Details
+Questions or need a registration token?
-Reach out to @jared:matrix.lotusguild.org
Questions or need a registration token?
+Reach out to @jared:matrix.lotusguild.org