anonymous · encrypted · ephemeral

whispr.

talk. disappear.

generating ephemeral identity...

START A ROOM
🌙 dark☀️ light

no signup · no trace · disappears when you leave

everything you need,
nothing you don't.

👥ROOMSgroup chat. up to 6. gone when done.
🔑PASSPHRASEoptional extra lock for your room.
🧊FROSTno read receipts. send into the void.
🛡️SHIELDhides chat when you look away.
TIMERauto self-destruct on countdown.
🔥BURNend and destroy session instantly.
REPLYquote any message in context.
💬TYPINGsee when they're writing.
📎IMAGEsend photos. gone when you leave.
🎨THEMESdark / light toggles.

how it works

no accounts. no servers storing your messages. here's exactly what happens.

01

you open whispr

No install, no login. The app loads entirely in your browser. A random identity is generated locally — alias and encryption keys — and exists only in memory.
02

a room is created

Clicking "start a whispr" calls a Cloudflare Worker that spins up a temporary signaling room. The room has no content — it is just a meeting point. It auto-expires in 5 minutes if nobody joins.
03

you share the link

The invite link encodes the room ID. Share it however you want — the link burns after the first person opens it. No third party can snoop in.
04

keys are exchanged

When the other person opens the link, both browsers perform an ECDH P-256 key exchange over the temporary WebSocket relay. A shared AES-256-GCM session key is derived locally in each browser. The relay never sees the keys.
05

direct connection established

WebRTC upgrades the connection to a true peer-to-peer DataChannel. The Cloudflare Worker self-destructs — it is no longer in the path. All messages travel directly between your browsers.
06

you chat

Every message is encrypted in your browser before it leaves. The other person's browser decrypts it on arrival. Nothing is stored anywhere. No logs. No history.
07

someone leaves

Either tab closes and the session ends. The shared key is gone. The messages are gone. The room is gone. There is no recovery. This is by design.

use cases

situations where you need to talk without creating a permanent record.

quick one-off conversations

personal
"here's the thing — read it and it's gone."

You need to send something to someone without starting a contact, a thread, or a paper trail. whispr gives you a channel that disappears when you're both done.

sensitive feedback

professional

You want honest input from someone who might self-censor if their name is attached. Share a whispr link, let them speak freely. The conversation expires when you both leave.

temporary coordination

professional

Something is happening right now and you need an out-of-band channel fast. Spin up a whispr in seconds. No setup, no inbox to clean up afterward.

anonymous tips

sensitive

You have information that matters but cannot attach your name to it. whispr lets you open a channel without either party revealing a real identity. The server never knows who you are.

shared or borrowed device

personal

You are on a library computer, a hotel kiosk, or a borrowed phone. whispr is browser-only with zero localStorage. Close the tab and the session is completely gone.

research and interviews

research

Reach participants or sources without exchanging personal contact details. Share a link in a post or survey. They reach you once, anonymously, with no permanent connection created.

security

what we built, what it covers, and where the limits are. no marketing, just facts.

key exchange
ECDH P-256
key derivation
HKDF-SHA-256
message encryption
AES-256-GCM
key generation
browser WebCrypto API
private key storage
in-memory only · never written to disk
forward secrecy
session-level · new keys per whispr
server sees
nothing · blind WebSocket relay only

server breach

The Cloudflare Worker is a blind relay. It stores nothing. A full compromise reveals no message content, no keys, no identities.

network interception

Messages are encrypted before leaving your browser. The relay only sees ciphertext it cannot read.

passive surveillance

No plaintext passes through any infrastructure. There is nothing to log.

identity linkage

No email. No phone. No name. Your alias is randomly generated in your browser and means nothing to us.

message persistence

Messages exist only in React state. They are never written to disk, localStorage, or any database. Tab closes — they are gone.

metadata accumulation

Unlike server-based apps, whispr has no user records, no conversation history, no timestamps stored anywhere. The Worker self-destructs after handshake.

!

endpoint compromise

If your device or browser is compromised, an attacker with local access can read messages on-screen. E2EE does not protect against this.

!

recipient behavior

Once the other person reads your message, they can screenshot or copy it. Ephemeral channels cannot prevent human action.

!

not Signal protocol

whispr uses session-level ECDH, not the Signal Double Ratchet protocol. The threat model is different. We do not claim otherwise.

!

WebRTC metadata

Your IP address is visible to the other peer during a WebRTC connection. This is a WebRTC limitation. Use a VPN if IP privacy matters for your use case.

!

link interception

If someone intercepts your invite link before the intended recipient opens it, they can claim the session. Share links through a trusted channel.

signaling relay
Cloudflare Workers · blind · ephemeral
room state
Durable Objects · auto-destructs post-handshake
WebRTC traversal
Metered.ca TURN relay · 500MB/mo free tier
app hosting
Vercel · static shell only
message routing
peer-to-peer · no server in the path
data retained
nothing · ever

ready to disappear?

no account. no trace. gone when you leave.

generating ephemeral identity...

START A ROOM
0serversrequired
0databasesused
0accountsneeded