03 / Private sharing
NoirPaste.
Sometimes the safest way to send a secret is to make sure the person carrying it cannot read it. NoirPaste stores a locked copy and lets the link holder hold the key.
- server-readable copies
- Zero Design property, reviewed 2026-10-31
- languages
- Six Recorded 2026-10-31
- mirror
- Tor Recorded 2026-10-31
- link control
- Expiry Recorded 2026-10-31
- 01
Browser
The note is encrypted before it leaves the device and the key stays in the link.
- 02
Ciphertext
The server receives a locked value it cannot read, with an expiry rule.
- 03
Recipient
The link holder opens the note and the browser decrypts it locally.
01 / Context
The problem
People send passwords, recovery notes, and private text through chat, email, and screenshots. Every copy is another copy to clean up, and the provider can usually read all of them. A private link is a simple idea until it has to be true.
NoirPaste is built around a smaller promise than a full messaging product: the server should not be able to read the note. That promise changes the design of the editor, the link, the expiry, the registration step, and the payment flow.
02 / Audience
Who it is for
It is for a person handing over something sensitive: a developer sharing a credential with a teammate, a support person sending a recovery note, or anyone who does not want a permanent readable copy in another inbox. The job is short and the trust requirement is high.
03 / Constraint
The threat model
The system assumes the storage and application server can be inspected, copied, or compromised. It does not assume the encryption key is available to that server. The browser encrypts before sending, and the recipient's browser decrypts after receiving the ciphertext.
The server still has a job: enforce expiry, rate limits, abuse controls, and proof of work for registration, and protect the parts it does hold. Privacy is not the absence of controls. It is a smaller set of things that need to be trusted.
04 / Build
What we built
The product is deliberately narrow, with the security choices visible in the build:
- Browser encryption with AES-256-GCM and a key carried in the link fragment.
- XChaCha20-Poly1305 and Argon2id on the server side for the values the server must handle.
- Expiring pastes, a simple editor, and a link the sender can hand over without an account.
- Proof-of-work registration to make automated abuse expensive without requiring an identity.
- Six languages and a Tor mirror for readers who do not want the ordinary network path.
05 / Decisions
The hard part
Zero-knowledge is not a badge you add at the end. The key has to avoid logs, analytics, error reports, and the server. A helpful feature that sends the wrong field to the wrong place can undo the promise. The team has to be able to explain what the server sees, not just what the marketing page says.
The premium route adds another constraint. The product should not collect a name and an address just to take money, so the paid path has to stay separate from the private note path and from the identity needed to support an account.
06 / Outcome
What is live
NoirPaste is live at noirpaste.xyz, with a Tor mirror and six languages. The design property is testable from the outside: the server stores a value it cannot read, and the link is the thing that unlocks it.