Start with Matrix plus Element: it is the most-deployed option and has the strongest native group-call story here, though Element Call means deploying a LiveKit SFU yourself. Stoat, formerly Revolt, wins instead only when the Discord look and feel outranks maturity — it is pre-1.0, and self-hosting its voice stack is still undocumented.
The one-paragraph version: There is no drop-in self-hosted replacement for Discord in 2026, and any guide that hands you a single “winner” is skipping the hard part. The honest answer is a match to what you use Discord for. Want the closest-looking clone? Stoat (the platform formerly called Revolt) - but it is pre-1.0 and self-hosting its voice/video is still immature. Want a federated text community with real native group calling? Matrix + Element, at the cost of the most complex setup. Running a team or workplace? Mattermost or Rocket.Chat. Threaded text only? Zulip, with the cleanest license. Just voice for a gaming group? A tiny Mumble server. The realistic outcome most communities land on is a combination - text on one tool, voice on another - plus accepting real onboarding drop-off. This guide gives you the piece the copy-paste roundups leave out: current versions, license caveats, the honest voice/video reality, and the resource footprints that are actually documented.
Most competing roundups converge on the same six-to-eight tools and produce near-identical pros/cons lists, but they share three universal blind spots: no real hardware requirements, no honest voice/video assessment, and no actual migration path. That trio is exactly where a PC-hardware-first site should be useful, so that is where this article spends its words.
The quick verdict, by use case
| Your priority | Best pick | The honest caveat |
|---|---|---|
| Closest Discord clone (look and feel) | Stoat (formerly Revolt) | Pre-1.0; self-hosting voice/video is transitional and undocumented |
| Federated text community, many spaces one login | Matrix + Element | Hardest setup; no native voice channels without extra services |
| Team / workplace (Slack-style) | Mattermost or Rocket.Chat | Group voice and video sit behind paid tiers or external add-ons |
| Threaded, organized text | Zulip | No native voice or video at all |
| Low-latency voice for a gaming group | Mumble | Voice only; dated interface; no async text chat |
The recurring pattern in real community threads is that no single self-hosted product covers Discord’s full text-plus-voice-plus-video-plus-forum-plus-roles-plus-bots bundle, so people deploy a stack: Matrix or Zulip for text alongside Mumble or Jitsi for voice. Keep that in mind before you expect one install to do everything.
Stoat (formerly Revolt): the closest clone, still under construction
First, the naming, because half the guides online are stale on it. Revolt was renamed to Stoat. The GitHub organization migrated from revoltchat to stoatchat and now describes itself as “Open source, user-first chat platform. (formerly Revolt).” The self-hosted repository documents a breaking change dated October 5, 2025 that renamed the Docker Compose project from revolt to stoat, and revolt.chat now redirects to stoat.chat. If you find a 2022-era “Revolt review,” it is describing this same software under its old name.
Stoat is the pick when you want the interface that looks and feels most like Discord. The backend, written in Rust, is at v0.13.9, published July 2, 2026 - meaning it is still pre-1.0 software. It self-hosts via Docker Compose from the stoatchat/self-hosted repo, whose README recommends a minimum footprint of at least 2 vCPUs and 2 GB of memory - notably the only candidate here that publishes a clear minimum.
The honesty gap the ranking list-posts gloss over is voice and video. Stoat is migrating its voice stack to LiveKit (replacing the older “Vortex” voice server), and self-hosting voice/video is transitional: documentation is essentially non-existent, community front-end patches have been needed to enable features, and the video implementation is incomplete - the self-hosted README even warns the server will kick any user who tries to stream video larger than a configured maximum. Voice also requires opening RTC ports (7881/tcp plus a 50000-50100/udp range). Community self-host reports back this up, describing a buggy interface, missing features, channel-creation quirks, and no built-in way to stop random users spinning up servers on your instance. Verdict: best UX match, weakest maturity. Use it for experimentation; do not bet a large community on it yet.
Matrix + Element: the most-deployed, most-federated, hardest to master
Matrix is a protocol, not one app. You run a homeserver and users connect with a client - usually Element. The recommended homeserver is Synapse, currently v1.155.0 (June 16, 2026). An important caveat for anyone following old links: the original matrix-org/synapse repository is archived and read-only; active development moved to the element-hq/synapse fork. Synapse is dual-licensed - free under AGPLv3, or under a paid Element Commercial License - an open-core arrangement that followed the 2024 relicensing.
There is a second-generation Go homeserver, Dendrite (v0.15.2, August 15, 2025), but its README states it is in maintenance mode, meaning only security fixes are applied, and the project positions it for small deployments (tens to hundreds of users) and in-browser or mobile peer-to-peer nodes rather than large community hosting. For a Discord replacement you want Synapse.
Matrix’s genuine, unique draw is federation: it is the one option that mirrors Discord’s multi-server model by letting you join many communities from a single login. That is why power users stay on it. The recurring first-hand complaint is voice: Matrix has no always-on, Discord-style voice channels by default. Native group voice and video come from Element Call (v0.20.3, June 29, 2026), which Element’s own writeup describes as built on MatrixRTC using LiveKit as its backend. Self-hosting it means deploying a LiveKit SFU plus a MatrixRTC authorization service alongside the homeserver. Once running, it supports 1:1 calls, ad-hoc in-room calls, and standalone conferences; Element’s own performance testing states that a single standard VPS machine can host up to 500 participants. The second recurring complaint is the client model itself - the Space-and-room structure is widely described as unintuitive, and setup documentation as scattered. Difficulty reports are split (some call basic server standup easy; Matrix-plus-voice is where people get stuck), and the community matrix-docker-ansible-deploy playbook is the usual recommendation to ease the base install. Verdict: best for a federated text community that will invest the setup time; the strongest native group-call story here, but not the easiest.
Mattermost and Rocket.Chat: team chat, not gaming communities
These two are consistently classed by their own users as Slack/Teams replacements rather than community or gaming Discord replacements - more corporate, with per-user considerations even when self-hosted.
Mattermost is at v11.8.2 (June 26, 2026), which includes a medium-severity security fix, so keep it patched. Two free self-host paths exist: Team Edition is free and open source under the MIT license (a single Linux binary with PostgreSQL), and Mattermost Entry is a free, feature-capped tier of the Enterprise Edition (see editions and offerings). The Enterprise binary itself is commercial (open-core). On voice: the Calls plugin is bundled by default and does WebRTC voice and screen sharing - but the free Team/Entry editions get only 1:1 calling and screen sharing (up to 40 minutes); group calling with no time limit requires a paid Professional tier or above, and scaling past roughly 50 concurrent callers needs a separate RTCD service to offload media. (Third-party pages cite Professional at around $10/user/month billed annually, but that figure was not confirmed on Mattermost’s own pricing page - treat the dollar amount as unverified; the tier structure is from official docs.)
Rocket.Chat is at v8.5.1 (June 15, 2026), MIT-licensed but with an open-core split (an ee enterprise folder and paid premium features). It self-hosts via official Docker Compose (Rocket.Chat plus MongoDB). Its video story is the weakest-by-default of the team tools: video conferencing is not native WebRTC out of the box - the documented standard path integrates an external Jitsi provider you point at your own Jitsi Meet domain. Verdict: reach for these if you are replacing Slack or standing up a workplace; they are a poor fit for a casual gaming friend-group where free, low-friction group voice is the whole point.
Zulip: excellent threaded text, no native calling
Zulip Server 12.1 (June 26, 2026) is the cleanest license of the bunch - fully open source under Apache 2.0, with no open-core caveat on the server. Its threaded model is genuinely good for organized, high-volume text discussion. But for a Discord replacement it has the weakest voice story of all the candidates: Zulip has no native built-in voice or video calling. It only inserts call links via a configured external provider - Jitsi Meet (default), Zoom, BigBlueButton, or Nextcloud Talk. There are no persistent voice channels and no built-in media server. Verdict: a strong pick if your community lives in text and you are content bolting voice on externally; a poor standalone Discord swap if voice matters.
The voice/video reality (the part other guides skip)
This is the single sharpest differentiator, and almost no competing roundup benchmarks it. Here is how native, self-hosted voice and video actually stand today:
| Tool | Native group voice/video? | How it works | The real cost |
|---|---|---|---|
| Matrix + Element | Yes | Element Call on MatrixRTC + LiveKit SFU | Must deploy LiveKit + auth service; scales to ~500/call |
| Mattermost | Yes (bundled) | Calls plugin, WebRTC | Free tiers = 1:1 up to 40 min; group needs paid tier; 50+ callers need RTCD |
| Stoat | In transition | Migrating to LiveKit voice | Undocumented self-host; community patches needed; video incomplete |
| Rocket.Chat | Not by default | External Jitsi integration | You run a separate Jitsi instance |
| Zulip | No | External call links only | No persistent voice channels |
| Mumble | Voice only | Opus codec (which itself scales up to 510 kbps) | No text/video; low latency; tiny footprint |
Two practical takeaways. First, screen sharing - an under-served sub-intent that appears in the related searches for this topic - is best served today by Mattermost’s bundled Calls plugin, then by Matrix via Element Call; Rocket.Chat routes it through Jitsi, and Zulip cannot do it natively. Second, if all you need is voice for a gaming group, a self-hosted Mumble server remains the community favorite: it is praised for low latency and near-zero resource use, it uses the Opus codec (which itself scales up to 510 kbps), and its main limitation is that it is voice-only with a dated interface and no async chat.
Resource footprint: what is actually documented
A word of caution, because this is where roundups invent numbers. Of these projects, only Stoat publishes a clear minimum in the sources checked: at least 2 vCPUs and 2 GB of memory. Synapse, Mattermost, Rocket.Chat, and Zulip did not surface hard minimums on the pages reviewed, so anyone quoting exact RAM figures for those is usually guessing.
| Tool | Documented minimum | Notes |
|---|---|---|
| Stoat | 2 vCPUs, 2 GB RAM | From the self-hosted README |
| Matrix (Synapse) | Not published on pages checked | Plan by workload; voice adds a LiveKit SFU |
| Mattermost | Not published on pages checked | Single binary + PostgreSQL; RTCD for scale |
| Rocket.Chat | Not published on pages checked | Runs with MongoDB |
| Zulip | Not published on pages checked | Install script or Docker |
The honest planning rule: a small, text-only community is light on any of these, but the moment you add native voice/video the picture changes - a LiveKit SFU for Matrix or an RTCD service for Mattermost adds both CPU load and real bandwidth. If you want to size a chat server against the rest of your homelab, our Docker RAM planner helps you budget memory across a multi-service stack, and chat servers are firmly in the “give them headroom” category.
Migration reality: expect friction, plan to dual-run
The 2026 wave of interest is driven by Discord’s age-assurance rollout, which introduced age-verification methods (an on-device facial age estimate or an ID/selfie check) and pushed communities to look for exits. But wanting to leave and actually moving your people are different problems, and the community consensus is blunt about the gap.
None of these tools ship a real Discord-community migration path or import tooling - that is the third universal gap across every competing guide. And the single biggest reason people give up and stay on, or return to, Discord is onboarding friction for non-technical members. Discord’s “open this link and you are in the voice call” flow has no self-hosted equal; even a few-dollars-a-year hosted alternative adds enough friction to stall adoption among casual users. Churn runs both ways, too - screen-sharing quality is a documented reason some groups moved to Discord in the first place.
So the realistic plan is not a clean cutover. It is:
- Match the tool to your primary need using the verdict table above - text-first vs voice-first is the fork that matters most.
- Accept a combination stack if you need both - text on Matrix or Zulip, voice on Mumble or Jitsi - because no single product covers the whole bundle.
- Dual-run the self-hosted space alongside Discord for a while, and expect meaningful drop-off from members who will not install a second app.
If self-hosted chat is your first serious service, our self-hosting essentials priority guide covers what to stand up first and why, the broader self-hosted apps to replace SaaS roundup sets the context, and since Matrix and Rocket.Chat both ship Compose files, the Docker Compose starter-stack tutorial is the fastest way to get a test instance running.
Bottom line
Do not chase a single “best” self-hosted Discord alternative - it does not exist in 2026. Decide whether your community is fundamentally about text or voice, pick the tool that owns that axis (Matrix or Zulip for text, Mumble for voice, Stoat if you truly need the Discord look and can tolerate pre-1.0 rough edges, Mattermost or Rocket.Chat for teams), and plan for the migration friction that sinks most attempts. Get the voice/video architecture and the onboarding right and the tool choice mostly takes care of itself.
Frequently asked questions
Can Discord be self-hosted?
What is the best self-hosted Discord alternative?
Is there a self-hosted Discord alternative with screen sharing?
Is Revolt the same as Stoat?
How much RAM does a self-hosted Discord alternative need?
Why are people leaving Discord in 2026?
Is Matrix hard to self-host?
Evidence ledger
- Last updated
- Methodology
- This guide was written and edited by Lowell K. Wood IV in St. Louis County, MO. Specs and prices verified against vendor and project documentation current on the date above. Full editorial standard: methodology.
- Update log
- 2026-07-03 — Last reviewed and updated.
- Corrections
- Spotted an error or a stale number? Email hello@techfuelhq.com. Confirmed corrections are added to the update log above.