# Extend Your Project

- [Backoffice Extensions](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions.md): Extend the Umbraco backoffice by building custom extensions using the extension system, foundation APIs, and UI utilities.
- [Setup Your Development Environment](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/development-flow.md): Learn about the recommended development environment to extend Umbraco
- [Umbraco Extension Template](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/development-flow/umbraco-extension-template.md): Use the \`umbraco-extension\` .NET template to create a new Umbraco extension.
- [Vite Package Setup](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/development-flow/vite-package-setup.md): Get started with a Vite Package, setup with TypeScript and Lit
- [Extensions Overview](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview.md): The backoffice architecture is based on Extensions. Everything in the UI is Extensions which makes almost any parts of the UI extendable. Enabling you to append, replace, or remove parts.
- [Extension Registry](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-registry.md): Almost any UI in the Backoffice is an extension managed by the Extension Registry.
- [Extension Manifest Introduction](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-registry/extension-manifest.md): Learn about the different methods for declaring an Extension Manifest.
- [Register an Extension](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-registry/register-extensions.md): You can bring new UI or additional features to the Backoffice by registering an Extension via an Extension Manifest.
- [Replace, Exclude, or Unregister](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-registry/replace-exclude-or-unregister.md): You may want to replace or completely remove an extension. Depending on your interest, 3 different options are available.
- [Extension Types](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types.md): An overview of general extension types available in the Umbraco backoffice.
- [App Entry Point](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/app-entry-point.md): The App Entry Point extension type is used to run some JavaScript code before the user is logged in.
- [Backoffice Entry Point](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/backoffice-entry-point.md): The Backoffice Entry Point extension type is used to run some JavaScript code at startup.
- [Block Custom View](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/block-custom-view.md): Create a custom Web Component to visually represent blocks in Umbraco's Block editors.
- [Bundle](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/bundle.md): Gather Extension Manifests in one file
- [Dashboards](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/dashboard.md): A guide to creating custom dashboards in Umbraco
- [Entity Actions](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/entity-actions.md): Entity Actions give developers the ability to add custom actions to a fly-out menu.
- [Entity Bulk Actions](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/entity-bulk-actions.md): Bulk Entity Actions perform an action on a selection of items.
- [Entity Create Option Action](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/entity-create-option-action.md)
- [Extension Conditions](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/condition.md): Learn how to declare requirements for your extensions using the Extension Conditions.
- [Global Context](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/global-context.md): Global contexts in Umbraco provide a clean, type-safe way to share functionality across the backoffice.
- [Header Apps](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/header-apps.md): Place single-purpose extensions in the top-level navigation bar, next to the user profile avatar.
- [Icons](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/icons.md): Create custom icon sets for use across the Umbraco backoffice.
- [Kinds](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/kind.md): Create reusable, standardized configurations for extensions, helping to streamline development, ensure consistency, and reduce duplication.
- [Localization](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/localization.md): Learn how to manage and use the Backoffice UI Localization files.
- [Menu](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/menu.md): Create menus that appear throughout the backoffice, including in sidebars and button flyouts.
- [Menu Item](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/menu-item.md): Create menu items that appear throughout the backoffice, in sidebars, button flyouts, and more.
- [Modals](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/modals.md): A modal is a popup layer that darkens the surroundings and comes with a focus lock. There are two types of modals: "dialog" and "sidebar".
- [Custom Modals](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/modals/custom-modals.md): New modals can be added to the system via the extension registry.
- [Modal Route Registration](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/modals/route-registration.md): You can register modals with a route, making it possible to link directly to that specific modal. This also means the user can navigate back and forth in the browser history
- [Property Editor Schema](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/property-editor-schema.md): Reference documentation for the propertyEditorSchema extension type
- [Property Editor UI](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/property-editor-ui.md): Reference documentation for the propertyEditorUi extension type
- [Built-in Property Editor UIs](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/property-editor-ui/property-editor-uis.md): Learn about the different Property Editor UI elements that ship with Umbraco out of the box.
- [Property Value Preset](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/property-value-preset.md): Provide a preset value for a Property.
- [Sections](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/sections.md): A comprehensive summary of the available extension types associated with sections.
- [Section](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/sections/section.md): Introducing Section extensions, a home for custom content and functionality.
- [Section Sidebar](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/sections/section-sidebar.md): Use Section Sidebar extensions to add navigation, coordinate Section Views, and provide additional functionality inside Section extensions.
- [Section View](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/sections/section-view.md): Add auxiliary views to your own Umbraco packages, or to other areas of the Umbraco backoffice.
- [Trees](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/tree.md): A guide to creating a custom Tree in Umbraco
- [Tree Repository](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/tree/tree-repository.md)
- [Tree Models](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/tree/tree-models.md): Understanding Tree Item and Root models in Umbraco
- [Trees & Workspaces](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/tree/trees-and-workspaces.md): How Tree Items navigate to Workspaces when clicked in Umbraco
- [Workspaces](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/workspaces.md): Learn about workspace extension types that provide shared functionality and enable communication within workspace environments.
- [Workspace Actions](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/workspaces/workspace-editor-actions.md): Learn how to create workspace actions that provide primary user interactions within workspace environments.
- [Workspace Action Menu Items](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/workspaces/workspace-action-menu-items.md): Learn how to create workspace action menu items that extend workspace actions with additional functionality.
- [Workspace Context](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/workspaces/workspace-context.md): Workspace Contexts manages shared state and enables communication between extensions in a workspace.
- [Workspace Footer Apps](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/workspaces/workspace-footer-apps.md): Learn how to create workspace footer apps that provide persistent status information and contextual data in workspace environments.
- [Workspace Views](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/workspaces/workspace-views.md): Learn how to create workspace views that provide tab-based content areas for organizing different aspects of entity editing.
- [Collections](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/collections.md): An overview of the available extension types related to collections.
- [Collection View](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/collections/collection-view.md): Learn how to create a Collection View that defines how data is displayed within a collection in Umbraco.
- [Card View](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/collections/collection-view/card.md)
- [Reference View](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/collections/collection-view/reference.md)
- [Custom View](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/collections/collection-view/custom.md)
- [Extension Conditions](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-conditions.md): Learn how to use Extension Conditions when working with the Umbraco backoffice.
- [Custom Extension Types](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/custom-extension-type.md)
- [Foundation](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/foundation.md): Learn about the core framework of the Umbraco Backoffice, including how to integrate, communicate, and build reactive UIs for your extensions.
- [Fetching Data](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/foundation/fetching-data.md): Learn how to request data when extending the Backoffice.
- [Fetch API](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/foundation/fetching-data/fetch-api.md): The Fetch API is a modern way to make network requests in JavaScript. It provides a more powerful and flexible feature set than the older XMLHttpRequest.
- [Umbraco HTTP Client](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/foundation/fetching-data/http-client.md): Learn more about working with the Umbraco HTTP Client.
- [Executing Requests](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/foundation/fetching-data/try-execute.md)
- [Custom Generated Client](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/foundation/fetching-data/custom-generated-client.md): Learn how to create a custom-generated client with TypeScript types for your OpenAPI specification.
- [Terminology](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/foundation/terminology.md): A list of some of the key concepts with working the Umbraco Backoffice.
- [Umbraco Controller](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/foundation/umbraco-controller.md): Contain or reuse logic across Elements. A Controller enables you to separate logic while still being connected with the life cycle of an element.
- [Write Your Own Controller](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/foundation/umbraco-controller/write-your-own-controller.md): Reuse functionality across components by writing it as a Controller.
- [Umbraco Element](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/foundation/umbraco-element.md): Ease the integration with Backoffice by using a Umbraco Element
- [Lit Element](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/foundation/lit-element.md): Backoffice supports any native Web Components. But we choose to use a little framework to make it simpler.
- [Context API](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/foundation/context-api.md): Learn about using the Context API for sharing data and functionality between backoffice extensions through the component hierarchy.
- [Context API Fundamentals](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/foundation/context-api/context-api-fundamentals.md): Learn about the Context API fundamentals, terminology, and how it enables communication between elements in the Umbraco backoffice through hierarchy.
- [Consume a Context](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/foundation/context-api/consume-a-context.md): Learn how to consume contexts in Umbraco elements using one-time references or subscriptions to access data and functionality through the Context API.
- [Provide a Context](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/foundation/context-api/provide-a-context.md): Providing a Context enables distant code to communicate with it, ideal way to incorporate central logic.
- [Repositories](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/foundation/repositories.md)
- [Repository Types](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/foundation/repositories/repository-types.md)
- [Collection Repository](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/foundation/repositories/repository-types/collection-repository.md)
- [Detail Repository](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/foundation/repositories/repository-types/detail-repository.md)
- [Item Repository](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/foundation/repositories/repository-types/item-repository.md)
- [States](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/foundation/states.md): Enable reactivity with Umbraco States, allowing you to provide a value that others can observe and update when the value changes.
- [Routes](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/foundation/routes.md): Get started with Routing in the backoffice.
- [Backoffice Localization](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/foundation/localization.md): Learn how to manage and use the Backoffice UI Localization files.
- [Integrate Validation](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/foundation/integrate-validation.md): Learn how to bind and use the validation system when working with Form Controls and Umbraco CMS backoffice.
- [Contexts](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/contexts.md): Contexts are APIs that are made available via the Context API. This section describes how some of the most commonly used Contexts work and how they can be utilized.
- [Property Dataset Context](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/contexts/property-dataset-context.md): The owner of the values for properties, enabling you to communicate with other properties.
- [Property Level UI Permissions](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/property-level-ui-permissions.md): Use the UI Property Permissions to restrict access to specific properties in the Backoffice UI.
- [Icons](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/icons.md)
- [Signs](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/signs.md): Describes how to use Flag information provided in Management API responses to present additional details to consumers.
- [Property Editors](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/property-editors.md): Guide on how to work with and create Property Editors in Umbraco
- [Property Editor Validation](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/property-editors/property-editor-validation.md): Looking to add Validation rules for your own Property Editor? This article describes how to append validation rules to your Property Editor.
- [Property Editors Composition](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/property-editors/composition.md): This section describes how to work with and create Property Editors.
- [Property Editor Schema](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/property-editors/composition/property-editor-schema.md): The Server side part of a Property Editor
- [Property Editor UI](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/property-editors/composition/property-editor-ui.md): Presenting the Editing Experience of a Property Editor
- [Property Editor Data Source](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/property-editors/composition/property-editor-data-source.md)
- [Property Editor Data Source Types](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/property-editors/property-editor-data-source-types.md)
- [Picker Data Source Type](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/property-editors/property-editor-data-source-types/picker.md)
- [Collection Data Source](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/property-editors/property-editor-data-source-types/picker/picker-collection-data-source.md)
- [Tree Data Source](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/property-editors/property-editor-data-source-types/picker/picker-tree-data-source.md)
- [Property Value Converters](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/property-editors/property-value-converters.md): A guide to creating a custom Property Value Converter in Umbraco
- [Property Value Converter Example](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/property-editors/full-examples-value-converters.md)
- [Property Actions](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/property-editors/property-actions.md): Guide on how to implement Property Actions for Property Editors in Umbraco
- [Integrate Property Editors](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/property-editors/integrate-property-editors.md)
- [Tracking References](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/property-editors/tracking.md): Guide on how to implement tracking entity references for Property Editors in Umbraco
- [Property Dataset](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/property-editors/property-dataset.md): Looking to implement one or more Property Editors in your own scenario? The Property Dataset is necessary for a Property Editor to work, so make sure to have that integrated first.
- [Sortable Property Values](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/property-editors/property-editor-sortable-values.md): Learn how to enable sorting for custom property editors that store complex values like JSON in Umbraco collection views.
- [Utilities](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/utilities.md): In this section you can find information about different code utilities that can be used in your extension when customizing the Backoffice.
- [Modals](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/utilities/modals.md): In this section you can find information about different modal utilities that can be used in your extension when customizing the Backoffice.
- [Confirm Dialog](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/utilities/modals/confirm-dialog.md): Present a dialog to ask the user for confirmation.
- [UI Sorting](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/utilities/sorting.md): Enable sorting elements via drag and drop
- [Workspaces](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/workspaces.md)
- [Umbraco Package](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/umbraco-package.md): An extension begins with a Umbraco Package
- [UI Library](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/ui-library.md): Find out more about Umbraco Backoffice UI Library, Backoffice UI API and Storybook.
- [Examples and Playground](https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/examples-and-playground.md): Practical examples and hands-on experience are good ways to learn.
- [Server-Side Extensions](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions.md): Extend Umbraco's server-side functionality using .NET APIs, custom routing, notifications, services, caching, and more.
- [API Documentation](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/api-documentation.md): Information on Umbraco API Documentation
- [API Versioning and OpenAPI](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/api-versioning-and-openapi.md): How to use API versioning and OpenAPI (Swagger) for your own APIs.
- [Backoffice Search](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/backoffice-search.md): A guide to customization of Backoffice Search
- [Cache & Distributed Cache](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/cache.md)
- [Cache Seeding](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/cache/cache-seeding.md): Information about cache seeding
- [Accessing the Cache](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/cache/application-cache.md)
- [ICacheRefresher](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/cache/icacherefresher.md)
- [IMemberPartialViewCacheInvalidator](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/cache/imemberpartialviewcacheinvalidator.md)
- [IServerMessenger](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/cache/iservermessenger.md)
- [Getting/Adding/Updating/Inserting Into Cache](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/cache/updating-cache.md)
- [Examples](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/cache/examples.md)
- [Creating a Custom Seed Key Provider](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/cache/examples/creating-custom-seed-key-provider.md): A guide to creating a custom seed key provider for Umbraco
- [Working with Caching](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/cache/examples/tags.md): Information on how to insert and delete from the runtime cache
- [Creating a Custom Database Table](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/database.md): A guide to creating a custom Database table in Umbraco
- [Custom File Systems (IFileSystem)](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/filesystemproviders.md): A guide to creating custom file systems in Umbraco
- [Using Azure Blob Storage for Media and ImageSharp Cache](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/filesystemproviders/azure-blob-storage.md): Setup your site to use Azure Blob storage for media and ImageSharp cache
- [Custom Routing](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/custom-routing.md): Learn everything you need to know about custom routing in Umbraco CMS.
- [Adding a Hub with SignalR and Umbraco](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/custom-routing/adding-a-hub-with-signalr-and-umbraco.md): Umbraco ships with signalR installed, find out how to add your own hub(s) to the existing setup
- [Custom Swagger API](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/custom-swagger-api.md): Example of a Custom API with Authorization and Swagger
- [Embedded Media Providers](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/embedded-media-providers.md): A guide to creating a custom embed providers in Umbraco
- [Flag Providers](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/flag-providers.md): Describes how to use provide flags in management API responses for use in presenting additional details to consumers.
- [JSON Serialization](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/json-serialization.md): Describes how the JSON serialization within Umbraco can be customized.
- [Content Type Filters](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/content-type-filters.md): Describes how to use Content Type Filters to restrict the allowed content options available to editors.
- [Language Files & Localization](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/language-files.md): This article overviews how an Umbraco CMS website uses and manages localization with language files.
- [.NET Localization](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/language-files/net-localization.md): NET Umbraco Core Localization files.
- [Adding Additional Languages](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/language-files/adding-additional-languages.md): Learn how to make additional language cultures available in Umbraco when they do not appear in the backoffice language dropdown.
- [Management](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/management.md): Details of CRUD operations within Umbraco and how to interact with the data persisted in the database
- [Using Umbraco Services](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/management/using-services.md): List of service references along with instructions on how to use them, as well as some examples for better understanding.
- [Consent Service](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/management/using-services/consentservice.md)
- [Media Service](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/management/using-services/mediaservice.md): Examples on how to create a new folder and a new media item from a stream by using the MediaService.
- [Relation Service](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/management/using-services/relationservice.md)
- [Content Service](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/management/using-services/contentservice.md): Example on how to create and publish content programmatically using the \`IContentService\`.
- [Content Type Service](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/management/using-services/contenttypeservice.md): Examples on how to retrieve content types and content type containers using the ContentTypeService.
- [Localization Service](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/management/using-services/localizationservice.md): Example on how to retrieve languages using the LocalizationService.
- [User Service](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/management/using-services/userservice.md): This will show you how to perform various User management using the Umbraco service layer.
- [Scheduling](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/scheduling.md): Run a background job on a recurring basis
- [Server Events From SignalR](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/server-events.md): Describes server events emitted via a SignalR hub and available for consumption in the backoffice
- [Services and Helpers](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/services.md): Umbraco has a range of 'Core' Services and Helpers that act as a 'gateway' to Umbraco data and functionality to use when extending or implementing an Umbraco site.
- [Circular Dependencies](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/services/circular-dependencies.md)
- [Markdown to HTML Conversion](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/services/markdown-to-html-conversion.md): Describes how markdown to HTML is carried out within Umbraco.
- [UmbracoMapper](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/mapping.md)
- [Using Notifications](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/notifications.md): Get started with Notifications.
- [Notification Handler](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/notifications/notification-handler.md): Learn about notification handlers lifetime, async notification handler and how to register the notification handlers.
- [CacheRefresher Notifications Example](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/notifications/cacherefresher-notifications.md): Example of how to use a CacheRefresher Notification
- [ContentService Notifications Example](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/notifications/contentservice-notifications.md): Find out more about ContentService Notifications and explore some example of how to use it
- [Creating and Publishing Notifications](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/notifications/creating-and-publishing-notifications.md): How to create and publish your own custom notifications
- [Determining If an Entity Is New](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/notifications/determining-new-entity.md): Example of how to determine if an entity is new
- [MediaService Notifications Example](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/notifications/mediaservice-notifications.md): Example of how to use a MediaService Notification
- [MemberService Notifications Example](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/notifications/memberservice-notifications.md): Example of how to use a MemberService Notification
- [Umbraco Application Lifetime Notifications](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/notifications/umbracoapplicationlifetime-notifications.md): Represents an Umbraco application lifetime (starting, started, stopping, stopped) notification
- [Hot vs. Cold Restarts](https://docs.umbraco.com/umbraco-cms/extend-your-project/server-side-extensions/notifications/hot-vs-cold-restarts.md): When rebooting an Umbraco CMS website it is common to distinguish between hot and cold restarts depending on your setup.
- [Packages](https://docs.umbraco.com/umbraco-cms/extend-your-project/packages.md): A package extends the functionality of Umbraco to provide additional functionality to editors, developers, site visitors, and all other types of users of Umbraco.
- [Creating a Package](https://docs.umbraco.com/umbraco-cms/extend-your-project/packages/creating-a-package.md): Tutorial to create a package in Umbraco
- [Language File for Packages](https://docs.umbraco.com/umbraco-cms/extend-your-project/packages/language-files-for-packages.md): Information on how to use language files to make your Umbraco package UI support multiple languages
- [Listing a Package on the Umbraco Marketplace](https://docs.umbraco.com/umbraco-cms/extend-your-project/packages/listing-on-marketplace.md): Information on how to list your package on the Umbraco Marketplace.
- [Good Practice and Defaults](https://docs.umbraco.com/umbraco-cms/extend-your-project/packages/good-practice-and-defaults.md): Information on good practices and common defaults for Umbraco package development.
- [Packages on Umbraco Cloud](https://docs.umbraco.com/umbraco-cms/extend-your-project/packages/packages-on-umbraco-cloud.md): Things to consider for package development and usage in Umbraco Cloud
- [Installing and Uninstalling Packages](https://docs.umbraco.com/umbraco-cms/extend-your-project/packages/installing-and-uninstalling-packages.md): The process of installing and, in turn, uninstalling packages in your Umbraco CMS website.
- [Maintaining Packages](https://docs.umbraco.com/umbraco-cms/extend-your-project/packages/maintaining-packages.md): Once you've created and published your package, here is what's involved in it's ongoing maintenance
- [Create Accessible Umbraco Packages](https://docs.umbraco.com/umbraco-cms/extend-your-project/packages/accessibility.md)
- [Example Package Repository](https://docs.umbraco.com/umbraco-cms/extend-your-project/packages/example-package-repository.md): Suggestions for organizing an Umbraco package source code repository.
- [Tutorials](https://docs.umbraco.com/umbraco-cms/extend-your-project/tutorials.md): Step-by-step tutorials for building backoffice extensions, custom APIs, dashboards, and property editors in Umbraco.
- [Creating a Property Editor](https://docs.umbraco.com/umbraco-cms/extend-your-project/tutorials/creating-a-property-editor.md): A guide to creating a property editor in Umbraco.
- [Adding Configuration to a Property Editor](https://docs.umbraco.com/umbraco-cms/extend-your-project/tutorials/creating-a-property-editor/adding-configuration-to-a-property-editor.md): Adding configuration options to the editor.
- [Integrating Context with a Property Editor](https://docs.umbraco.com/umbraco-cms/extend-your-project/tutorials/creating-a-property-editor/integrating-context-with-a-property-editor.md): Integrate one of the built-in Umbraco Contexts.
- [Custom Value Conversion for Rendering](https://docs.umbraco.com/umbraco-cms/extend-your-project/tutorials/creating-a-property-editor/custom-value-conversion-for-rendering.md): Add a Property Value Converter for custom Property Editor value conversion.
- [Adding Server-Side Validation](https://docs.umbraco.com/umbraco-cms/extend-your-project/tutorials/creating-a-property-editor/adding-server-side-validation.md): Adding server-side validation for a Property Editor.
- [Default Property Editor Schema Aliases](https://docs.umbraco.com/umbraco-cms/extend-your-project/tutorials/creating-a-property-editor/adding-server-side-validation/default-property-editor-schema-aliases.md): An overview of the default Property Editor Schema aliases
- [Creating a Custom Dashboard](https://docs.umbraco.com/umbraco-cms/extend-your-project/tutorials/creating-a-custom-dashboard.md): A guide to creating a custom dashboard in Umbraco
- [Adding Localization to the Dashboard](https://docs.umbraco.com/umbraco-cms/extend-your-project/tutorials/creating-a-custom-dashboard/adding-localization-to-the-dashboard.md): Set up localization for your dashboard.
- [Adding Functionality to the Dashboard](https://docs.umbraco.com/umbraco-cms/extend-your-project/tutorials/creating-a-custom-dashboard/adding-functionality-to-the-dashboard.md): Use resources and get data for your dashboard.
- [Using Umbraco UI Library in the Dashboard](https://docs.umbraco.com/umbraco-cms/extend-your-project/tutorials/creating-a-custom-dashboard/extending-the-dashboard-using-umbraco-ui-library.md): Now that we have data for our dashboard we might want to make it look prettier. To do this we can use the Umbraco UI library.
- [Creating Custom Database Tables with Entity Framework](https://docs.umbraco.com/umbraco-cms/extend-your-project/tutorials/getting-started-with-entity-framework-core.md): Learn how to create custom database tables in Umbraco using Entity Framework Core, including migrations, composers, and notification handlers.
- [Custom Views for Block List](https://docs.umbraco.com/umbraco-cms/extend-your-project/tutorials/creating-custom-views-for-blocklist.md)
- [Connecting Umbraco Forms and Zapier](https://docs.umbraco.com/umbraco-cms/extend-your-project/tutorials/connecting-umbraco-forms-and-zapier.md)
- [Creating a Backoffice API](https://docs.umbraco.com/umbraco-cms/extend-your-project/tutorials/creating-a-backoffice-api.md)
- [Documenting Your Controllers](https://docs.umbraco.com/umbraco-cms/extend-your-project/tutorials/creating-a-backoffice-api/documenting-your-controllers.md)
- [Adding a Custom Swagger Document](https://docs.umbraco.com/umbraco-cms/extend-your-project/tutorials/creating-a-backoffice-api/adding-a-custom-swagger-document.md): Adding a custom Swagger document for a custom Management API
- [Versioning Your API](https://docs.umbraco.com/umbraco-cms/extend-your-project/tutorials/creating-a-backoffice-api/versioning-your-api.md): Adding new versions of custom Management APIs
- [Polymorphic Output in the Management API](https://docs.umbraco.com/umbraco-cms/extend-your-project/tutorials/creating-a-backoffice-api/polymorphic-output-in-the-management-api.md): How to support polymorphic outputs from custom Management APIs
- [Umbraco Schema and Operation IDs](https://docs.umbraco.com/umbraco-cms/extend-your-project/tutorials/creating-a-backoffice-api/umbraco-schema-and-operation-ids.md): How to apply the Umbraco schema and operation IDs for custom Management APIs
- [Access Policies](https://docs.umbraco.com/umbraco-cms/extend-your-project/tutorials/creating-a-backoffice-api/access-policies.md): How to apply access policies for Management APIs
- [Extending the Help Menu](https://docs.umbraco.com/umbraco-cms/extend-your-project/tutorials/extending-the-help-menu.md): Learn how to extend the Help Menu in the Backoffice UI.
- [Creating Your First Extension](https://docs.umbraco.com/umbraco-cms/extend-your-project/tutorials/creating-your-first-extension.md): Learn how to create your first extension for Umbraco.


---

# 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/extend-your-project.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.
