# Architecture

> How everything fits together, and the decisions behind it.

Source: https://contributors.home-assistant.io/architecture/

Home Assistant runs millions of homes, on anything from a small Raspberry Pi to a server in a closet. Under the hood, it is a set of pieces that work together, built by thousands of people over more than a decade. This area explains how.

You don't need to understand all of it to contribute. Start with the big picture, and go deeper when your work takes you there. Every page starts with the short version, and goes into detail after, for those who want it.

## Start here

- [The big picture](https://contributors.home-assistant.io/architecture/big-picture/): every piece on one page, and how they connect.
- [Principles](https://contributors.home-assistant.io/architecture/principles/): the ideas behind how Home Assistant is built.
- [How architecture decisions are made](https://contributors.home-assistant.io/architecture/decisions/): where architecture is discussed, and how to take part.
- [Repositories](https://contributors.home-assistant.io/architecture/repositories/): where the code lives.

## Go deeper

- [Inside Home Assistant Core](https://contributors.home-assistant.io/architecture/core/): from startup to entities, the Python application at the center.
- [How the pieces talk](https://contributors.home-assistant.io/architecture/connections/): the APIs, and logging in.
- [The frontend](https://contributors.home-assistant.io/architecture/frontend/): the web interface, and how dashboards work.
- [Around Core](https://contributors.home-assistant.io/architecture/platform/): the Supervisor, Home Assistant OS, apps, the companion apps, the cloud, and voice.
- [How Home Assistant handles trust](https://contributors.home-assistant.io/security/how-it-works/), in the Security area: who Home Assistant trusts, and where it can be attacked.

## Ready to contribute?

This area explains how things work. The work itself happens in the other areas of this site. Each one starts with a small first contribution:

| You want to work on | Go to | First step |
| --- | --- | --- |
| Home Assistant Core and integrations | [Core and integrations](https://contributors.home-assistant.io/core/) | [Your first contribution to Core](https://contributors.home-assistant.io/core/first-contribution/) |
| The web interface and dashboards | [Frontend](https://contributors.home-assistant.io/frontend/) | [Your first frontend contribution](https://contributors.home-assistant.io/frontend/first-contribution/) |
| How the interface looks, works, and reads | [Design](https://contributors.home-assistant.io/design/) | [Your first design contribution](https://contributors.home-assistant.io/design/first-contribution/) |
| The Android and Apple apps | [Companion apps](https://contributors.home-assistant.io/companion/) | [Your first companion app contribution](https://contributors.home-assistant.io/companion/first-contribution/) |
| The Supervisor and Home Assistant OS | [OS and Supervisor](https://contributors.home-assistant.io/os/) | [Your first contribution to the Supervisor](https://contributors.home-assistant.io/os/first-contribution/) |
| Software that runs next to Home Assistant | [Apps](https://contributors.home-assistant.io/apps/) | [Your first app](https://contributors.home-assistant.io/apps/first-app/) |
| The sentences Assist understands | [Voice translations](https://contributors.home-assistant.io/translate/voice/) | [Contribute sentences and responses](https://contributors.home-assistant.io/translate/voice/contributing/) |
| Home Assistant in your language | [Translations](https://contributors.home-assistant.io/translate/) | [Your first translation](https://contributors.home-assistant.io/translate/first-contribution/) |
| The user documentation | [Writing docs](https://contributors.home-assistant.io/writing/) | [Your first docs fix](https://contributors.home-assistant.io/writing/first-contribution/) |
| Keeping homes safe | [Security](https://contributors.home-assistant.io/security/) | [Your first security contribution](https://contributors.home-assistant.io/security/first-contribution/) |
| Testing and shipping releases | [Releases](https://contributors.home-assistant.io/releases/) | [Your first beta test](https://contributors.home-assistant.io/releases/first-contribution/) |

Not sure yet? [Your first contribution](https://contributors.home-assistant.io/start/first-contribution/) in Get started helps you pick.

## Who this is for

Everyone who wants to know how Home Assistant works under the hood. The pages assume you know Home Assistant as a user. Where code comes in, it is Python for Core and TypeScript for the frontend, but the explanation around it doesn't need you to read it.

The code is the source of truth. Pages point to where the code they describe lives, so you can check, and read further. Every page ends with _Work on this_: where to go when you want to change what it describes.

## Who to talk to

- **Architecture discussions** happen in the [architecture repository](https://github.com/home-assistant/architecture/discussions).
- **Questions while you work** go to the [**#developers**](https://discord.com/channels/330944238910963714/554842238073700352) channel on [Discord](https://www.home-assistant.io/join-chat). Can't see it? Under **Channels & Roles**, choose **I want to contribute dev skills to Home Assistant**.
- Found something on these pages that is wrong or outdated? Use the edit link at the bottom of the page.
