Concepts
A handful of terms come up across the docs. Skim this once and the rest reads faster.
The pieces
Dash (glasshome-dash)
The app you actually interact with. Runs on your hardware (Pi, NUC, NAS, HAOS). Talks directly to Home Assistant over WebSocket. Contains one or more dashboards (named screens you configure).
Hub (this site)
Cloud service at glasshome.app. Hosts the widget registry, your account, organizations, and tunnel provisioning. Optional for using Dash.
Addon
A packaging of Dash for Home Assistant OS or Supervised. Installed via the HA Add-on Store. Same app, easier install.
Widget
A tile on a dashboard bound to one or more HA entities. Built-in or installed from Hub. SolidJS component + Zod config.
Where things run
Your network Internet
───────────────────────── ──────────────────
Home Assistant ◄──WS──┐ glasshome.app
│ (account, widget CDN,
Dash ──────────────────┴───── browser tunnel provisioning)
+ optional cloudflared ───── tunnel ──────▲
Dash does not need Hub to run. Hub is only required if you want to install community widgets, publish your own, or use the managed remote-access tunnel.
Glossary
Everyday terms
- Dashboard. A named screen inside Dash. You can have multiple dashboards, each with its own layout and widget set.
- Breakpoint. Layout slot keyed by screen width (
lg,md,sm). Each dashboard stores one layout per breakpoint. See Layouts. - Tunnel. A
cloudflaredprocess that exposes Dash to the internet via Cloudflare’s edge. Provisioned by Hub. See Remote Access.
Publishing terms
- Scope. Publishing namespace.
@usernamefor personal,@org-slugfor an organization. Widget IDs look like@scope/widget-name. - Manifest. The
manifest.json(or inline metadata indefineWidget) that describes a widget: name, icon, size limits, SDK version. - configVersion. Integer on a widget manifest. Bumped when the config shape changes in a breaking way. Drives migrations.
- Trust badge.
Official(verified, installs without prompt) orCommunity(user-published, asks for consent). See Publishing.
Data flow
- Browser loads Dash from your local server (e.g.
http://192.168.1.x:3123). - Dash opens a WebSocket to Home Assistant for live entity state.
- When you add a community widget, Dash fetches its bundle from Hub’s CDN once, then caches it locally.
- Dash config (layouts, themes, connections) is stored in a local SQLite database. No sync to Hub.
What never leaves your network
Entity state, your layouts, your HA URL, your devices. Dash talks to HA directly. Hub never sees any of it.
Hub vs. Dash accounts
You sign into Hub (this site) to publish widgets or provision a tunnel. Dash itself doesn’t require an account. It authenticates to Home Assistant via HA’s own OAuth.