LANcams

Fanatically PRIVATE video tech
Open LANcams

LANcams turns devices you already own into a live camera system — and into a small video meeting. Point a spare phone at the bird feeder, the driveway or the front door, and watch from any browser in the house. Or open a room and share cameras with people anywhere. No apps, no accounts, no subscriptions.

Three ways to use it

1 — Private rooms, across the web

Pick a room name (press the dice button for a good random one) and send the link, or show the QR code. Everyone who opens it lands on the same wall of cameras. No accounts, no downloads, no time limit — and the name never reaches our server, only a one-way hash of it.

2 — Your home or office LAN

Open this page on any device on your network and press Add+ on the one you want as a camera. Every other screen can now watch it. Nothing leaves the building, and it keeps working when your internet does not.

3 — Download and install it yourself

It is AGPL software with no hosted dependency. Run the whole thing on a machine you own — a spare laptop, a Pi, a VPS — and the only party in the arrangement is you.

How it compares

The honest version, including where LANcams loses. It is built for a household and a handful of people, and the things it gives up are what buy the privacy.

  LANcams Zoom · Meet · Teams Jitsi Meet Signal · WhatsApp · FaceTime Ring · Nest · Wyze
Where the video goes Device to device. On a LAN it never leaves the building. Through the operator's servers. Through a bridge, which relays every stream. Encrypted end to end, usually direct, sometimes via their relays. To the vendor's cloud, always — including when nobody is watching.
Who could watch it Whoever knows the room name. Nobody else — there is no copy to ask for. The operator technically can, and can be compelled to. Whoever runs the bridge. Nobody — genuinely end-to-end encrypted. The vendor, and anyone they must comply with.
Accounts None. There is nothing to sign up for. Required. None. A phone number, which is an identity. Required.
To join Open a link. An app, or a browser with limits. Open a link. Their app, and often the same platform. Their app.
Arrange it your way Tile, split, resize, rotate, fit-or-fill per feed; several windows at once, so you can hold one call, watch a room and keep a monitor up together; sound you can SEE, as waveform or goniometer. The arrangement travels in the link. A grid or a speaker view, and it rearranges itself when someone presents. One meeting at a time. A grid or a speaker view. One caller large, the rest small. Their app decides.
Who decides what you look at You do. Nothing another participant does rearranges your screen, and any number of people can share at once. The presenter. Sharing takes over everyone's screen and moves their panels — and only one person may share at a time. Mostly you, within a grid or speaker view. Mostly you. The app.
Can it ring you? Yes, opt-in per device — so a room can call you rather than you having to be watching it. Only via a scheduled invite you were already expecting. No. Yes — that is what a phone number buys them. Yes, for motion.
Cost Free. Nothing is metered because nothing is stored. Free tier with a meeting-length cap. Free. Free. Hardware, then a subscription to keep history.
How many people A handful. Every device sends to every other, so it stops scaling early. Hundreds. Dozens. Dozens. n/a
Recording None at all. Nothing is kept anywhere. Yes, to their cloud. Yes. No (by design). Yes — that is the product.
Works with no internet Yes, on your own LAN. No. No. No. Mostly no.
Can you check the code you are running? Yes — signed release, and the page audits itself against it. No. Source is open, but you cannot verify the instance you loaded. Signal publishes its source; the others do not. Either way you cannot verify what your device actually loaded. No.

On being opinionated. The row above is the one that decides whether you will like LANcams. Zoom has a strong view about what a meeting is: one person presents, everyone watches, and the software rearranges your screen to make sure of it — one share at a time, panels moved for you, the layout decided on your behalf. That is a coherent design for a lecture or a training session, and it is genuinely good at those.

It is the wrong shape for a household with four cameras, or two people comparing three screens, or a workshop where several things are happening at once. Most of the alternatives are not opinionated in the other direction so much as uninterested in the question — they give you a grid and stop. LANcams takes the opposite view from Zoom on purpose: nothing anyone else does changes what is on your screen, and as many people can share as want to.

About that fourth column. Signal, WhatsApp and FaceTime are the closest thing to LANcams on privacy, and on the call itself they are not worse — they are properly end-to-end encrypted, and we are not going to pretend otherwise. Where they differ is everything around the call: each wants a phone number, which is a durable identity you cannot shed; each wants their app at both ends; none will run on your own LAN with the internet down; and none of them is a camera system. You cannot point Signal at a bird feeder and leave it there for a month.

