Talk
Talk — E2E Encrypted Messenger
- *rea:*Workspace
- *ath:*
platform/talk - *ind:*Self-hosted E2E encrypted messenger for teams and people
- *tatus:*Pre-alpha — protocol spec and reference implementation in progress
Role in the stack
Talk is Koder's endtoend encrypted messenger. It provides *netoone and group chats, public channels, voice and video calls, file sharing, threads, bots, and status updates*— all protected by endtoend encryption via the Signal Protocol.
Talk is the *ibling*(not competitor) of platform/chat:
- *alk*— private contacts + public channels, E2E encryption, voice + video, Signal Protocol
- *hat*— business teams, server
side stored history, threads + integrations, Slackstyle
Architecture
| Layer | Choice |
|---|---|
| Transport | Noise Protocol (Noise_XX) over WebSocket / TLS |
| Serialization | Protocol Buffers (binary) |
| End |
Signal Protocol (libsignal — Double Ratchet + X3DH) |
| Server | Go |
| Persistence | PostgreSQL + Redis |
| Blob storage | MinIO (S3 |
| 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 |