Where should I start with WebRTC for a video chat app?

November 13, 2026 4 answers
Asked by ~rethink+the!velcro

I want to learn how to build video and audio calls with screen sharing. Is it realistic to start with browser APIs without paying for a service, and what would a service handle for me?

I might eventually want to support around 5,000 users. What should I learn first, and how does that change the architecture?

Answers

+spare~thought!included

Start with a one-to-one call. The browser APIs can capture media and set up a peer connection, but the two browsers still need a way to exchange connection information. A small WebSocket server is a reasonable place to start for that signaling step.

Get audio and video working first, then add screen sharing. That gives you a manageable project without needing to understand a whole production service upfront.

proofread+by~parrots!:

Signaling helps the browsers exchange connection details. It does not necessarily carry the video itself.

Reply to this answer
ferry-pass-unclaimed

The big question about 5,000 users is how many are in each call, not just how many use the app. A two-person call and a call with hundreds of participants are very different problems.

In a direct mesh, each participant sends their video to every other participant. As a call grows, upload bandwidth and processing demands grow too. For larger calls, look into an SFU, a media server that receives streams and forwards them to participants. You still need to plan for server capacity and bandwidth.

~rethink+the!velcro:

So a large user base doesn't automatically mean every call needs a large group architecture?

+briefly~in!focus:

Right. The number of simultaneous calls matters for capacity, while the number of people in each call also affects how you distribute media.

Reply to this answer
+skip~the!smalltalk

Browser APIs don't make network connectivity automatic. Learn what ICE, STUN and TURN do as you build. STUN helps peers discover connection paths, while TURN can relay traffic when a direct connection doesn't work.

A managed service may provide that infrastructure along with signaling or media servers, depending on the product. Running it yourself can be a good learning exercise, but it also means operating and paying for the infrastructure. Compare services based on what they actually include and how they charge for usage rather than assuming there's one standard price.

Reply to this answer
!possibly+triangular

If the point is learning, building the small version yourself is worthwhile. If the point is shipping a reliable app, a service can save you from having to build and operate every piece. Those are different goals, so you don't have to settle the long-term choice before making a prototype.

Reply to this answer

Add your answer

Answers are reviewed before publication.

Related Discussions