Screens
Key engineering
Under the hood
A module-first backend with camera vendors behind a provider contract, so supporting a different kind of camera is an adapter rather than a rewrite. Inference runs as its own worker alongside the API, never inside the request path.
Local, all of it — an embedded database for the timeline, clips on storage the owner controls. Nothing leaves the machine, which is the product rather than a setting.
A single self-hosted deployment on modest home hardware, sized for a machine with no dedicated GPU. Module boundaries and coverage gates are enforced by the build rather than by review.
The dependencies are consumer devices that never agreed to be integrated, so the client layer backs off and stays within polite limits — a platform that overwhelms the hardware it depends on has broken itself. Credentials and footage never transit anything the owner does not own.
Stack
What it took
- Vendor-neutral from the first commit. The camera brand is an implementation detail behind a contract, so supporting a different kind of camera is an adapter rather than a rewrite.
- Written for modest hardware. It runs on a home server rather than a workstation, so the vision work was sized to what such a machine can sustain instead of assuming a GPU.
- Polite to systems that never asked for it. Talking to consumer devices means strict rate discipline and graceful backoff, so the platform never becomes a problem for the hardware it depends on.
- Privacy is the architecture. Footage and credentials stay on storage the owner controls and labelling runs locally, because sending the video elsewhere is exactly the thing being replaced.