Skip to main content

❓ WebRTC2 FAQ

Frequently asked questions about WebRTC2.

�� General Questions

What makes WebRTC2 different from other communication platforms?

WebRTC2 implements true peer-to-peer architecture where your data never touches our servers. Unlike platforms like Telegram, WhatsApp, or Discord that process all data through their servers, WebRTC2 servers only help establish connections between your devices.

Key Differences:

  • Data Flow: Direct device-to-device (not through servers)
  • File Sharing: Unlimited size via P2P DataChannels
  • Privacy: Zero-knowledge server architecture
  • Cost: No per-user licensing fees

How does WebRTC2 compare to Signal in terms of privacy?

While Signal is excellent for privacy, WebRTC2 goes further:

AspectSignalWebRTC2
MessagesEncrypted, but metadata visible to serversDirect P2P, minimal metadata
FilesThrough Signal servers (100MB limit)Direct P2P (unlimited size)
CallsServer-assisted connectionDirect P2P connection
Self-HostingComplex setupSimple deployment

Is WebRTC2 suitable for enterprise use?

Yes! WebRTC2 is specifically designed for enterprise requirements:

  • HIPAA/GDPR Compliance: Privacy by design architecture
  • Cost Efficiency: No per-user licensing fees
  • Data Sovereignty: Complete control over your data
  • Self-Hosting: Deploy on your own infrastructure
  • Enterprise Features: Management tools and audit capabilities

🔧 Technical Questions

What are the system requirements?

Minimum Requirements:

  • Browser: Chrome 88+, Firefox 85+, Safari 14+, Edge 88+
  • Mobile: iOS 14+, Android 8+
  • Desktop: Windows 10+, macOS 10.15+, Ubuntu 18+
  • Network: Internet connection (bandwidth adaptive)

Recommended:

  • RAM: 4GB+ for desktop, 2GB+ for mobile
  • CPU: Dual-core 2GHz+ (quad-core for video calls)
  • Network: Broadband connection for HD video

How many participants can join a single call?

WebRTC2 uses adaptive topology based on participant count:

  • 2-10 participants: Full mesh P2P (optimal privacy and quality)
  • 11-50 participants: Hybrid SFU topology (balanced performance)
  • 50+ participants: Multi-tier architecture (enterprise scale)

The exact limit depends on network conditions and device capabilities.

What happens if someone has a slow internet connection?

WebRTC2 includes adaptive quality management:

  • Automatic Quality Adjustment: Reduces resolution/bitrate automatically
  • Network Optimization: Prioritizes audio over video when needed
  • Fallback Mechanisms: TURN server relay for restrictive networks
  • Progress Resumption: File transfers can pause/resume

How does file transfer work without servers?

WebRTC2 uses WebRTC DataChannels for direct device-to-device transfer:

// File transfer flow
Device ADirect P2P ConnectionDevice B

Benefits:

  • Unlimited Size: No server storage limitations
  • Faster Speed: Direct connection typically 4-5x faster
  • Complete Privacy: File never touches any server
  • Cost Efficient: No server storage or bandwidth costs

What about NAT traversal and firewalls?

WebRTC2 handles complex networking automatically:

  1. ICE Negotiation: Finds the best connection path
  2. STUN Servers: Help discover public IP addresses
  3. TURN Servers: Relay traffic when direct connection impossible
  4. UPnP/NAT-PMP: Automatic port forwarding when available

Success Rates:

  • Direct Connection: ~80% of cases
  • STUN Assisted: ~15% of cases
  • TURN Relay: ~5% of cases (restrictive networks)

🚀 Getting Started

How difficult is it to integrate WebRTC2?

WebRTC2 is designed for developer productivity:

Simple Integration:

// Basic setup in under 10 lines
import { WebRTC2Client } from '@webrtc2/client';

const client = new WebRTC2Client({
signalingUrl: 'wss://signal.yourcompany.com'
});

await client.connect();
const channel = await client.createChannel(['peer1', 'peer2']);
await channel.sendMessage('Hello, private world!');

Comprehensive SDK:

  • TypeScript Support: Full type safety
  • React Components: Pre-built UI components
  • Documentation: Extensive guides and examples
  • Testing Tools: Built-in testing utilities

What programming languages are supported?

Primary Support:

  • TypeScript/JavaScript: Full featured SDK
  • React: Native components and hooks
  • React Native: Mobile-optimized components

Planned Support:

  • Swift: Native iOS SDK
  • Kotlin: Native Android SDK
  • Python: Server-side integration
  • Go: High-performance backends

Can I customize the UI?

Absolutely! WebRTC2 provides multiple levels of customization:

Pre-built Components:

import { VideoCall, FileTransfer, ChatWindow } from '@webrtc2/ui';

// Customizable React components
<VideoCall
theme="dark"
layout="grid"
showParticipants={true}
customControls={myControls}
/>

Custom Implementation:

  • Headless SDK: Build completely custom UI
  • CSS Customization: Theme pre-built components
  • Component Override: Replace individual components
  • Brand Integration: Match your company branding

🔐 Security Questions

How secure is WebRTC2?

WebRTC2 implements multiple layers of security:

