Skip to Content
Why VioraComparison

How Viora compares

Framing

Viora is a self-hosted 1:1 client, so the honest comparison set is other ways two people can have a private video call, not “Zoom alternatives.” The table below is about architecture and control, not feature count - Viora loses a feature-count contest to every commercial product and doesn’t care.

At a glance

VioraZoom / Meet / TeamsSignal / WhatsApp callsJitsi Meet (self-hosted)FaceTime
Media path (1:1)P2P, alwaysServer SFUP2P, TURN-relayed when neededSFU (P2P only in tiny calls)P2P, Apple TURN relay
Who runs the media serverNo media serverVendorVendor relaysYouApple
Backend you self-host1 static binary, no DB--Full stack (Prosody, Jicofo, JVB, web)-
Persistence / accountsNoneAccount requiredPhone numberOptionalApple ID
Server seesRoom code, name, SDP/ICE, chat relayEverything (media transits)Metadata; media E2E encryptedMedia transits the JVBMetadata; media E2E encrypted
EncryptionDTLS-SRTP (WebRTC standard)SRTP; optional E2EE add-onE2E encryptedDTLS-SRTP hop-by-hopE2E encrypted
Client source you can readWhole app, ~11k LoCClosedClient open, servers notOpenClosed
Codec transparencyExposed & selectable (H.264/H.265/AV1)HiddenHiddenPartlyHidden
Max participants2 (mesh 3–5 planned)100–1000+8–3250–7532
PlatformsAndroidEverythingEverythingEverythingApple only

The trade Viora makes

You give up: large meetings, a hosted option, cross-platform clients, calendar integration, recording, breakout rooms, and the reliability that a global relay network buys on hostile networks.

You get:

  • A media path with no middle. For a 1:1 call there is literally no server that could be compelled, breached, or monetised into your call. Signal and FaceTime achieve confidentiality with end-to-end encryption over a relay; Viora achieves it by not having the relay.
  • A backend you can actually host. Jitsi is the standard “self-hosted calls” answer, but a real Jitsi deployment is Prosody + Jicofo + a JVB + a web frontend + TURN, and the JVB is a media server that sees your streams. Viora’s backend is one binary that never sees media.
  • A client you can read in an afternoon. The entire app is in this repo. The interesting 80% is four files (WebRtcClient.kt, MainActivity.kt, CallScreen.kt, and signaling.rs).
  • Settings that mean something. “4K” is 3840×2160@30 with a 20 Mbps cap, not a marketing tier. The stats panel shows whether the encoder is hardware or software, the real send/receive bitrate, and the battery temperature so you can see the SoC heating up.

When not to use Viora

  • You need more than two people today (mesh multi-party is on the roadmap, not shipped).
  • You need an iPhone, desktop, or web participant (the web client is a 2-person testing tool, not a product).
  • You’re on a network where both peers are behind symmetric NAT and there’s no shared local network - Viora has no TURN server, so the call won’t connect.
  • You want zero operational responsibility. Someone has to run the server.

When Viora is exactly right

  • Two people who want a private call and control at least one small server (a $5/mo VPS is plenty).
  • Anyone who wants a legible, hackable WebRTC client to learn from or fork.
  • A privacy-conscious pair who trust “the packets go straight between our phones” more than “the vendor says they don’t look.”