Skip to main content

How Freehop compares

Every option on this page can put people in a call. They differ in one question that decides your bill: when two people cannot connect directly, where do their audio and video go?

  • Peer-to-peer libraries (PeerJS, Trystero, plain WebRTC) send media directly when they can. When they can't, they need a TURN relay, and someone pays for every byte it carries.
  • SFU servers (LiveKit, Jitsi, mediasoup) route group media through a server. Jitsi also tries a direct route in two-person calls. Server forwarding makes large rooms, recording and livestreams possible, and makes the server's bandwidth a running cost.
  • Hosted APIs run those servers for you and charge per minute or per gigabyte.
  • Freehop keeps media between the people in the call. When a direct route fails, it uses machines that already belong to the session: a participant's desktop gateway, the host node, or a participant who forwards. Gates pass sealed signalling only. You may also operate a session gateway and pay for its media traffic.

At a glance​

OptionHow people find each otherWhen a direct route fails, media goes throughYour media billBuilt forEnd-to-end encrypted mediaLicense
Freehopthis projectPeer-to-peer SDK plus small signalling gatesYour gates, community gates and public WebTorrent trackers, all at once; sealed end to endMachines in the session: a participant's desktop gateway, the host node, or a forwarding participant; optionally your own TURN relay as a last resortGates carry no media; gateway costs depend on who hosts it; an opt-in TURN relay bills only the calls that need itSmall-room mesh; initial target 2–8Direct and gateway paths: yes. A forwarding participant decodes and re-encodes the mediaApache-2.0
WebRTC + your own TURNThe browser API, plus the servers you build (e.g. coturn)You build it: WebRTC does not define signallingYour TURN serverEvery relayed byteSmall groups (mesh), more with an SFU you addYes, between peers; TURN relays only see ciphertextcoturn: BSD-3-Clause
PeerJSLibrary for one-to-one connections by peer id, with a signalling server (PeerServer)PeerServer: the free shared cloud server or your ownA TURN server you supply. Its free TURN service closed in December 2023Yours, once you add TURNOne-to-one; groups are a mesh you buildYes, between peersMIT
TrysteroServerless peer-to-peer rooms (mesh)Nostr by default; also BitTorrent trackers, MQTT, Supabase, Firebase, IPFS or your own relay. Encrypted; a password makes the key privateA TURN server you add; by default only STUN, so hard-NAT pairs failYours, once you add TURNSmall groups (mesh)Yes, between peersMIT
LiveKitOpen-source SFU server and SDKs, or LiveKit CloudThe LiveKit serverAlways the server: every stream goes through the SFU, with built-in TURNYour servers' bandwidth, or Cloud pricing per minute and GBLarge rooms, livestreams, AI agentsOptional end-to-end encryption; otherwise the server can access the mediaApache-2.0
Jitsi MeetComplete meeting app: Videobridge SFU with XMPP signallingAn XMPP server (Prosody)With 2 people it tries a direct link; with 3 or more, every stream goes through the VideobridgeYour servers' bandwidth, or 8x8's hosted JaaSMeetings with dozens of peopleOptional, where the browser supports it; otherwise the Videobridge can access the mediaApache-2.0
mediasoupSFU library for Node.js or Rust, with a C++ media workerYou build itAlways your SFU serverYour servers' bandwidthLarge rooms you build yourselfNot built in; you can add it in your appISC
simple-peerThin wrapper around one WebRTC connectionYou build itA TURN server you add; by default only STUNYours, once you add TURNOne-to-one; groups are a mesh you buildYes, between peersMIT
Hosted video APIsManaged services such as Daily, Agora, Twilio Video and Cloudflare RealtimeThe providerThe provider's servers: most send every stream through themPer participant-minute, or per GB (Cloudflare)Large rooms, nothing to runVaries by provider and mode; verify its E2EE optionsProprietary
Game platform networksSteam Datagram Relay and Epic Online Services P2P: native game SDKs, not browsersThe platformThe platform's relays: Valve's backbone, or Epic's relays on AWSThe platform carries it (Epic: EOS is free; Steam relays need a Steam release)Native games on those platformsDepends on the platformProprietary (Valve open-sources the protocol library, without the relays)

On a narrow screen, the table scrolls sideways.

Freehop’s gates carry no media. Participants and session gateways still use bandwidth and compute; a gateway you host can add those costs to your bill. The 2-to-8-person range is the intended use, not enforced room admission; see room limits.

Which one fits​

Freehop fits when:

  • calls are small groups of 2 to 8 people: meeting rooms, in-app calls, shared workspaces, communities or games;
  • you don't want a relay bill that grows with every call, and you accept that a pair with no route inside the session is reported as unreachable, or you opt into your own TURN relay for just those pairs;
  • people use your app in the browser and on the desktop, so desktop participants can open a front door for everyone.

An SFU (LiveKit, Jitsi, mediasoup) fits when:

  • rooms have dozens or hundreds of people, or one person broadcasts to many;
  • you need recording, server-side processing, transcription or AI agents in the call;
  • you want media to pass through your server and budget for that bandwidth; successful connections still depend on transport support and firewall rules.

A thin peer-to-peer library (PeerJS, Trystero, plain WebRTC) fits when:

  • you want one-to-one calls or data channels with the least code;
  • you are happy to run (and pay for) your own TURN server for the pairs that can't connect directly.

A hosted API fits when:

  • you want nothing to operate and a vendor contract, and per-minute pricing works for your margins.

What Freehop does not do​

Being honest about the trade-offs is part of the comparison:

  • No large-room capacity benchmark. Freehop is a mesh: every person sends to every other person. Larger rooms need separate load testing; an SFU reduces each participant's upload requirements.
  • No built-in recording or server-side media processing. Gates cannot record media they never receive. Receiving participants can record it, including a participant forwarding decoded tracks; gateway relays carry encrypted packets.
  • No guarantee on locked-down networks. A network that can reach only your server has no route for media without your server carrying it. Freehop reports unreachable instead of paying for a relay, unless you opt into a TURN relay that network can reach. See limits.
  • Tested in a developer-built home lab, not field-proven. See network test results.

Sources​

Checked against each project's own documentation and source code on 2 October 2026. Pricing and service availability can change:

Something out of date or wrong? Open an issue and we will correct it.