After Discord's data breach exposed government IDs, I built an open-source alternative where there's nothing to breach
Greetings r/selfhosted,
I've been building Nodes, an open-source, decentralized Discord alternative where your identity is a cryptographic keypair generated on your device. No email, no phone number, no account on someone else's server.
Why I built it:
Discord now requires government ID for age verification. Their 2025 data breach exposed tens of thousands of those IDs. I wanted a chat platform where privacy isn't a policy that can be changed, it's the architecture itself.
What works today (v1.1.0-beta):
- Self-sovereign identity: your keypair IS your identity, encrypted locally with a passphrase
- Real-time P2P messaging via GunJS
- E2E encrypted DMs (ECDH key exchange, AES-256-GCM)
- Voice channels (WebRTC mesh for small groups, LiveKit SFU for larger)
- IPFS file sharing with server pinning
- Roles, permissions, and moderation tools (kick, ban, slow mode, audit log)
- Full-text search, mentions, desktop notifications
- 7 built-in themes + custom theme creator
- Native desktop app via Tauri (~15MB, ~80MB RAM)
Tech stack:
Tauri v2 (Rust) + React + TypeScript + GunJS + WebRTC + IPFS + Zustand
What it's NOT:
- Not a Signal competitor. Channel messages are signed but not encrypted (DMs are)
- Not production-hardened for thousands of users yet, it's a beta
- Not trying to replace Matrix/Element for federated use cases. Nodes is fully P2P
Links:
- GitHub: https://github.com/Leveq/Nodes
- Download (Windows): https://github.com/Leveq/Nodes/releases/latest
- License: AGPL-3.0
I'm a solo developer, so I'd genuinely appreciate feedback, especially on the crypto implementation (SECURITY.md covers the threat model and known limitations honestly). If you try it, the quickest test is: install, create identity, browse the public Node directory, join a community, send a message.
Happy to answer questions about the architecture, crypto decisions, or anything else.
Posted Mar 5, 2026, 4:55 PM UTC