System design
Video Conferencing (e.g. Zoom)
Premium
Question
Design a browser-based video conferencing application similar to Zoom, Google Meet, or Whereby that lets authenticated users preview their camera and microphone before joining, participate in a multi-person meeting, mute and unmute themselves, toggle their camera, switch between grid and speaker layouts, share their screen, and send basic in-meeting chat messages.
Focus on the front-end architecture and the client/server contract for joining a room, establishing and maintaining media connections, handling real-time participant state, and adapting gracefully to changing network quality. You do not need to go deep into scheduling, recording, breakout rooms, captions, webinars, native applications, or server-side media transcoding details.
Real-life examples
Requirements
- Support a desktop-first web meeting room for up to roughly 25 active participants.
- Include a prejoin flow for camera and microphone permissions, device selection, and local preview.
- Support participant roster updates, active speaker indication, mute/camera controls, screen sharing, and basic in-meeting chat.
- Handle network degradation, reconnects, and quality adaptation gracefully.
- You do not need to cover scheduling, recording, breakout rooms, captions, webinars, or native applications.