Software wired straight into a real house
Smart home platform
A web app my whole family uses every day to run our house: heating, lights, locks, cameras, garden, the robot vacuum and the network. It runs around the clock on a Raspberry Pi 5 and talks to the hardware directly, with no Home Assistant in between.
- When
- 2026 – now
- Role
- Sole engineer · in daily family use
- Status
- Running 24/7
- 6heating circuits under control
- 80API routes, all permission-checked
- 5cameras over WebRTC
- 1,600line design system spec





How it fits together
- 1Relay boards + LAN controllers
- 2MQTT broker
- 3Next.js server + jobs
- 4Server-sent events
- 5Phone, PC, wall tablet
Hardware it controls
- Heating: six circuits with weather-compensated curves, night setback, a slow ramp-up for floor heating, trip limits and stale-sensor detection, and an emergency stop. The control logic is pure and separate from the one module that touches hardware.
- Lights, fans, sockets, barn power and three doors through HTTP relay boards; hot-water circulation and garden irrigation on schedules.
- Five IP cameras streamed over WebRTC with an MP4 fallback, only while someone is watching.
- A Python bridge for the Roborock vacuum: vector map of the flat, tap a room to clean it, live position and path, consumables.
- A Ubiquiti PoE switch dashboard: power budget, per-port speed and automatic detection of problem ports.
Security and UX
- Twelve permission areas (hidden, view, control), enforced on the server for every API route, not just in the UI.
- Doors unlock with a swipe plus Face ID or fingerprint (WebAuthn passkeys), short-lived tokens with rotating refresh tokens, step-up auth for admin actions.
- A security pass that took device passwords out of page data, and a guard that blocks the dev environment from switching real hardware.
- An iOS 26 “Liquid Glass” inspired design system with a 1,600-line spec in Czech and English, personal dashboards, a ⌘K command palette and light, dark and OLED themes.
Stack
Next.js 16React 19TypeScriptPrisma + SQLiteMQTTgo2rtc / WebRTCPython (aiohttp)WebAuthnPM2