Room --
Display Name
Tap to set a name… --
--
Waiting for room assignment
Shared Files
Event Log
i
Verbose mode shows all internal events: signaling, WebRTC negotiation, topology, and heartbeats. Off by default so chat messages and room activity stand out.
Connection Statistics idle
offline
inactive
My ID--
Room--
Signal RTT--
Reconnects0
Sig Mode--
Uptime--
Coordinator--
ICE State--
Conn State--
DC State--
RTT--
Bytes Sent--
Bytes Recv--
Pkts Sent--
Pkts Recv--
Local Cand--
Remote Cand--
DTLS--
BW Out--
Total Peers0
Connected0
Open DCs0
Msgs Sent0
Msgs Recv0
Pulls Served0

About Relay

A browser-based peer-to-peer communication system built for resilience, flexibility, and independence from centralized infrastructure.

What Relay Is

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.

How To Use Relay

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.

Rooms and Mesh Structure

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.

Connection Modes and Fallbacks

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.

File Sharing

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.

Coordinators and HostMesh

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.

Diagnostics and Transparency

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.

Recovery and Resilience

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.

Philosophy

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.

Invite

Share a link or short code; the other person joins automatically while the server is online.


Join with Code

Share the link; the other person's browser connects automatically via ntfy.sh. No server required.

Step 1: Your Offer Code

Generate a code and send it to the other person. Works with no internet at all.

Step 2: Paste Their Code

Paste the offer or answer code from the other person.