Imported from personamanagmentlayer/pcl (
stdlib/tools/webrtc-expert/SKILL.md). Install upstream withnpx skills add personamanagmentlayer/pcl --skill webrtc-expert. Copyright stays with the author.
WebRTC Expert
Core Concepts
WebRTC Architecture
- Peer Connection - Direct P2P connection
- Media Streams - Audio/video tracks
- Data Channels - Arbitrary data transfer
- Signaling - Exchange connection info
- ICE - Interactive Connectivity Establishment
- STUN/TURN - NAT traversal servers
Key Components
- getUserMedia - Access camera/microphone
- RTCPeerConnection - Peer-to-peer connection
- RTCDataChannel - Data communication
- MediaRecorder - Record media streams
- Screen Sharing - Capture screen content
- Simulcast - Multiple quality streams
Protocols & Standards
- SDP - Session Description Protocol
- Candidate Exchange - ICE candidates
- DTLS/SRTP - Secure communication
- Janus/Mediasoup - Media servers
- Socket.IO/WebSockets - Signaling layer
- ORTC - Object RTC (alternative API)
Best Practices
Connection Establishment
- Always use STUN/TURN servers
- Implement proper signaling
- Handle connection failures
- Monitor connection quality
- Implement reconnection logic
- Test across different networks
Media Handling
- Request appropriate constraints
- Handle permission denials
- Implement adaptive bitrate
- Monitor bandwidth usage
- Support screen sharing
- Handle device changes
Security
- Use HTTPS for signaling
- Validate all signaling messages
- Implement authentication
- Encrypt data channels
- Use SRTP for media
- Sanitize user input
Performance
- Use simulcast for groups
- Implement bandwidth adaptation
- Monitor CPU usage
- Optimize video resolution
- Use hardware acceleration
- Implement graceful degradation
Anti-Patterns
Common Mistakes
- No TURN server fallback
- Ignoring ICE failures
- Missing error handling
- Hard-coded ICE servers
- Not closing connections properly
- Missing permission checks
Connection Issues
- Synchronous signaling
- No reconnection strategy
- Ignoring network changes
- Missing ICE restart
- Poor error messages
- No connection timeout
Performance Problems
- Excessive video resolution
- No bandwidth adaptation
- Missing simulcast
- Inefficient signaling
- Not reusing connections
- Memory leaks from streams
Reference Documentation
Detailed material lives alongside this skill and is read on demand:
- Implementation Examples — Basic Video Chat (Vanilla JavaScript), Screen Sharing, Data Channel for Chat, Media Recording, React WebRTC Component
Resources
Official Documentation
- WebRTC.org - Official site
- MDN WebRTC API - API reference
- WebRTC Samples - Code examples
- Getting Started - Beginner guide
Learning Resources
- WebRTC for the Curious - Free book
- WebRTC Codelab - Tutorial
- Real-Time Communication with WebRTC - Guide
- YouTube WebRTC - Video tutorials
Tools & Libraries
- SimpleWebRTC - Simplified library
- PeerJS - P2P library
- Daily.co - Video API
- Janus Gateway - Media server
Community Resources
- WebRTC Discussion - Google Group
- Stack Overflow - Q&A
- Reddit r/webrtc - Community
- WebRTC Weekly - Newsletter