A browser-based peer-to-peer communication system built for resilience, flexibility, and independence from centralized infrastructure.
At its core, Relay lets people communicate directly with each other using WebRTC DataChannels. Once peers are connected, messages and files move directly between browsers instead of being routed through a central server. The signaling server only helps peers find each other and establish the initial connection. After that, the server is mostly out of the picture.
Relay normally uses a lightweight signaling server for peer discovery and room coordination, but existing peer connections continue functioning during outages and new peers can still connect through fallback methods.
Everything runs directly in the browser from a single static page.
When you open Relay, you are automatically assigned a persistent peer identity stored locally in your browser. You can optionally choose a display name so other peers can recognize you more easily.
Relay will automatically place you into a room and begin connecting to nearby peers. Once connected, you can send chat messages, share files directly peer to peer, invite additional peers, browse active rooms, and monitor network and connection statistics in real time.
Relay organizes peers into automatically balanced rooms to avoid overcrowding or fragmentation. Each room forms a peer mesh where browsers connect directly to each other. Smaller rooms operate as a full mesh where everyone connects to everyone else. Larger rooms gradually shift into a partial mesh structure where coordinator peers help relay traffic between less directly connected nodes. Rooms automatically disappear after everyone leaves them.
Relay supports multiple connection paths so the network can survive disruptions.
Server-Assisted Mode is the normal operating mode. A lightweight signaling server helps peers discover each other and exchange WebRTC handshake information. It tracks rooms, relays offers and ICE candidates, handles invite codes, and maintains presence and heartbeat tracking. The server does not see peer-to-peer chat messages or transferred files after the connection is established.
Meshnet Mode uses ntfy.sh as a rendezvous layer. The browser creates a WebRTC offer locally, embeds it into a URL or QR code, and the answering peer responds through ntfy.sh to establish a direct connection without relying on the Relay signaling server.
Manual Mode supports fully manual handshakes with no external infrastructure at all. One user generates an offer string and sends it however they want. The second user pastes it into Relay, generates an answer, and sends that back. Once both sides exchange the strings, the WebRTC connection completes.
Files are transferred directly between peers over WebRTC DataChannels. When you share a file, Relay creates a temporary file token and other peers see the available file. Downloads stream directly between browsers with chunking and backpressure protection. The server never stores or proxies the file contents.
Each room elects a coordinator peer automatically based on join order. Coordinators help maintain room state, assist with peer recovery, relay traffic in partial mesh rooms, and participate in the larger HostMesh federation.
HostMesh is a coordinator-to-coordinator overlay network that allows rooms to discover each other without relying entirely on the server. Coordinators exchange lightweight manifests describing active rooms and their availability.
Relay exposes a large amount of live network information directly to the user. You can inspect ICE connection states, RTT and latency, candidate types, bytes and packets transferred, DTLS state, available bandwidth, peer counts, and DataChannel health. The goal is to make the network visible instead of hiding it behind opaque UI layers.
If the signaling server restarts, existing peer connections continue functioning, coordinators rebuild room state, and peers reassociate automatically. If direct peer paths fail, Relay can route through coordinators or relay peers. If centralized infrastructure disappears entirely, Manual and Meshnet modes still allow new connections.
Relay is built around a simple idea: communication systems should not collapse because one server, service, or provider disappears. It favors direct browser-to-browser networking, visible system state, recoverability, and layered fallback mechanisms over centralized control.
Share a link or short code; the other person joins automatically while the server is online.
Share the link; the other person's browser connects automatically via ntfy.sh. No server required.
Generate a code and send it to the other person. Works with no internet at all.
Paste the offer or answer code from the other person.