Cryptographic Security:

  • Ed25519: Digital signatures for identity verification
  • AES-256-GCM: Symmetric encryption for data
  • Perfect Forward Secrecy: Past communications remain secure
  • Key Rotation: Fresh keys for each session

Architectural Security:

  • Zero-Knowledge Servers: Cannot access your data
  • Self-Sovereign Identity: You control your cryptographic keys
  • No Central Storage: Data exists only on your devices

Can government agencies access my communications?

Short Answer: No, by architectural design.

Technical Explanation:

  • Zero-Knowledge Architecture: Our servers cannot decrypt your data
  • Direct P2P: Communications bypass central servers
  • Self-Sovereign Keys: Only you control your encryption keys
  • Local Storage: No centralized database to access

This is fundamentally different from platforms where companies can be compelled to provide user data.

What data does WebRTC2 collect?

Data We Cannot Access:

  • Message content (encrypted end-to-end)
  • File content (transferred directly P2P)
  • Voice/video call content (direct P2P)
  • User identity information (self-sovereign)

Minimal Metadata We May See:

  • Connection timestamps (when you connect)
  • Anonymous peer identifiers (not linked to identity)
  • ICE server usage (for connection assistance)
  • Error logs (for service improvement)

How do I backup my data?

Since WebRTC2 stores data locally, backup is your responsibility:

Identity Backup:

// Save your mnemonic phrase securely
const identity = new DigitalIdentity();
const mnemonic = identity.mnemonic; // 12-24 words - store safely!

Message Backup:

  • Local Export: Export conversations to encrypted files
  • P2P Sync: Sync between your own devices via P2P
  • Custom Backup: Implement your own backup solution

📚 Development Questions

Which platforms are supported?

WebRTC2 supports all major platforms:

PlatformStatusFeatures
Web Browsers✅ Full SupportComplete feature set
iOS✅ Full SupportNative performance
Android✅ Full SupportNative integration
macOS✅ Full SupportDesktop app
Windows✅ Full SupportDesktop app
Linux✅ Full SupportDesktop app

Can I use the same identity across platforms?

Yes! WebRTC2 uses cryptographic identity that works across all platforms:

// Same mnemonic phrase works everywhere
const mnemonic = "word1 word2 word3..."; // Your identity
const webIdentity = new DigitalIdentity();
const mobileIdentity = new DigitalIdentity();

await webIdentity.recoverFromMnemonic(mnemonic);
await mobileIdentity.recoverFromMnemonic(mnemonic);

// Same public key on all platforms
assert(webIdentity.publicKey === mobileIdentity.publicKey);

Does WebRTC2 work on corporate networks?

Yes, with automatic fallback mechanisms:

  1. Try Direct Connection: Attempts direct P2P first
  2. STUN Assistance: Uses STUN servers for NAT traversal
  3. TURN Relay: Falls back to relay servers if needed
  4. Proxy Support: Works through HTTP/HTTPS proxies

Enterprise Network Support:

  • Firewall Compatibility: Works through most corporate firewalls
  • Proxy Support: HTTPS tunneling for restrictive networks
  • Custom TURN: Deploy your own TURN servers
  • Network Diagnostics: Built-in network testing tools

💼 Business & Licensing

What is the pricing model?

WebRTC2 uses infrastructure-based pricing, not per-user licensing:

Open Source Core: Free to use and modify Infrastructure Costs: Pay for your own servers/hosting Enterprise Support: Optional paid support plans Managed Services: Optional hosted signaling infrastructure

Cost Comparison:

  • Teams: $7-22/user/month = $8,400-26,400/year (100 users)
  • WebRTC2: $500-2,000/month infrastructure = $6,000-24,000/year (unlimited users)

Can I use WebRTC2 commercially?

Yes! WebRTC2 is open source with permissive licensing:

  • Commercial Use: Allowed
  • Modification: Allowed
  • Distribution: Allowed
  • Private Use: Allowed
  • Patent Grant: Included

Do I need to open source my modifications?

No. WebRTC2 uses MIT-style licensing (specific license TBD):

  • No Copyleft: You can keep modifications private
  • No Attribution Required: In your private deployments
  • Commercial Friendly: Build proprietary products on top

🚀 Future Development

What features are planned?

Short-term (Q1-Q2 2025):

  • Enhanced mobile optimizations
  • Advanced enterprise management
  • Improved developer tools

Medium-term (Q3-Q4 2025):

  • Mesh networking for serverless operation
  • Blockchain integration for identity
  • Advanced AI features with privacy

Long-term (2026+):

  • Post-quantum cryptography
  • IoT device communication
  • Next-generation protocols

How can I contribute?

Ways to Contribute:

  • Code: Submit pull requests
  • Documentation: Improve guides and examples
  • Testing: Report bugs and test new features
  • Community: Help other developers
  • Feedback: Share your use cases and needs

Getting Started:

# Clone repository
git clone https://github.com/webrtc2/webrtc2.git
cd webrtc2

# Install dependencies
pnpm install

# Run tests
pnpm test

# Start development
pnpm dev

Still have questions? Join our community discussions or check out our comprehensive documentation!