Warm light through a frosted office window

How Hushroom works

A technical overview of how rooms are created, how encryption protects your conversations, and what happens to your data.

How rooms work

1

Create

Verify your email once. Pick a room name, duration, and max participants. Takes about 10 seconds.

2

Share the link

Send the link to participants. They click and join. No app, no sign-up, no account.

3

Room expires

When the timer runs out, the room and all data is permanently deleted. No backups, no recovery.

Storage architecture

Rooms exist only in Redis (RAM). There is no disk-based database, no SQL, no file storage. Encrypted room data lives only in memory: nothing is written to disk, and when the room TTL expires or the process stops, it is gone.

When the TTL expires, Redis evicts the key automatically. No human intervention, no backups, no recovery. Even someone with full server access after expiry would find nothing.

Room durations: 15 min, 30 min, 1 hour, 2 hours, 3 hours, or 4 hours. Chosen by the room creator at creation time.

How encryption works

The URL fragment approach

When you create a room, a 32-byte random key is generated in your browser. This key is placed in the URL fragment, the part after the # symbol:

https://hushroom.io/r/my-room#key=a1b2c3d4e5f6...64 hex chars

Per the HTTP specification, URL fragments are never sent to the server. The browser strips the fragment before making any request. This means our server never sees the encryption key: not in logs, not in request headers, nowhere. This is zero-knowledge by design.

Text messages

Each message is encrypted client-side using NaCl secretbox (xsalsa20-poly1305) before being sent over WebSocket. Each message gets a unique random nonce. The server only sees ciphertext and nonce blobs, and stores [encrypted] as a placeholder.

Voice and video

Voice and video streams are encrypted using LiveKit E2EE with PBKDF2 key derivation. All audio and video frames are encrypted before leaving your device. The same room key from the URL fragment is used to derive the media encryption key.

Key lifecycle

  • Key is generated in the browser when the room is created
  • Key lives only in React state, never persisted to localStorage or cookies
  • Key is shared by sharing the full room link, including the #key= fragment
  • When the tab is closed or the room expires, the key is gone

WHY IT'S SECURE

  • Encryption key never leaves your browser, the server literally cannot decrypt
  • URL fragment (#key=) is stripped by browsers before any HTTP request
  • Every message gets a unique random nonce, no pattern analysis possible
  • Voice and video encrypted frame by frame before leaving your device

What the server stores

During an active room session, the server holds:

DataStored asRetention
Room namePlaintextUntil room TTL expires
Participant countNumberUntil room TTL expires
Display namesIn-memory (WebSocket state)Until disconnect
Messages[encrypted] placeholderUntil room TTL expires
Creator emailSHA-256 hash (one-way)30 days
Encryption keysNever reaches server-

Not on this list, because it is never collected: IP addresses, browser fingerprints, user accounts, message plaintext, recordings.

What can be disclosed

If Hushroom receives a valid legal request (court order, subpoena), we can confirm that a room existed, roughly when it was created and how many people joined, and nothing more. Message content, recordings, encryption keys, participant identities and IP addresses are never in our possession, so they cannot be handed over. These are technical limitations, not policy promises.

See exactly what we can and cannot disclose

Honest disclaimer: your ISP

As with any internet service, your Internet Service Provider (ISP) may retain connection metadata as required by local data retention laws. This can include:

  • That a connection to hushroom.io was made
  • Timestamp and duration of the connection
  • Volume of data transferred
  • Your IP address (assigned by your ISP)

This reveals that you visited hushroom.io, not what you communicated. The content of your messages, voice calls, and video remains encrypted end-to-end. The encryption key never leaves your browser.

If ISP-level metadata is a concern, consider using a VPN or Tor Browser. Hushroom works normally over both.

Ready for a conversation that leaves no trace?

Create an encrypted room in about 10 seconds. No sign-up for participants.