Engineering decisions for my video call tool
Source: Dev.to
WebChat
A PeerJS‑based browser‑to‑browser video conferencing app with low‑latency, high‑performance real‑time communication.
This project pushed me deep into the internals of infrastructure optimization.
Key Engineering Decisions
- Engineered a combined signaling server: integrating Express.js, Socket.IO and PeerJS into a single‑process, single‑port architecture that runs with a single command.
- This design avoids typical multi‑service deployment constraints and runs smoothly on a single (free‑tier as of now) instance.
- Solved a tricky issue of duplicate video streams using PeerJS ID deduplication logic.
- Enabled dynamic participation via URL‑based session joins, with full leave/rejoin support for participants.
- Focused on ultra‑low latency media exchange and snappy UI responsiveness.
- Used ngrok to tunnel the local development server, enabling testing across different devices and network environments by exposing the localhost port via a secure public URL.
Stack
- PeerJS
- Socket.IO
- Express.js
- EJS
- Node.js