Back to Projects
Full-Stack / Cybersecurity Project Build

Umbra

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

What I Built

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

Engineering Notes

ECDH P-256 key exchange on client side
AES-256-GCM encryption + integrity check
Go + Fiber + Gorilla WebSocket backend
Azure Container Apps deployment with Docker
Completely anonymous and zero-trace chat flow