> For the complete documentation index, see [llms.txt](https://learn.squirrel365.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://learn.squirrel365.io/squirrel-addon-documentation/building-an-addon.md).

# Building an addon

## What you’ll need <a href="#inlineextension-what-youll-need" id="inlineextension-what-youll-need"></a>

If you want to create an addon you will need will need to create and host a web application. We provide sample code to get you started in the following languages:

| [![image-text](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZfYIFS5Nk3lwMxDKaFp3%2Fuploads%2FY8Pa3ZWpImrDiSxtR5s6%2Fimage.png?alt=media\&token=ecb9b77b-97ce-409b-982d-c7cf28652231)](/squirrel-addon-documentation/squirrel-helper-library/angular/getting-started.md) | [![image-text](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZfYIFS5Nk3lwMxDKaFp3%2Fuploads%2Fg48hGz7tqq2nBbBmtA9r%2Fimage.png?alt=media\&token=a2ee985c-902c-4751-ab3e-1d7c3c64cb0b)](/squirrel-addon-documentation/squirrel-helper-library/react.md) | [![image-text](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZfYIFS5Nk3lwMxDKaFp3%2Fuploads%2FgAHOeKlZhujNEiWhMtfi%2Fimage.png?alt=media\&token=dda7c7ce-407e-4089-890e-a83177cd96a7)](/squirrel-addon-documentation/squirrel-helper-library/javascript/getting-started.md) |
| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |

In this guide will cover the following topics, providing code examples where appropriate.

1. [Communicating ](/squirrel-addon-documentation/building-an-addon/communication.md)with Squirrel and advising when the addon is ready to receive data
2. Defining a [default state](https://learn.squirrel365.io/squirrel-addon-documentation/pages/t9VAveCwtB3eQR9XIBKT#defaultstate.json)
3. Squirrel lifecycle hooks and [events](/squirrel-addon-documentation/squirrel-helper-library/javascript/events.md)
4. [Receiving data](/squirrel-addon-documentation/squirrel-helper-library/angular/events/onpropertychange.md) from Squirrel
5. [Sending data](/squirrel-addon-documentation/squirrel-helper-library/javascript/methods/sendtosquirrel.md) to Squirrel
6. Building a [property panel](/squirrel-addon-documentation/building-an-addon/property-panel/property-panel-elements.md)

Alternatively you can download the sample projects and review them. We have packed them full of comments to explain how things work.
