← All guides

Client-side encryption for normal people

"Encrypted" is one of those words that sounds like one thing and means about five. The distinction that matters most is boring and simple: who holds the key — the server, or you?

Last updated: September 2026 · 5 min read

Two ways to lock the same box

Server-side encryption works like a bank deposit box where the bank also keeps a copy of your key. When you save something, the server encrypts it on the way to disk. That protects against some things — a stolen hard drive, a snooping cleaner — but not against the server itself, and not against anyone who can compel or compromise the server. In practice: the operator can read your data; they just promise not to. Most "we encrypt your data" claims are this.

Client-side encryption moves the locking to your device. Your browser encrypts the content before it's sent, and the key never travels with the content. The server receives ciphertext plus a meaningless ID. When someone opens the note, the decryption happens in their browser — the server can serve the locked box, but it never sees inside. When correctly built, this survives not just hacks but subpoenas and a future change of heart by the operator. That's what "zero-knowledge" is supposed to mean, and it's the mode worth checking for whenever a service uses the term.

How our version works, concretely

Consequence to internalize: the full link is the note. Anyone you give the complete link to can read it — the link is the key. Treat sending it like handing over the key itself, and don't post it where it will sit around.

What zero-knowledge does not promise

Which mode, when

That's the honest version of the pitch. Client-side encryption here isn't a marketing layer over ordinary storage — it's the real construction, with the real trade-offs. Knowing which box you're locking puts you ahead of most people using encrypted tools.

Want the key-holder version?

Try a zero-knowledge note