Hi everyone!
I'm working on a privacy-focused peer-to-peer messenger built on WebRTC, and I'm researching how WebRTC behaves in real-world conditions.
Rather than benchmarks or lab tests, I'm interested in hearing about your actual experience using WebRTC-based applications (Signal, Element, Jitsi, PeerTube, Brave Talk, browser P2P apps, or any others).
Some questions I'd love to hear your thoughts on:
- Have you experienced random disconnects during calls or chats?
- Do connections fail more often on mobile networks, public Wi-Fi, or behind strict firewalls?
- Have you noticed problems when switching between Wi-Fi and cellular data?
- Do you frequently end up using relay servers instead of direct P2P connections?
- Have you encountered NAT or firewall issues that made WebRTC unusable?
- Have you ever had a WebRTC application work perfectly for one person but fail completely for another?
- Are there any recurring issues that you think developers tend to overlook?
If you're a developer, I'd also be interested in hearing about the most difficult networking problems you've encountered while building or maintaining WebRTC applications.
I'm especially interested in reliability under poor or restrictive network conditions, since one of my goals is to improve connection resilience while preserving privacy.
Thanks in advance to everyone willing to share their experiences!
Totally agree - WebRTC itself is solid technology, and the 1:1 direct peer connections are genuinely great when they work. Most of the pain really does come down to implementation choices and edge-case handling, exactly as you said.
I'm actually building a messenger (SecureBitСhat) that leans heavily on WebRTC as one of its transport channels, with a fairly aggressive security posture layered on top. The core philosophy is that nothing should depend on a server we control - no message content, no session data, no metadata sits anywhere except on the users' own devices, encrypted, and it's wiped once the session ends. Key exchange happens per-session with ephemeral keys, and we do a real cryptographic SAS (short authentication string) check derived from the actual DTLS fingerprints at connection time, not just a random code - plus full ASN.1 validation on the key structures to make sure nothing malformed slips through.
The reasoning for going fully server-less is less about performance and more about the threat model: any server, even a well-intentioned one, is a point a government or third party can pressure, subpoena, or just block outright. Right now users can already point the app at their own STUN/TURN servers if they want full control over their connection path.
Next on the roadmap is a community-run node network so users can optionally host their own nodes - this should lower the barrier to entry for less technical users and speed up handshake time, especially for reconnecting with peers they've had prior sessions with, without introducing a central point of control.
On the drop-out issue you mentioned - I don't think that's a WebRTC problem per se, it's more a reflection of the underlying network conditions and NAT/routing limitations users are stuck behind. I'm currently researching connection resilience patterns and looking at building a control layer on top that can better handle reconnects and flaky links, rather than treating every drop as a hard failure.
Also good call on WebTransport - I hadn't looked closely at it yet, will dig into the spec, especially if it ends up handling adverse network conditions more gracefully over HTTP/3.
If you're curious, the code (web client + crypto core) is here: https://github.com/SecureBitChat/securebit-chat and the live app is at https://securebit.chat/