Project · 2026
Smart Home
A self-hosted smart home control platform that unifies Govee, Hue, Ring, Roborock, and Home Assistant devices behind a single React dashboard with routines, presence modes, and event automations.
- TypeScript
- React
- Express
- Prisma
- SQLite
- Vite
- TanStack Query
- Tailwind
- Radix UI
- Zod
- PM2
Project snapshot
- Status
- Live private deployment for household device control.
- Integrations
- Govee, Philips Hue, Ring, Roborock, and Home Assistant behind one control surface.
- Surfaces
- Devices, routines, event automations, presence modes, themes, cameras, cleaning, and discovery.
- Ops
- Private deployment with scheduled device refresh and a validated data layer.
Technical proof
- Provider controllers initialize at API startup alongside routine, event, and state-refresh schedulers.
- Admin tooling covers access control, notifications, reliability insights, and operational review.
- Google OAuth provisions unknown users on first login while keeping the control hub private.
What it is
Smart Home Control is a full-stack TypeScript monorepo (packages/api, packages/web-app, packages/shared) that serves as a unified control surface for heterogeneous smart-home hardware. It is operated as a private household system.
Device integrations
The API integrates five provider SDKs: Govee (lights and plugs), Philips Hue (bridge-local), Ring (cameras and doorbells), Roborock (vacuums), and Home Assistant (catch-all bridge). On startup, the API initializes device controllers, connects to SQLite, starts the event-automation bridge, and launches both a routine scheduler and a device-state refresh scheduler. Device state is cached via Redis-backed services and periodically polled.
Dashboard surfaces
The React frontend organizes around seven primary surfaces. Devices shows the full paired inventory with quick controls, brightness sliders, power toggles, and a Group Workspace for creating zones and applying shared state across compatible devices. Workflows covers three tabs: Routines (time-triggered sequences), Event Automations (webhook-driven or state-change-driven), and Presence (modes that bind to location or network events). Themes stores reusable lighting presets with tagging, starter packs, and bulk deduplication. Cameras and Cleaning are filtered views over the same device inventory, scoped to Ring cameras and Roborock vacuums respectively. Discover handles provider scanning, pairing, and unpairing.
Admin and auth
Admin tooling includes access control, notification configuration, device discovery, routine reliability insights, and operational logs.
Auth uses Google OAuth with JWT sessions; unknown Google users are auto-provisioned on first login.