Small meeting rooms
Team check-ins, study groups, project calls.
Build a room with a joining link, camera preview and chat. Keep the controls simple and the room part of your own product.
Voice · video · room messagesBuild a meeting roomAn open-source SDK for small rooms and in-app calls.
Browser or desktop. Your interface, your code.
The Freehop SDK
Connect a session, attach incoming media to your own interface, and send small messages between participants. The same JavaScript API works in the browser and Electron.
Control microphones, cameras and adaptive video. Your backend handles identity and session tickets; Freehop handles the connections.
Explore the client APITyped options, sessions and events. Get the TypeScript release →
import { connect } from 'freehop';
const session = await connect(ticket, {
media: { audio: true, video: false }
});
session.on('track', ({ peer, track }) => {
session.attach(track, mediaElementFor(peer));
});
await session.send({ type: 'ready', ready: true });
Your backend issues the ticket. Your app supplies the media elements. See the complete setup →
Use cases
A small room on its own. A call inside an app you already have. These integration ideas use the same SDK, with your interface and your room rules.
Team check-ins, study groups, project calls.
Build a room with a joining link, camera preview and chat. Keep the controls simple and the room part of your own product.
Voice · video · room messagesBuild a meeting roomA support call beside the customer’s project.
Add a call panel to an existing portal or tool. People can talk while keeping the page, task and context in front of them.
Your interface · your sign-inEmbed a callDesign reviews, pair building, shared canvases.
Put a conversation beside the work. Send small events such as a selected item or a raised hand alongside voice and video.
Media tracks · application eventsConnect a workspaceA team tool with calling built in.
Use the same client in Electron. An optional desktop gateway can help other people in the session connect through difficult networks.
Browser API · Electron gatewayBuild for desktopClub hangouts, co-op voice, small watch groups.
Give a few people a place to talk inside your community or game. Your app supplies the activity; Freehop connects the participants.
Voice-first rooms · optional videoAdd a community roomBuilt with Freehop
How the connection works
Direct when possible. Through a gateway or another participant in the session when needed. Signalling gates introduce the peers; they never carry media.
If no session route works, Freehop reports unreachable. A host or gateway you run still uses your bandwidth. Understand the routes →
Alpha software, open evidence. Small rooms are the starting point. The published network results come from simulated home-lab tests; field reliability is still to be established.
| Option | When a direct route fails, media goes through | Your media bill | Built for |
|---|---|---|---|
| Freehopthis projectPeer-to-peer SDK plus small signalling gates | Machines in the session: a participant's desktop gateway, the host node, or a forwarding participant; optionally your own TURN relay as a last resort | Gates carry no media; gateway costs depend on who hosts it; an opt-in TURN relay bills only the calls that need it | Small-room mesh; initial target 2–8 |
| WebRTC + your own TURNThe browser API, plus the servers you build (e.g. coturn) | Your TURN server | Every relayed byte | Small groups (mesh), more with an SFU you add |
| PeerJSLibrary for one-to-one connections by peer id, with a signalling server (PeerServer) | A TURN server you supply. Its free TURN service closed in December 2023 | Yours, once you add TURN | One-to-one; groups are a mesh you build |
| LiveKitOpen-source SFU server and SDKs, or LiveKit Cloud | Always the server: every stream goes through the SFU, with built-in TURN | Your servers' bandwidth, or Cloud pricing per minute and GB | Large rooms, livestreams, AI agents |
| Jitsi MeetComplete meeting app: Videobridge SFU with XMPP signalling | With 2 people it tries a direct link; with 3 or more, every stream goes through the Videobridge | Your servers' bandwidth, or 8x8's hosted JaaS | Meetings with dozens of people |
| Hosted video APIsManaged services such as Daily, Agora, Twilio Video and Cloudflare Realtime | The provider's servers: most send every stream through them | Per participant-minute, or per GB (Cloudflare) | Large rooms, nothing to run |
Apache-2.0 / No Freehop subscription