Talk — E2E Encrypted Messenger
- Area: Workspace
- Path:
platform/talk - Kind: Self-hosted E2E encrypted messenger for teams and people
- Status: Pre-alpha — protocol spec and reference implementation in progress
Role in the stack
Talk is Koder's end-to-end encrypted messenger. It provides one-to-one and group chats, public channels, voice and video calls, file sharing, threads, bots, and status updates — all protected by end-to-end encryption via the Signal Protocol.
Talk is the sibling (not competitor) of platform/chat:
- Talk — private contacts + public channels, E2E encryption, voice + video, Signal Protocol
- Chat — business teams, server-side stored history, threads + integrations, Slack-style
Architecture
| Layer | Choice |
|---|---|
| Transport | Noise Protocol (Noise_XX) over WebSocket / TLS |
| Serialization | Protocol Buffers (binary) |
| End-to-end | Signal Protocol (libsignal — Double Ratchet + X3DH) |
| Server | Go |
| Persistence | PostgreSQL + Redis |
| Blob storage | MinIO (S3-compatible), client-side encrypted |
| Auth | Koder ID (OIDC) |
| GUI clients | Flutter (web, Linux, Windows, macOS, Android, iOS) |
| CLI client | Go |
Primary couplings
| Consumer | Relationship |
|---|---|
platform/id |
OIDC authentication |
| PostgreSQL + Redis | Server state and queues |
| MinIO | Client-side encrypted blobs |
ai/voice |
Voice/video features delegate speech-to-text to Voice |