Back to browse
Nullroom.io – Experimental, stateless P2P messaging and file sharing

Nullroom.io – Experimental, stateless P2P messaging and file sharing

by vdw·Feb 26, 2026·3 points·0 comments

AI Analysis

●●SolidZero to OneDark Horse

Zero-trace P2P messaging via WebRTC, but SignalTown, Ricochet Refresh already prove this model works.

Strengths
  • Genuine cryptographic architecture: encryption keys in URL fragment means signaling layer is blind to data.
  • Stateless design is clever — no account recovery burden, no honeypot data to breach.
  • Rails 8 + ActionCable + WebRTC integration shows real technical scaffolding beyond proof-of-concept.
Weaknesses
  • P2P messaging via E2EE is a known category (Signal, Briar, Ricochet) — the 'no server' angle is positioning, not innovation.
  • File transfer limited to 24MB, undocumented how long rooms persist, and BETA status suggests incomplete product.
Category
Target Audience

Users needing ephemeral, untraceable file and message exchange (journalists, activists, privacy-conscious individuals)

Similar To

Signal Private Messenger · Ricochet Refresh · OnionShare

Post Description

Hi HN,

I’ve been experimenting with WebRTC and Rails 8 to see if it's possible to build a messaging utility that is truly "stateless". I wanted to create something for those moments when you need to move a snippet of text or a file between devices without leaving a trace on a server, a database, or a third-party cloud.

The AI Collaboration: I also want to mention that this project has been a deep dive into collaborating with AI. I used AI to brainstorm the "Zero-Trace" architecture, help me harden the infrastructure after a security audit.

How it works:

Zero-Trace Architecture: No accounts, no cookies (beyond basic security), and absolutely no server-side logging.

Client-Side Encryption: Encryption keys stay in the URL fragment (#). Since fragments are never sent to the server, the signaling layer is cryptographically blind to your data.

P2P Signaling: We use ActionCable for the initial handshake. Once the WebRTC DataChannel is established, the conversation and file transfers happen directly between browsers.

Zero Third-Party Dependencies: No external fonts, scripts, or trackers. Everything is served from the origin to prevent IP leakage to third-party providers.

The Beta Experiment: I'm currently testing the stability of the P2P signaling. I’ve enabled file transfers (up to 24MB) for everyone during this phase. I’m curious to see how the connection logic handles different network environments.

The Tech Stack:

Framework: Rails 8 Deployment: Kamal 2 on a single VPS

I’d love to get your thoughts on the UX and any edge cases you find with the WebRTC handshake!

Similar Projects