Spokes vs. Matrix + Element

A lot of people start out running Matrix (Synapse + Element) because it is the most well-known option, only to find out that hosting Matrix with separate Jitsi or LiveKit voice and video containers is a pain to maintain. Even once it is running, Element feels clunky and doesn't really work like an organized Discord server where a group communicates in dedicated channels. Spokes (spokes.sh) was built specifically to solve that frustration: it gives you a Discord-style server layout, built-in voice and video channels, official App Store and Google Play mobile apps with push notifications, and single-container Docker hosting.

Quick Verdict: Why Switch from Matrix + Element to Spokes

  • Ease of Hosting & Maintenance: Spokes wins (🟢 1 Docker Container vs. 🔴 4 to 6+ Containers). Spokes runs in a single Docker container (ghcr.io/pcbeeqc/spokes:latest) with JSON file storage and no external database. Self-hosting Matrix with voice and video requires managing Synapse, PostgreSQL, reverse-proxy .well-known headers, LiveKit or Jitsi, lk-jwt-service, and Coturn TURN.
  • Voice & Video Channels: Spokes wins (✅ Built-in Voice Rooms vs. 🟡 Separate Jitsi/LiveKit Setup). Spokes includes persistent Discord-style drop-in voice channels, video calls, screen sharing, and local noise cancellation inside the single container out of the box. No extra Jitsi or Matrix RTC containers are needed.
  • Server Layout, Mobile Apps & Push Notifications: Spokes wins for Private Groups (✅ Organized Server + Official iOS/Android Apps). Instead of Element's clunky room list and "Unable to decrypt message" key errors, Spokes gives your group a familiar sidebar of text and voice channels, official iOS App Store and Google Play apps, working encrypted push notifications (2-month free trial + optional $45/yr flat server pass, plus free Web/PWA push), built-in GIF search, shared photo albums, and a group calendar.
Head-to-head comparison between Spokes (recommended single-container self-hosted Discord alternative) and Matrix + Element across ease of hosting, built-in voice and video channels, official iOS and Android mobile apps, push notifications, and server UX.
Criterion Spokes (Recommended) Matrix + Element / Element X
Server Experience & Layout Organized Discord-style server with dedicated text & drop-in voice channels Decentralized federated rooms; Element Spaces feel like separate chat rooms
Ease of Hosting & Stack 🟢 Easy: 1 Docker container (JSON storage, embedded LiveKit, embedded Casdoor) 🔴 Hard: 4 to 6+ containers (Synapse, PostgreSQL, LiveKit/Jitsi, lk-jwt-service, Coturn)
Voice, Video & Screen Share ✅ Built-in persistent drop-in voice rooms, video, screen share & noise cancellation 🟡 Requires separate Element Call / LiveKit or Jitsi backend deployment
Official Mobile Apps ✅ Official native iOS (App Store) & Android (Google Play) ✅ Official native iOS & Android (Element X, Element Classic)
Mobile Push Notifications ✅ Encrypted payload relay (free 2-mo trial; flat $45/yr server pass) + free Web/PWA push ✅ Element hosted Sygnal gateway (self-hosting push requires custom app builds)
Encryption & Usability On-premise storage, E2EE push payloads, and optional password Secure Channels (no lost keys) Per-device Megolm E2EE (users often lose message history when switching phones)
Community Extras ✅ Built-in Shared Photo Albums, Group Event Calendar & RSVPs, GIF picker ❌ Chat & calls only (requires separate Nextcloud/Immich apps)
Cross-Server Federation No (intentionally isolated private server) Yes (main reason to use Matrix)

1. Single-Container Voice & Video (Spokes) vs. Matrix + Jitsi/LiveKit Setup

Hosting Matrix with working Discord-style voice and video channels takes a lot of upkeep. Even if you use an Ansible script, you still have to run and update Synapse, PostgreSQL, reverse-proxy .well-known federation configs, Coturn TURN, and a separate Jitsi or Matrix RTC (LiveKit + lk-jwt-service) stack. Spokes removes all of that extra maintenance by bundling LiveKit directly inside its single Docker container. Persistent voice channels, video calls, screen sharing, and local noise cancellation work right away, and all server data is saved in simple JSON files and folders in your mounted /data volume with no database migrations to worry about.

2. An Organized Discord-Style Server vs. Element's Clunky UI

Even with Matrix "Spaces", Element still feels clunky for regular users. Joining individual rooms, managing recovery passphrases, and running into "Unable to decrypt message" errors when someone gets a new phone creates constant friction for non-technical friends and relatives. Spokes is built to be easy for everyone in your group: they download the official Spokes app from the Apple App Store or Google Play Store, log in once, and get a clean server with organized text channels, drop-in voice rooms, private messages, native GIF support, shared photo albums, and a group calendar, with mobile push notifications that work reliably.

3. Verdict: When to Pick Spokes vs. Matrix + Element

Pick Spokes (Recommended) if you want an easy-to-host, single-container Discord replacement with built-in voice and video channels, official App Store and Google Play mobile apps, working push notifications, shared photo albums, and an organized server layout for your friend group, gaming squad, family, or small team.

Pick Matrix + Element only if you need decentralized federation across public matrix.org servers and don't mind maintaining a multi-container database and voice stack.

Try Spokes in Your Browser or Deploy in One Container

Every Spokes server is free forever to self-host and comes with 2 months of free native iOS and Android push notifications (no credit card required).

Welcome to Spokes! Read a message from the developer.