A complete chat platform — channels, threads, reactions, voice/video,
presence — assembled with taste and engineering discipline, and
encrypted so the server can't read your messages.
End-to-end encrypted messages
Message envelopes (Ed25519 + X25519, XChaCha20) and client-encrypted
attachments. The server stores ciphertext. BIP-39 recovery phrases plus
social "brotherhood" recovery mean you never lose your identity.
Voice and video are not end-to-end
encrypted. They are encrypted in transit (DTLS/SRTP) to the
LiveKit server, which decodes them to route the call — the same model
Discord, Zoom and Slack use. If you self-host, that server is yours.
We'll say so plainly rather than let "encrypted" do ambiguous work.
Minimal to run
One Go binary with the React client baked in, plus Postgres. Optional
Caddy for auto-HTTPS and LiveKit for voice ride behind Compose profiles —
run only what you need. The runtime image is ~30 MB and distroless.
Discord/Slack parity
Markdown + code blocks, reactions, threads, replies, pins, bookmarks,
@mentions, slash commands, link embeds, custom emoji, full-quality voice
and screen share, Web Push, and an in-app inbox.
Yours to keep
Closed signups by default, a one-command owner bootstrap, audit log,
server/role management, and backup/restore scripts. Your data lives in
volumes you control, portable across Postgres versions.