Where it will disappoint you. There is no recording, so there is no "what happened last night" — LANcams shows you now, not then. It does not scale past a few participants, because everyone sends to everyone rather than to a bridge. There is no dial-in, no scheduling, no waiting room, no chat-with-history. And peer-to-peer occasionally cannot punch through a hostile network, in which case a call simply will not connect where a server-relayed product would have.

And peer-to-peer does not always get through. A symmetric NAT, some corporate VPNs, and national firewalls can each stop two devices finding a direct path, in which case the call simply will not connect where a server-relayed product would have.

There is a standard fix for that — a TURN relay — and it is worth being precise about the trade rather than dodging it. A relay carries the media, but it carries it encrypted: the keys are negotiated end to end, so a relay operator cannot watch or record the call. What a relay does learn is that two endpoints are talking, when, and how much. That is far less than Zoom knows, and it is not nothing. If LANcams ever offers relaying it will be opt-in, per call, and it will say so on screen while it is happening. Today it does not offer one: if you need a relay, point LANcams at your own.

Those are consequences of the same decision, not an unfinished to-do list: the moment a server can relay or keep your video, it can be asked for it.

Built so it does not have to spy on you

The server only introduces people

It passes the messages two browsers need to find each other, then gets out of the way. Video and audio go straight between devices. There is no point in the middle a stream flows through, so there is nothing sitting there to be copied or subpoenaed.

The room name never reaches it

Only a one-way hash of it does, so the server can tell that some people are in the same room without being able to say what that room is called — and it cannot leak, sell or be compelled to hand over a name it does not have.

You can check all of this

Every file the app is made of is hashed and signed. The integrity audit in the app re-checks what your browser actually loaded against that signature — so nothing here asks you to take our word for it.

More detail

How it works underneath, what the server can and cannot see, the security model, and the setups it is known to struggle with: questions & answers.

What the server could still do

Because we would rather you heard this from us. The hash IS the key to the room. A client joins by presenting it, and the server is the one thing that has seen every hash it has ever carried — so a dishonest operator could put a client of their own into your room and watch, exactly as any other participant does. Nothing in the peer-to-peer design prevents that, because such a client is not breaking in; it is joining.

Requiring a client to "prove it knows the name" would not help. The proof would be written in the client, and anyone building a dishonest server can build a dishonest client to go with it.

In LAN mode the same worry is answered a different way: with no room name there is no key, but there is also no need for one — your devices refuse every connection that does not terminate on your own network, so an operator’s client can occupy a seat in the list and still never receive a frame. Locality is the one credential a remote machine cannot forge.

What we do instead is make it checkable rather than promise it. The code that says the server behaves is the code you are running, every file of it is signed, and the integrity audit re-checks what your browser actually loaded against that signature. That converts "trust us" into "verify us" — but it verifies the CLIENT. Run your own server and the question does not arise at all, which is the third way to use LANcams and the reason it exists.

The fix that closes this properly is built and is now the default: every room is sealed — each frame encrypted with a key derived from the room NAME — while the server continues to see only the hash, from which the key cannot be computed. Joining with the hash alone buys a seat and nothing to look at. Unsealing exists as a deliberate, visible choice (it saves phone battery), not as a fallback anyone can trigger. What sealing does not hide is metadata — who is present, when, and how much they send.

"But Signal and WhatsApp are end-to-end encrypted"

They are, and the protocol is good. But end-to-end encryption is two steps — exchange keys, then encrypt to the key you received — and step one goes through the operator's servers, because before you have keys that is the only channel you share. So a dishonest operator never has to break the encryption. It hands you a key it controls, and you encrypt perfectly, to the wrong party.

The defence is comparing a safety number with the other person out of band — in the room, over a phone call, on a different app. It works. Almost nobody does it. Which means in practice most people are trusting the operator's key directory, and that is a trust relationship, not a mathematical guarantee.

There is a further layer that no protocol fixes: you cannot check the app. It arrives as a binary from a store, updates itself, and cannot be compared against the published source. Rigging the endpoint has always been easier than rigging the algorithm — that was the lesson of Crypto AG, whose customers' cryptography was never broken because it never had to be.

LANcams is not better at the maths. It is better at exactly one thing here: you can see what you are running. The code is served fresh, every file is signed, and the integrity audit checks what your browser actually loaded against that signature — the check an installed app cannot offer you. That is a narrow advantage and we will not oversell it: today it verifies the client, and the operator can still join your room. Closing that is the next piece of work.

The room name is the password

There are no accounts, so a room name is the only thing standing between your call and a stranger. Treat it like a password: a random made-up name that nobody would guess, not meeting or your surname. The dice button makes good ones. Anyone who guesses the name can walk in.