Claude Code
Can explain and scaffold WebRTC signalling and an SFU integration step by step.
Video calls · updated 2026-11-03
Don't: No, use a product No for daily meetings. Group video depends on real-time media servers, TURN relays and constant tuning; use Zoom, Google Meet or self-hosted Jitsi instead.
A two-person WebRTC call in the browser is a great learning project and AI tools can scaffold it. Reliable group calls are another matter: you need an SFU media server, TURN relays for users behind strict firewalls, bandwidth adaptation and recording, and you need them to work every time someone joins. Open-source Jitsi Meet already solves this and can be self-hosted, so build only to learn.
Zoom is video meetings, webinars and team chat with recording and transcription. This page is about building your own version for personal or internal use, or to learn how this kind of product works, not about copying Zoom to compete with it. How we grade.
Difficulty is for a solo builder using an AI coding tool. Skip means not worth building yourself.
| Feature | Difficulty | Why |
|---|---|---|
| One-to-one video call | Medium | WebRTC with a signalling channel; works in a day for a demo. |
| Group calls (5+ people) | Hard | Needs an SFU such as LiveKit, mediasoup or a hosted service. |
| TURN relay | Hard | Without TURN a share of users cannot connect; Cloudflare TURN costs $0.05 per GB outside its SFU. |
| Screen sharing | Medium | getDisplayMedia track added to the connection. |
| In-call chat | Easy | A data channel or your realtime database. |
| Recording | Hard | Server-side composite recording is a separate media pipeline. |
| Waiting room and host controls | Medium | Signalling server state and permissions. |
| Webinars and phone dial-in | Skip | Telephony and large broadcast are out of scope. |
Your own version vs Zoom, at personal or small-team scale.
Workplace Pro: $14.16/mo/seat billed annually
Pro is $14.16 per user per month billed yearly or $16.99 monthly. The free Basic plan limits meetings to 40 minutes with up to 100 participants.
Source: zoom.us/pricing. Prices change; check before deciding.
| Running cost | Per month | Notes |
|---|---|---|
| Signalling server and hosting | $0–$10 | A small VPS or serverless websocket service. |
| TURN relay bandwidth | $0–$20 | Cloudflare TURN is $0.05 per GB outside its SFU; video eats gigabytes per hour. |
| SFU media server for group calls | $5–$50 | A self-hosted LiveKit or Jitsi server needs real CPU and bandwidth, or pay a hosted provider per minute. |
| Total | $5–$80/mo | Saves up to $110 a year vs Zoom Workplace Pro per seat; at the top of the range it costs $790 a year more. |
Can explain and scaffold WebRTC signalling and an SFU integration step by step.
Easy place to run a small signalling server for a learning project.
Useful for debugging connection state and ICE issues in your own code.
Paste it into your tool, then ask for a plan before any code. Edit the specifics to match what you need.
This is a learning project, not a replacement for my real meetings. Build a minimal browser video call app so I understand WebRTC. Stack: Next.js frontend, a small Node websocket signalling server, and optionally LiveKit (self-hosted or cloud) for the group-call step. Steps: 1. One-to-one call: create a room with a random ID, exchange SDP offers and ICE candidates over the signalling server, show local and remote video, mute and camera toggles. 2. Add screen sharing with getDisplayMedia. 3. Add a TURN server config (coturn or a hosted TURN) and test from a mobile network. 4. Replace the peer-to-peer mesh with LiveKit for 5+ participants and explain the difference. Data model: rooms (id, created_by, created_at, expires_at, requires_approval), participants (room_id, display_name, joined_at, left_at). Security: - Room IDs must be long random strings; rooms expire. - Optional waiting room where the host approves joins. - TURN credentials must be short-lived and generated per session by the server, never hard-coded in the client. - Authenticate signalling messages so users cannot inject themselves into other rooms. Explain each step in comments so I learn how it works.
AI tools often get these wrong by default. Check each one before anyone else uses the app.
You learn WebRTC, NAT traversal with STUN and TURN, and why media servers exist, which is valuable even if you never ship it.
Don't. No for daily meetings. Group video depends on real-time media servers, TURN relays and constant tuning; use Zoom, Google Meet or self-hosted Jitsi instead.
A working personal or internal MVP takes about 6 h–2 days with a tool like Claude Code. A polished version you would rely on every day takes about 25–75 days, mostly spent on group calls through an sfu media server instead of peer-to-peer meshes.
Expect $5–$80/mo at personal or small-team scale (signalling server and hosting, turn relay bandwidth, sfu media server for group calls). Zoom Workplace Pro costs $14.16/mo/seat (checked 2026-11-03), so the most you would save is $110 a year, before counting your time.
You can build a working one-to-one browser call as a learning project. Reliable group meetings need media servers, TURN relays and constant tuning, so use Zoom, Google Meet or self-hosted Jitsi for real work.
Jitsi Meet is open source, free to use on its public service and can be self-hosted. LiveKit is an open-source media server if you want to build calls into your own app.
Many users sit behind firewalls or mobile networks that block direct peer-to-peer connections. A TURN server relays the media so the call still connects, at the cost of bandwidth you pay for.
Building your own tool that solves the same problem is common and generally fine. Copying Zoom's code, design assets, brand name or content is not. Use your own name and design, respect their terms of service, and get proper advice if you plan to sell it. This page is not legal advice.