Device
Your camera or gateway, running the engine
Connect gate
Checked on every connection
Room
Where a stream is published
Any browser
Desktop or mobile, nothing installed
Control — instructions, state and your own messages
Media — the video itself, direct wherever the network allows
1
Enroll
A device becomes something the platform knows.
· Each unit gets its own identity and its own key — never one shared credential across a fleet
· A config bundle is issued per device; on a manufacturing line, it can be applied at build so a unit enrolls on first power-on
· The device side is a published contract, so your own firmware can implement it rather than run our agent
2
Control
One channel for instructions, state and your own commands.
· Devices hold a lightweight control connection separate from the video path
· Assignments are desired state, not commands: a device that was offline picks up the change when it returns, and applying it twice does nothing twice
· The same channel carries your own messages, so you do not need a second one for whatever the product does besides stream
3
Stream
Sub-second video, peer-to-peer where the network allows it.
· WebRTC end to end — interactive latency, not a buffered stream with a ten-second delay
· Direct between device and viewer by default; a relay steps in only for networks that refuse to let two peers talk
· Two-way audio where the hardware supports it, on the same connection
4
Watch
A link, in a browser, with nothing installed.
· Viewers open a URL on desktop or mobile — no plugin, no app, no client build per platform
· Watch in the console we provide, or embed the stream in the product you already ship
· Access is decided per room and per viewer, so a link is not a permanent key to a camera
5
Measure
What happened, at the quality it happened.
· Per-session quality data — frame rate, latency, freezes — kept against the session it belongs to
· Usage metered on relay, the thing that actually costs money, rather than on video minutes
· Every failure path counts down rather than up, so a bill is never larger than the truth
Access is decided at connect, not chased afterwards
Deactivate a device, rotate a key, move a camera out of a room or end a plan, and the change takes effect the next time that device connects — which is immediately, and then on every reconnection forever. Systems that instead hunt down live sessions are racing a device that reconnects seconds later.
Where a device is, and where it should be, are different questions
A camera on a patchy link can be told to move and not have moved yet. We store both, and the interface shows both, because collapsing them into one field is how a console ends up confidently displaying the wrong room.
We run it
Everything above is hosted infrastructure you enroll devices into. You operate the fleet; nobody on your team operates the platform.
You run it
The same engine, licensed to run on your hardware and your network — including sites that never route outbound at all.
The free tier is enough to enroll hardware, bind it to a room and watch it in a browser — which is the only way to find out whether any of this survives contact with your network.