# Overview

One of the biggest strengths of the Umbraco CMS is its flexibility. It is possible to extend and customize all aspects of the product, tailoring it to fit perfectly to any project.

{% hint style="info" %}
Are you looking to **customize and build extensions for the Umbraco backoffice?**

All articles related to customizing and extending the Umbraco backoffice have been moved to the [Customize the Backoffice](/umbraco-cms/customizing/overview.md) section.
{% endhint %}

In this section, you can find resources to build and extend Umbraco CMS functionality.

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-cover data-type="files"></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Backoffice Search</strong></td><td>Learn how to customize the built-in search functionality in the backoffice.</td><td></td><td><a href="/files/bTFVoQgQtXJirYMy0lie">/files/bTFVoQgQtXJirYMy0lie</a></td><td><a href="/pages/lRYec8gm2xi4u8mIc4K7">/pages/lRYec8gm2xi4u8mIc4K7</a></td></tr><tr><td><strong>Packages</strong></td><td>Add your custom code into packages and distribute them to the rest of the Umbraco users.</td><td></td><td><a href="/files/FqbJg32oJj0pTWbzDSEw">/files/FqbJg32oJj0pTWbzDSEw</a></td><td><a href="/pages/JAZ5WjGxhrZk5ljVwHGp">/pages/JAZ5WjGxhrZk5ljVwHGp</a></td></tr><tr><td><strong>Health Checks</strong></td><td>Learn about the health checks that you can run on your site to verify its state.</td><td></td><td><a href="/files/lNyIlfEW6rVH4bFoQDfl">/files/lNyIlfEW6rVH4bFoQDfl</a></td><td><a href="/pages/snn102rjRZ0HrDmRJlJV">/pages/snn102rjRZ0HrDmRJlJV</a></td></tr></tbody></table>

## Other ways to extend the Umbraco CMS backoffice

* [Embedded Media Providers](/umbraco-cms/extending/embedded-media-providers.md)
* [Language files and localization](/umbraco-cms/extending/language-files.md)

## Also in this section

{% content-ref url="/pages/oj2yeLLKRDhEx8yOtXuV" %}
[Creating a Custom Database Table](/umbraco-cms/extending/database.md)
{% endcontent-ref %}

{% content-ref url="/pages/7yzy6rk7wX2i879jt6bR" %}
[Configuring Azure Key Vault](/umbraco-cms/extending/key-vault.md)
{% endcontent-ref %}

{% content-ref url="/pages/OUZPj3kf4dP7qYrL78pk" %}
[Custom File Systems (IFileSystem)](/umbraco-cms/extending/filesystemproviders.md)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.umbraco.com/umbraco-cms/extending/build-on-umbraco-functionality.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
