← All posts

The Layer Underneath · Companion to Post 2

Building Kabootar: login-less, untraceable video calling.

Project deep-dive · July 2026 · ~5 min read

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

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:

The connection doesn't fully close. When a call ends, the peer-to-peer connection doesn't tear down cleanly — even after three disconnect attempts. The workaround is grim: kill the app from Recents, or the other person might still hear your mic. I never found the root cause.
No TURN server. It relies only on Google's STUN. Behind a strict NAT or firewall, the direct path never forms and the call just won't connect — the exact STUN-vs-TURN wall from Post 2.
No back camera. There used to be a toggle, but switching cameras killed the outgoing video stream, so I pulled it rather than ship a broken button.
Earpiece-only audio. Audio routes through the earpiece by default; I tried InCallManager to force the speaker and couldn't get it working. Best experienced with a Bluetooth earphone.

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

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.

Companion to Post 2 — Building real-time video calling on raw WebRTC.
← Back to all posts

The story and the experiences are mine — the writing is Claude's.