In Post 2 I mentioned Kabootar in passing — the side project that got me the WebRTC calling gig. It deserves its own page, because it's the clearest example of the thing this whole series keeps circling: a demo that works, sitting on top of an 80% I hadn't built yet.
The idea, in one line
Call someone without handing over anything about yourself. No phone number, no email, no account, no login. Two people type the same PIN and they're connected, peer to peer. When the call ends, nothing is meant to be left behind. It came from a stubborn question I couldn't drop — WhatsApp and Zoom have video calling, WebRTC is open, Google's STUN server is free, so why does a call need an identity and a paper trail?
How it works
- Both people enter the same PIN.
- The WebRTC offer, answer, and ICE candidates get written under that PIN's node in Firebase — that's the signaling, and it stores no identity.
- Each device watches that node; when both sides are present, they exchange and the peer connection forms.
- From there the audio and video flow directly, peer to peer — no media server in the middle.
- Built in React Native (bare workflow), with Expo modules for camera and mic permissions.
Where it works — and where it doesn't
This is the honest part, and it's why Kabootar taught me more than the apps that "just worked." I shipped it knowing exactly which corners were cut:
None of these are exotic. They're the ordinary, unglamorous 80% — call teardown, NAT traversal, hardware routing — that separates a working demo from something a stranger can rely on. Naming them honestly is half the point of this series.
What I'd add next
- File sharing over the WebRTC data channel — send images and PDFs P2P, no third-party server.
- Screen sharing via WebRTC's capture APIs.
- Real audio routing — clean switching between earpiece, speaker, and Bluetooth.
- Back-camera toggle that doesn't break the remote stream.
- Call timeout & auto-cleanup so dropped and inactive calls close gracefully.
Where to find it
Kabootar is public — use it however you like. The code and an Android build are on GitHub, and it's in my projects. It's not a hardened product; I built it to learn, and it's the clearest proof I have that connecting a call is the easy 20% — everything after is the real work. Use it at your own risk.