Case Study · Android Development

Private Video Calling
on your own server.

A native Android video calling app built on the client's own infrastructure — no Zoom, no WhatsApp, no third-party data sharing. Consumer-quality UX, fully private calls.

Every call going through someone else's server

The client needed video calling but couldn't accept the trade-offs of Zoom, Google Meet, or WhatsApp — every call routed through a third party, data leaving their control, branding they didn't own. They wanted private calls on infrastructure they fully controlled, without sacrificing a polished, familiar user experience.

A clean-architecture Android app on a self-hosted backend

Kotlin Jetpack Compose Hilt (DI) Retrofit DataStore Jitsi Meet SDK Self-hosted
01

Auth & Onboarding

Splash, login, and registration flows with JWT auth stored securely in DataStore — built as testable Route + Screen pairs.

02

Meetings

Create and join meeting rooms, launched into the Jitsi SDK against a self-hosted server URL — not the public meet.jit.si.

03

Clean Architecture

Three-layer structure (UI → Domain → Data) following NowInAndroid patterns: StateFlow UI state, sealed-interface actions, repositories returning Flow/Result.

04

Private Backend

REST API issuing Jitsi tokens, with the meeting server fully under the client's control — calls never touch a public provider.

Consumer-quality UX, zero third-party data

The client runs video calls that feel like any modern calling app — but every call stays on their own server. No Zoom account, no WhatsApp, no data handed to a third party. A maintainable, modular codebase that can grow new features without rewrites.

Need an app that
keeps data yours?

Tell us what you're trying to build. We'll scope it, price it, and ship it — on your infrastructure, with no lock-in.

Start a Project →

Fixed price. No lock-in. You own everything.