Problem
Traditional chat servers store messages on databases and have access to unencrypted payloads, risking data leaks and eavesdropping.
Zero-knowledge, end-to-end encrypted ephemeral chat application utilizing WebCrypto API and Go WebSockets.
Role
Project Manager & Full-Stack Developer
Year
2026
Stack
Go + SvelteKit
Problem
Traditional chat servers store messages on databases and have access to unencrypted payloads, risking data leaks and eavesdropping.
Solution
Umbra encrypts all messages in the browser before sending them to a database-free Go relay server, ensuring the server only forwards ciphertext and destroys all ephemeral room data on disconnect.
Overview
Umbra is a zero-knowledge, end-to-end encrypted chat application. It generates cryptographic keys in the browser memory using the WebCrypto API (ECDH P-256 for key exchange, AES-256-GCM for encryption, and ECDSA for signing). The backend is built with Go (Golang) and WebSockets, relaying only encrypted ciphertext. All room data is stored in-memory and completely destroyed once users disconnect.
Technical Highlights