Architecture overview
home-assistant-pack is a pnpm + Turborepo monorepo. It contains the
deployable applications, the shared TypeScript packages they build on, and the
tooling/processes used to release and operate them.
High-level shape
- Apps (
apps/*, plushome-assistant/cards) — things that run: the API server, the on-device edge agent, the admin web app, and the dashboard UI. - Packages (
packages/*) — shared libraries consumed by the apps: types, UI kit, API client, CLI tooling, and more. - Tooling (
tools/*,scripts/*,deploy/*) — release orchestration, deployment, and developer scripts.
The full workspace inventory and roles are listed in Monorepo layout.
API
The API (apps/api, package name server) is an Express 5 service. Its HTTP
surface is described by an OpenAPI spec generated from Zod schemas
(@asteasolutions/zod-to-openapi) plus JSDoc annotations. That spec powers the
interactive API Reference on this site.
Build & tasks
Turborepo orchestrates builds across workspaces. Common entry points are exposed
as root package.json scripts (build, generate, dev:*, build:docs,
etc.). This docs site is itself a workspace (@signapps/docs) wired into Turbo.