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.
    Video Conferencing (e.g. Zoom) | Front End System Design Question