Skip to main content

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/*, plus home-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.