Info
This page is a public overview of a closed source project. I hope to one day open source it, but for now this is a way to share the architecture and design.
Last updated: August 2026
tbox is a system that aggregates multiple smart home platforms and protocols into a single API gateway, providing unified device management, automation rules, and scene control across different ecosystems. The architecture handles real-time device synchronization, event processing, and cross-platform automation orchestration powered by flow and an eventual tbox dashboard.
Design Philosophy
- Unified Control Plane: Provide a single API for managing devices across multiple smart home platforms.
- Extensible Architecture: Support new platforms and devices through modular integration layers.
- Declarative Automation: Use a rules engine to define automation logic in a platform-agnostic way.
System Architecture
The gateway operates as a centralized control plane that bridges local smart home protocols with cloud services while maintaining responsive local control capabilities.

Technical Stack
- Go - Backend Gin API server and core logic
- SQLite - Event persistence, state history, and rule execution records
- Flow Powered Workflows - Declarative workflows build on top of the flow platform for observability and management via the CLI and UI
Where It Runs
tbox runs on my homelab cluster as a single replica, since the event store is SQLite. It sits behind the same Traefik ingress and shared wildcard certificate as everything else on that cluster, and reaches the Hubitat hub through an external service definition rather than talking to it directly.
It is also where I try flow ideas out. Because it is a real system with real devices attached, it makes a better test surface than a toy project. Workflows have to actually work, secrets have to actually resolve, and a broken deploy is something I notice at home. A fair amount of what ended up in flow started as something I wanted here first.
