Skip to main content

Apps

The monorepo ships four deployable applications plus the Home Assistant cards bundle. Together they form a cloud control plane (API + admin), an on-device runtime (edge agent), and a customer-facing UI (dashboard).

AppWorkspacePackage nameRuntime
API serverapps/apiserverExpress 5 + Postgres (cloud)
Edge agentapps/edge-agent@signapps/edge-agentExpress + SQLite (on RPi5)
Web adminapps/web-adminfrontendNext.js 16 (standalone)
Dashboard (React)apps/dashboard/react@signapps/dashboard-reactVite SPA + HA panel

How they fit together

  • The API server is the source of truth: it stores customers, devices, modules, dashboard versions, and the publish registry, and brokers OTA updates.
  • The edge agent runs on each device, checks in with the API, pulls and installs releases from R2, and exposes a local API/WebSocket for the dashboard.
  • The web admin is the operator UI, talking to the API through the generated @signapps/api-client.
  • The dashboard is what the end customer sees — a Vite SPA that runs both as a standalone kiosk and as a Home Assistant side-panel.

Common commands

All apps are driven through root package.json scripts (Turborepo + pnpm):

pnpm dev:api # API server (needs Postgres)
pnpm dev:fe # web admin
pnpm dev:dashboard-react # dashboard SPA
pnpm --filter @signapps/edge-agent run dev # edge agent

See each app's page for dev, build, deploy, and configuration details.