The Home Assistant Frontend is the official web interface for Home Assistant, built for home-automation users and developers who want a browser-based control panel for their smart home.
What it is
This repository contains the frontend for Home Assistant, the open-source home-automation platform. It is written in TypeScript and is built on modern web-component tooling, with its topic list pointing to lit-element, polymer, and webcomponents as the underlying approach. The project is Apache 2.0 licensed, and the maintainers state plainly that you are free to browse the repository, learn from it, and reuse parts of it in your own projects. A live demo is published at demo.home-assistant.io so that anyone can see the interface without deploying anything.
Concretely, the project solves the problem of having a coherent, browsable control surface for a home-automation system: it is the thing a person actually interacts with when they open their Home Assistant instance, rather than the backend services themselves. By hosting the interface separately from the Home Assistant core, it also gives frontend developers a dedicated codebase to work on, with its own development instructions, production build pipeline, and a component gallery for inspecting UI elements in isolation.
Key capabilities
- Runs as the official interface for Home Assistant, with a public demo at demo.home-assistant.io for evaluation without a local installation.
- Provides a production build path via
pnpm build, alongside an initial setup script named script/setup.
- Ships a separate gallery application, started with
cd gallery && script/develop_gallery, for developing and reviewing components.
- Is developed in TypeScript using
lit-element, polymer, and web components, so UI elements are composable custom elements rather than framework-bound widgets.
- Publishes dedicated frontend development instructions through the Home Assistant developer documentation, including a classic build guide at home-assistant.io/developers/frontend/.
- Is tested across a large variety of devices using BrowserStack, as stated in the README.
- Is maintained under an Apache 2.0 licence as part of the Open Home Foundation's Home Assistant project.
Who uses it and how
- Home Assistant operators who want the standard browser dashboard for controlling their smart home, with a demo available to preview it first.
- Frontend contributors working on the interface itself, following the linked development instructions and using
script/setup for initial configuration.
- Developers shipping a production deployment, who run
pnpm build to produce the built assets served alongside a Home Assistant instance.
- Component authors using the gallery workflow (
cd gallery && script/develop_gallery) to exercise UI pieces in isolation before integrating them.
- People building their own projects who take advantage of the Apache 2.0 licence to reuse parts of the codebase.
Getting started
Initial setup uses script/setup, development follows the instructions at developers.home-assistant.io/docs/frontend/development/, and a production build is produced with pnpm build.
How it compares
This registry names no comparable tool for this project, so the Home Assistant Frontend stands alone here: it is the official, Apache-2.0-licensed interface for Home Assistant rather than one option among several interchangeable frontends.
When to use it — and when not
Because it is only the frontend, adopting it means you must also operate a Home Assistant installation behind it, along with whatever devices, integrations, and infrastructure your setup requires; it is not a standalone application. The repository carries 383 open issues, which suggests a substantial backlog worth reviewing before depending on it for a production interface, and the README itself is fairly brief, pointing readers to external developer documentation for the real build and development detail.