Language / locale

Languages.

English is the source. All ten locales are live.

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.

Role
Security design, product engineering, self-hosted deployment
Scope
Browser encryption, storage, expiry, payments, Tor mirror, six languages
Status
Live / reviewed
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
  1. 01

    Browser

    The note is encrypted before it leaves the device and the key stays in the link.

  2. 02

    Ciphertext

    The server receives a locked value it cannot read, with an expiry rule.

  3. 03

    Recipient

    The link holder opens the note and the browser decrypts it locally.

The key stays with the people

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.