Peer-to-Peer WebRTC App

Peer-to-Peer WebRTC App

A basic peer-to-peer video calling app built with Express.js + Node.js, developed to explore the core concepts and nuances of WebRTC signaling, peer connections, and media streaming.

Express + Node.js
TypeScript

About this Project

This project was built as a hands-on exploration of WebRTC, focusing on understanding the low-level mechanics of peer-to-peer communication.

• Express.js + Node.js (Signaling Server): Used for signaling (exchange of SDP offers/answers and ICE candidates) to establish a direct connection between peers.

• WebRTC Peer Connection: Implemented to enable direct browser-to-browser video and audio streaming, without routing media through a central server.

• Media Streaming: Utilized WebRTC APIs (getUserMedia, RTCPeerConnection, RTCDataChannel) for capturing webcam streams and sending them directly to another peer.

• Nuances Explored:

• Understanding ICE candidates and NAT traversal

• Learning how SDP negotiation works

• Testing latency and bandwidth variations in real-time calls

• Project Scope: The app was intentionally kept minimal (no UI frameworks, no persistence) to focus on learning the fundamentals of WebRTC and the signaling flow.