Video calls that go browser to browser. Nothing in between.
One page, no account, no app, no server in the middle. Share one small link — by SMS, QR, email or chat — and people connect straight to you with end-to-end encryption. Chat, whiteboard, screen and file sharing included.
If the bar moves when you speak, your microphone works. Your choices are remembered for the call.
Received a link? Just open it. Instant links (default) relay the 2 KB encrypted handshake through tracker servers so nobody types codes; choose "Zero third parties" in ⚙ Connectivity for manual codes and no outside services at all.
Everything a meeting needs, nothing that watches you
Encrypted is a single web page. Your browser does all the work; the page never sends your media, messages or files to any server.
End-to-end encrypted
DTLS-SRTP for media, AES-GCM for the handshake, safety numbers to verify every pair of participants.
Instant links
Share one small link; guests connect automatically. The link holds only a room key. Optional passcode, waiting room and link rotation.
Mesh conference
2–6 participants connect directly to each other. If the host leaves, the room elects a new host and carries on.
Chat & reactions
Messages reach everyone, with reactions, edit and delete, history for late joiners and local export.
File & folder sharing
Stream files to everyone or to selected people with pause, cancel and resume; large files can be written straight to disk.
Screen share + system audio
Share a window or screen; system audio is mixed with your microphone.
Background effects
Blur or replace your background entirely on your device (WebGL), plus a privacy oval that needs no setup.
Whiteboard
Draw together with live cursors; late joiners get the full board; export as PNG.
Local recording
Record the whole call to a file on your own computer. Everyone is notified while recording runs.
Works on hard networks
Built-in NAT check, per-peer path diagnostics, automatic ICE restart and rejoin, TURN support with short-lived credentials minted in your browser.
Zero third parties if you want
One preset turns off every outside service. The settings always list exactly what is in use.
Phones, tablets, TVs
Responsive layout, keyboard and remote-control navigation, installable as an app, available in four languages.
How it works
Conferencing products route every packet through their servers. Here the only "server" is you: two browsers describe how to reach each other, and that description is carried across — by a link, a QR code, or a tiny encrypted relay.
Host makes an offer
The browser starts the camera, builds a WebRTC offer (codecs, encryption fingerprint, network candidates) and either packs it into a manual code or hands it to the tracker relay, encrypted.
Guest answers
With an instant link the guest's browser answers automatically. With a manual code you paste or scan the reply.
ICE finds the path
Every candidate pair is tested in parallel; the best direct path wins, a relay only if nothing else works. DTLS keys are exchanged and encrypted media flows.
Mesh grows
Each new guest links directly to everyone else; the host only relays tiny signaling messages over its encrypted data channel. Chat, files and the whiteboard ride the same links.
Every participant sends to every other participant. No central point, nothing to log or intercept.
Documentation
Plain-language guides. Docs are in English; the interface is translated.
Quick start — hosting a call
- Type your name. Optionally set a passcode and tick Waiting room. Press Start a call and allow camera and microphone.
- The People panel shows your instant link. Press Share… (phone) or Copy link, or show the QR for someone in the room. Send it by SMS, email, chat — one link serves every guest.
- Guests appear automatically. With the waiting room on, admit each one from the People panel.
- Use the bottom bar: microphone, camera, screen share, effects, raise hand, reactions, record, chat. The ⋯ menu has layout, whiteboard, captions and diagnostics.
- To end for yourself press ✕. The room keeps running for the others and elects a new host.
Quick start — joining a call
- Open the link you received (or paste it under Join with a code, or scan the host's QR with your camera app).
- Type your name, enter the passcode if asked, press Join with camera. Keep the tab open; the call connects by itself. If the host is not there yet you simply wait.
- If the host uses the waiting room you will see "waiting to be admitted".
- On phones keep the tab in the foreground — iOS suspends background tabs.
Instant links vs manual codes
Instant (default): the link holds only a random room key. Both browsers connect to public BitTorrent WebSocket trackers (the ones WebTorrent uses) which hand the ~2 KB offer/answer across. Everything they carry is AES-GCM encrypted with a key derived from the room key and passcode; trackers see ciphertext, never media. One link serves every guest; guests can arrive before the host; links can be locked or rotated.
Manual: no outside service at all. The host sends a one-time code (link or QR), the guest sends a reply code back, the host pastes it (paste anywhere on the page, use the clipboard button, or scan the reply QR). One code per guest.
Switch in ⚙ Connectivity, or pick the Zero third parties preset.
Which outside services are involved, and how to use none
By default: public STUN servers (Google, Cloudflare — they learn only your public IP:port) and public trackers for instant links. A TURN relay only if you add one. Captions, if you enable them, use your browser's speech service (Google or Apple servers) and are off by default. The ⚙ dialog and the landing tag always list what is in use.
Zero third parties: manual codes, no STUN, no trackers. Direct connections then succeed on the same network, with IPv6 on both sides, or when one side has a public IPv4. Self-hosted everything: point STUN/TURN at your own coturn and trackers at your own bittorrent-tracker — all conveniences, no public services.
Networks & NAT — what works where
| Your situation | Direct P2P? | What to do |
|---|---|---|
| Home router, single NAT (cone types) | Yes | Nothing — STUN discovers your mapping, hole punching works. |
| Double NAT, CGNAT, mobile carrier | Usually | STUN sees the outermost mapping. Some carrier NATs are symmetric — then TURN. |
| Same LAN | Yes | Local candidates connect directly, even without hairpinning. |
| Symmetric NAT (enterprise / some carriers) | Only if the other side is cone-type | Add TURN. Guests get it through the link. |
| UDP blocked (corporate firewall, hotel Wi-Fi, proxies) | No | TURN over TCP/TLS on 443: turns:host:443?transport=tcp. |
| IPv6 on both sides | Yes | No NAT at all; the IPv6 pair wins. |
| Hide my IP from peers | — | Tick Force relay — all media goes via your TURN. |
Troubleshooting
- Nothing happens after joining. Look at the People panel: "n/m trackers online". 0/n → your network blocks WebSockets to the trackers (corporate proxy, captive portal). Ask the host for a manual code, or use your own tracker on port 443.
- "Connecting…" forever / failed. Both sides run 🛰 Check my network. "Symmetric NAT" or "UDP blocked" on either side → the host adds a TURN server once (⚙ Connectivity). Confirm it with 🛰 Test; add a
turns:…:443?transport=tcpline for strict firewalls. - Audio works, video black. The small label on the tile tells which stage fails: "↑ not sending video" = your camera is not encoding (another app holds the camera, the tab is in the background, or a device switch failed); "↓ no video arriving" = delivered nothing (try TURN); a ▶ overlay = the browser blocked autoplay, tap it.
- Echo or feedback. Someone has speakers and microphone close together; use headphones or let the browser's echo cancellation work (turn Music mode off).
- Choppy video with 4+ people. Mesh uploads one copy per peer. Lower Quality in Settings, close other uploads, or ask people to turn cameras off while presenting.
- Screen share has no audio. Choose a Chrome tab or "entire screen" with "share audio" ticked; macOS shares tab audio only; Firefox does not share system audio.
- Guest removed after a network change. Instant-link guests rejoin automatically within seconds; manual-code guests need a fresh code.
- Link older than ~10 minutes does not connect. NAT mappings expire — press New / Rotate and resend.
- "Reply already used". A manual code answers exactly one guest; send the current one.
- iPhone: call drops when switching apps. iOS suspends background tabs; return to the tab, it reconnects. Add the page to the Home Screen for better reliability.
- Brave, Tor Browser, strict privacy settings. Brave Shields' fingerprinting protection adds noise to canvas/audio and can hide device labels; if the camera list is empty or QR scanning fails, allow fingerprinting for this site (Shields → Advanced). Browsers that disable WebRTC entirely cannot connect at all.
- Firewall checklist for IT. Outbound UDP 3478 (STUN/TURN), UDP 49152–65535 for direct media, TCP 443 for TURN-over-TLS and tracker WebSockets.
- Still stuck? Settings › Diagnostics › Download report and send it with your question to [email protected]. The report contains no secrets and no media.
Self-hosting STUN / TURN / tracker (2 minutes each)
apt install coturn # /etc/turnserver.conf listening-port=3478 tls-listening-port=443 realm=turn.example.com use-auth-secret static-auth-secret=CHANGE_ME_LONG_RANDOM cert=/etc/letsencrypt/live/turn.example.com/fullchain.pem pkey=/etc/letsencrypt/live/turn.example.com/privkey.pem fingerprint no-multicast-peers # open UDP/TCP 3478, TCP 443, UDP 49152-65535 # tracker (instant links) — behind TLS so HTTPS pages can use wss:// npx bittorrent-tracker --ws --port 8000
In ⚙ Connectivity choose Self-hosted everything, fill turn:turn.example.com:3478, turns:turn.example.com:443?transport=tcp, the shared secret, and wss://tracker.example.com. The page mints 24-hour TURN credentials with HMAC-SHA1 exactly as coturn expects; the secret never leaves your browser.
Recommendations for a good call
- Use headphones; keep the camera at eye level with light in front of you, not behind.
- For 4+ people set Quality to Medium and let the host keep the tab in the foreground — the host relays signaling for everyone.
- Set a passcode and the waiting room for anything sensitive; rotate the link after the meeting if it was posted somewhere public.
- Compare safety numbers (People › 🔐) out loud once per contact when confidentiality matters.
- Prefer Chrome / Edge for the full feature set (disk streaming of files, speaker selection, captions). Firefox and Safari handle calls, chat, files and whiteboard.
- On a laptop plugged into a monitor, pick the right camera and microphone in Settings — the page remembers nothing between sessions except your connectivity settings and chat history.
- Record only with consent; everyone sees the ⏺ indicator while you record.
Optional ML background segmentation (self-hosted, no service)
The built-in effects use background subtraction (capture an empty background first) or the privacy oval. For Zoom-style person segmentation without any setup, the page can load MediaPipe's selfie-segmentation model from your own site — a one-time static download of about 2 MB, cached by the browser, no outside service involved. Install once on the server:
npm pack @mediapipe/tasks-vision # Apache-2.0 # copy from the package: vision_bundle.mjs, wasm/vision_wasm_internal.js, wasm/vision_wasm_internal.wasm # → /vendor/mediapipe/ # model (Apache-2.0): selfie_segmenter.tflite from the MediaPipe models bucket → /vendor/mediapipe/selfie_segmenter.tflite
Then Settings › Background effects › ML segmentation. If the files are missing the button simply reports it and the classic effects keep working. If people appear blurred and the room sharp, tick "Mask inverted".
Host controls, notifications, rollout links
- Host controls (People panel): mute everyone, remove a participant, waiting room, lock/rotate the link, a room topic shown to all, and a maximum number of participants — the room locks itself when it is reached.
- Notifications (Settings): unread count in the tab title, optional desktop notifications for chat while the tab is in the background, and join/leave/message sounds. All synthesized on your device; no assets, no permissions beyond the one you grant.
- Offline handling: a banner appears when your connection drops; links are restarted (mesh) or rejoined (instant) automatically when it returns. Closing the tab during a call asks for confirmation.
- Rollout links for IT: ⚙ Connectivity › Copy setup link produces
…/?cfg=…carrying STUN/TURN/tracker settings; users who open it are shown the servers and asked to confirm before anything is saved. Export/Import does the same with a JSON file. - Theme: follows your system (light/dark) with a 🌓 override in the header.
Meeting tools: private chat, polls, spotlight, bandwidth saver
- Chat: pick a person in the "Send to" box for a private message (delivered only to them, never replayed to late joiners); **bold**, _italic_ and `code` formatting; search box filters the history; "… is typing" indicator.
- Host tools (People panel): ask a muted person to unmute, lower all hands, spotlight someone for everyone (or clear it), start a poll (2–8 options, live results, late joiners see the open poll), end the meeting for everyone. Raised hands are numbered in the order they went up.
- Your view (Settings): hide your own tile, mirror on/off, per-person volume sliders in People, connection-quality bars on each tile (▂▄▆ from round-trip time, packet loss and frame rate).
- Bandwidth saver: "receive audio only" asks every other participant to stop sending you video (their tiles show an audio-only badge); switch it off to get video back. Useful on mobile data or when the mesh gets large.
- Push to talk: when enabled, hold Space while muted to talk; release to mute again.
- Calendar: every invite can be downloaded as an
.icsfile (opens in Outlook, Google Calendar, Apple Calendar) with the link in the event.
Breakout rooms, shared notes, attendance
- Breakout rooms (host, People panel): choose 2–6 rooms, auto-assign or pick a room per person, optional countdown, then Open rooms. Everyone sees and hears only their own room; video and audio to other rooms are stopped at the sender, so no bandwidth is wasted and nothing leaks. Chat is scoped to the room. The host can switch which room it views, send a message to all rooms, and close the rooms — everyone returns to the main room. Guests can Ask host for help. People who join while rooms are open land in the main room. Rooms close automatically if the host leaves.
- Shared notes: a notepad everyone can edit (last edit wins, late joiners receive the text, export as Markdown).
- Per-person host controls: mute one person, stop one person's video, remove, ask to unmute, spotlight, volume. Anyone can rename themselves from the People panel.
- Attendance: a CSV of who joined and left, with durations, from your own view of the call.
- Whiteboard: text tool and image insert (paste, drop or pick; downscaled on your device).
- Transcript: captions received so far can be downloaded as text (captions remain opt-in and use the browser's speech service).
Keyboard shortcuts & accessibility
- M mute · V camera · S screen share · H raise hand · C chat · B whiteboard · P people · L layout · F fullscreen · Esc close panel/menus · ? help
- All controls are real buttons with labels, reachable by Tab or a TV remote; focus is clearly visible. Reduced-motion preference pauses the animations.
Files, chat and recording — limits
- Files are sent in 16–64 KB chunks to each recipient; a 100 MB file to 3 people uploads 300 MB. Receivers keep files in memory unless they press Save as it arrives (Chrome/Edge). Transfers survive a reconnect: the receiver asks the sender to resume from the last byte.
- Chat history is stored only in your browser (IndexedDB) per room and can be exported or cleared from the Chat panel.
- Recording composes all tiles at 1280×720, 15 fps, with mixed audio, into a WebM file on your computer. Browser tabs must stay open while recording.
Browser support
Chrome / Edge 103+, Firefox 113+, Safari 16.4+ on macOS, iOS and iPadOS; Android Chrome; smart-TV browsers based on Chromium (Tizen/webOS browsers vary). Feature notes: captions and speaker selection are Chrome/Edge; QR scanning uses the browser's detector where present and a built-in decoder elsewhere (clean, well-lit codes).
Privacy model in one paragraph
The page is static. It stores your connectivity settings and chat history in your own browser only. It makes no requests of its own except the optional services you choose (STUN, trackers, TURN, captions). Links contain a room key and, unless you untick it, your display name. Peers see each other's IP addresses unless Force relay is on. There are no cookies, no analytics, no accounts.
FAQ
Does Encrypted use any servers?
Do I need an account or an app?
How many people can join?
Is it really end-to-end encrypted?
What if it will not connect?
Does it work on phones, tablets and TVs?
Can I use it offline or on a private network?
Legal
Encrypted (encrypted.com) is a product of Tulix Systems Inc., Atlanta, Georgia, USA. Contact: [email protected]. Last updated: 2026-10-17.
Terms of Service
1. Agreement
By loading or using the Encrypted page ("Service") you agree to these Terms. If you do not agree, do not use the Service. Tulix Systems Inc. ("we") may update these Terms; continued use after an update is acceptance.
2. The Service
The Service is a web page that enables real-time communication directly between users' browsers. We do not operate servers that process, relay or store your calls, messages or files. Connectivity helpers you may choose (STUN, TURN, tracker relays, speech services) are either public services operated by third parties under their own terms or services you host yourself. We do not control them and make no promises about their availability.
3. Your responsibilities
You are responsible for the people you invite, the content you share and compliance with the laws that apply to you, including recording and wiretap consent laws, export controls and sanctions. You must be at least 16 years old, or the age of digital consent in your country, to use the Service.
4. Acceptable use
Do not use the Service to harass, threaten, exploit or harm anyone; to distribute malware, unlawful content or content infringing others' rights; to circumvent security of any system; or to interfere with the operation of the Service or third-party services it can use. We may block access from addresses or regions where required by law.
5. Intellectual property
The Service, its code, design, text and trademarks are owned by Tulix Systems Inc. and protected by copyright and other laws. We grant you a personal, non-exclusive, non-transferable, revocable licence to load and use the page in a browser for its intended purpose. You may not copy, modify, redistribute, reverse engineer, obfuscate-strip, host elsewhere or create derivative works of the Service, in whole or in part, without written permission.
6. No warranty
The Service is provided "as is" and "as available" without warranties of any kind, express or implied, including merchantability, fitness for a particular purpose, non-infringement, availability, accuracy or that communications will be private, uninterrupted or secure. Encryption and connectivity depend on your devices, browsers and networks.
7. Limitation of liability
To the fullest extent permitted by law, Tulix Systems Inc., its officers, employees and suppliers are not liable for any indirect, incidental, special, consequential or punitive damages, or any loss of data, profits, revenue or goodwill, arising from or related to the Service, even if advised of the possibility. Our total liability for any claim is limited to USD 100.
8. Indemnity
You will defend and indemnify Tulix Systems Inc. against claims arising from your use of the Service or breach of these Terms.
9. Termination
We may suspend or terminate access to the Service at any time. Sections 5–11 survive termination.
10. Governing law
These Terms are governed by the laws of the State of Georgia, USA, without regard to conflict-of-law rules. Courts located in Fulton County, Georgia have exclusive jurisdiction, and you consent to that jurisdiction. If you are a consumer in the EU/UK, mandatory consumer protections of your country still apply.
11. General
If any provision is unenforceable the rest remains in effect. These Terms are the entire agreement regarding the Service. Notices to us: [email protected].
Privacy Policy
What we collect
Nothing. The Service has no accounts, no analytics, no cookies and no server-side logging by us. Your media, messages, whiteboard strokes and files travel directly between participants' browsers and are not sent to us.
What stays in your browser
Connectivity settings (including any TURN credentials or secrets you enter) and chat history are stored locally in your browser (localStorage and IndexedDB). You can clear them from the Settings and Chat panels or with your browser's site-data controls.
Third-party services you may use
- STUN servers (Google, Cloudflare by default) receive your IP address to tell your browser its public address.
- Tracker relays (public WebTorrent trackers by default) receive your IP address and a few kilobytes of encrypted handshake data.
- TURN relays you configure receive encrypted media they cannot decrypt.
- Captions, only if you enable them, send your microphone audio to your browser vendor's speech-recognition service (Google for Chrome, Apple for Safari).
These services operate under their own privacy policies. The "Zero third parties" preset disables all of them.
What other participants see
Your display name, your media, your messages and files, and — unless Force relay is enabled — your IP address, which WebRTC requires for a direct connection.
Children
The Service is not directed at children under 16 and we do not knowingly collect data from them (we collect no data at all).
Your rights
Because we hold no personal data about you there is nothing for us to access, correct or delete. Questions: [email protected].
Changes
We will post updates here with a new date.
Security disclosure & abuse
Report vulnerabilities or abuse to [email protected]. Please include steps to reproduce; we do not run bug bounties but we credit responsible disclosures on request. Do not test against other people's rooms.
Disclaimer
Encrypted is a communication tool, not a legal, medical or emergency service. Do not rely on it for emergency calls. Encryption protects content in transit between browsers; it cannot protect a compromised device, a shared screen or a recording made by a participant.