From plaintext to nothing
How it works
The server stores encrypted bytes. The browser creates and keeps the key.
Six deliberate steps
The lifecycle of a secret
Encryption and decryption stay on the edge. Only access rules and ciphertext touch the server.
Key generation
Your browser generates a 256-bit AES-GCM key with the Web Crypto API.
Local encryption
Your message is encrypted locally with a random IV before upload.
Ciphertext only on server
The server receives ciphertext, IV, expiry settings, and optional hashed gates — never plaintext.
Key hidden in URL fragment
The generated link puts the decryption key after #. URL fragments are not sent in HTTP requests.
Server-side checks on open
When the recipient unlocks the note, the server returns ciphertext once the expiry, password, and view-limit checks pass.
Local decryption + destruction
The recipient browser decrypts the note locally and the server marks the encrypted row as consumed.
The full link is the secret
The fragment after # contains the decryption key. Only send it to the intended recipient.