# Foundation

In this section, you will find comprehensive resources about the foundational concepts and tools for building Backoffice extensions. These topics cover everything from basic terminology to advanced patterns for data management and UI development.

## Core Concepts

### [Terminology](/umbraco-cms/customizing/foundation/terminology.md)

Get an overview of the general terms used in the Umbraco Backoffice and what they represent.

### [Umbraco Element](/umbraco-cms/customizing/foundation/umbraco-element.md)

The Umbraco Element provides the foundation you need to integrate your custom UI components.

### [Umbraco Controller](/umbraco-cms/customizing/foundation/umbraco-controller.md)

Contain or reuse logic across elements. Controllers enable you to separate business logic while remaining connected to the element life cycle.

### [Lit Element](/umbraco-cms/customizing/foundation/lit-element.md)

Learn about Lit Element, the Web Component framework that most examples and the majority of the Backoffice are built upon.

## Communication and Data Management

### [Context API](/umbraco-cms/customizing/foundation/context-api.md)

Learn how to communicate with the rest of the application, whether you want to retrieve data or manipulate it.

### [Contexts](/umbraco-cms/customizing/contexts.md)

Explore specific context implementations, including the Property Dataset Context that connects Property Editors with Workspaces.

### [Fetching Data](/umbraco-cms/customizing/foundation/fetching-data.md)

Learn how to request data when extending the Backoffice, using either the Fetch API or the Umbraco HTTP Client.

### [Repositories](/umbraco-cms/customizing/foundation/repositories.md)

Discover how to use repositories to manage data operations in a structured way, abstracting the data access layer for easier maintenance and scalability.

## UI Development

### [States — Make Reactive UI](/umbraco-cms/customizing/foundation/states.md)

Bring life to your UI by ensuring it stays up to date with the current data through reactive state management.

### [Icons](/umbraco-cms/customizing/icons.md)

Learn how to use icons in the Umbraco Backoffice, based on Lucide Icons and Simple Icons.

### [Localization](/umbraco-cms/customizing/foundation/localization.md)

Discover how to manage and use Backoffice UI localization files to translate your extensions into different languages.

### [Integrate Validation](/umbraco-cms/customizing/foundation/integrate-validation.md)

Learn how to bind and use the validation system when working with Form Controls and custom Property Editors.

### [Sorting](https://github.com/umbraco/UmbracoDocs/blob/main/17/umbraco-cms/customizing/foundation/sorting.md)

Create a UI that users can sort via drag and drop functionality.

### [Routes](/umbraco-cms/customizing/foundation/routes.md)

Implement routes in your UI, enabling users to deep link directly into your custom interfaces.

## Additional Resources

### [Community Resources](https://github.com/umbraco/Umbraco.Packages/tree/main/bellissima)

An overview of community articles and packages related to the Umbraco Backoffice.

### [Next-Level Backoffice](https://www.youtube.com/watch?v=P0xxTIlHayg)

Watch Niels Lyngsø's Codegarden 2025 talk about next-level Umbraco Backoffice.


---

# 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/customizing/foundation.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.
