The Technology Behind Peer-to-Peer Video Chat

By Yappit Editorial Team · Published July 18, 2026 · Last updated July 18, 2026
Yappit's editorial team covers safety, technology, and culture in the random chat space.

Table of contents

  1. What is WebRTC
  2. Why peer-to-peer matters for privacy
  3. Signaling vs media — what actually happens
  4. Why this means your server never sees the video

WebRTC in 4 steps

  1. Signaling: Server tells both browsers how to find each other
  2. ICE: Browsers discover the best network path to connect directly
  3. DTLS: Connection is encrypted end-to-end
  4. Media flows: Video/audio travels browser-to-browser — server is out of the loop

What Is WebRTC

WebRTC — Web Real-Time Communication — is a set of APIs built into every modern browser (Chrome, Firefox, Safari, Edge) that allows two browsers to exchange audio, video, and arbitrary data directly, without routing through a server and without installing any plugin or extension.

Before WebRTC, real-time video in a browser required Flash, Java applets, or proprietary plugins. Each one was a security liability, a compatibility headache, and a user experience barrier ("please install this plugin to continue"). WebRTC eliminated all of that. It's native to the browser. If you can open a webpage, you can do a WebRTC video call.

Google open-sourced the technology in 2011, and it became a W3C standard. Today it powers everything from Google Meet and Discord to telehealth platforms and — relevant to this article — random video chat services like Yappit's Video Yap and Voice Yap.

Why Peer-to-Peer Matters for Privacy

The defining characteristic of WebRTC is that media (video and audio) travels directly between two browsers. This is called peer-to-peer (P2P). The alternative — used by most traditional video services — is server-relayed, where your video goes to a central server, which forwards it to the other person.

The privacy implications are significant. In a server-relayed architecture, the platform operator has access to your video stream. They can record it, analyze it, store it, or use it for any purpose their privacy policy permits (or doesn't explicitly prohibit). You're trusting that they won't — but architecturally, they can.

In a peer-to-peer architecture, the platform operator never sees your video. They can't record what they never receive. This isn't a policy promise ("we choose not to record you") — it's an architectural guarantee ("we are technically unable to record you because the data never passes through our infrastructure").

This is why Yappit uses WebRTC peer-to-peer. When we say on our privacy page that we don't record video, it's not just a policy statement — it's a technical reality. Our server handles signaling (the introduction) but never touches the media (the conversation). The architecture makes the privacy claim verifiable, not just claimable.

There is one important caveat. Peer-to-peer connections exchange IP addresses between the two browsers as part of the connection process (via ICE candidates — more on this below). This means the other person's browser technically receives your IP address, which can reveal your approximate geographic location. Yappit's privacy architecture accepts this trade-off because the alternative — routing video through our servers for IP masking — would mean we'd have access to your video stream, which defeats the entire privacy benefit.

Signaling vs Media — What Actually Happens

A WebRTC call has two distinct phases, and understanding the difference between them is the key to understanding why the server "steps out" after the connection is made.

Phase 1: Signaling (server is involved). Before two browsers can connect directly, they need to exchange some information: what codecs they support, what media they want to send, and what network addresses they're reachable at. This exchange is called signaling, and it happens through the platform's server — in Yappit's case, via Socket.io.

The signaling process works like this: Browser A creates an "offer" — a description of what it can send and receive. This offer is sent to the server, which forwards it to Browser B. Browser B creates an "answer" and sends it back through the server. Along the way, both browsers also share ICE candidates — network addresses that the other browser can try connecting to.

Think of signaling as a mutual friend introducing two people at a party. The friend knows both people and brings them together, but once the introduction is made, the friend walks away. The conversation that follows is between the two people only.

Phase 2: Media (server is not involved). Once both browsers have exchanged offers, answers, and ICE candidates, they establish a direct connection using the best available network path. From this point forward, all audio and video data flows directly between the two browsers. The server is no longer in the media path. It doesn't see the video, doesn't hear the audio, and can't record either.

The connection is encrypted using DTLS (Datagram Transport Layer Security), which means even if someone intercepted the network traffic between the two browsers, they couldn't decode the video or audio without the session's encryption keys.

Why This Means Your Server Never Sees the Video

This is the practical payoff of the architecture. In Yappit's implementation, the server does exactly three things: authenticates users (via Google OAuth), matches them (via the matchmaking algorithm), and facilitates signaling (via Socket.io). Once two users are connected, the server's involvement in their conversation is zero.

This has direct implications for moderation design. Since the server never sees the video, server-side content scanning is not an option. That's why Yappit runs its AI moderation model (NSFWJS) client-side — inside your browser. The AI downloads once and runs on your device, analyzing frames locally. This is the only way to do real-time content moderation without routing video through a server, and it's the architecture that makes it possible to be both private and moderated.

For voice calls in Voice Yap, the same peer-to-peer architecture applies. Audio travels directly between browsers. The consent-based video upgrade also uses WebRTC — when both users agree to switch to video, the existing peer connection is renegotiated to include a video track. The server is notified of the consent (so it can enforce the mutual-agreement requirement) but never receives the media itself.

This architecture is not without trade-offs. Peer-to-peer video quality depends on both users' internet connections. If one user has a weak connection, the video quality degrades for both — there's no server in the middle to buffer or transcode. But for a platform where privacy is a core value, this trade-off is the right one. Being able to chat safely with strangers means the platform should know as little as possible about what you said.

Frequently asked questions

What is WebRTC?

WebRTC (Web Real-Time Communication) is a browser-native technology enabling peer-to-peer audio, video, and data transfer without plugins or routing through a central server.

Does the server see my video?

In standard peer-to-peer WebRTC — no. Video flows directly browser-to-browser. The server only handles signaling (the introduction). Once connected, the server is out of the media path.

What is signaling?

The initial handshake where browsers exchange connection info (session descriptions, ICE candidates). It happens through the server but contains no media — only the metadata needed to establish the direct connection.

Can WebRTC expose my IP?

Yes — peer-to-peer connections share IP addresses via ICE candidates. This can reveal approximate location. Some platforms mitigate this with TURN relay servers, but that means the server can then see the stream.

See WebRTC in Action

Peer-to-peer video. Your stream never touches our servers. Free.

Try Yappit Free
Try Yappit Free