Extensions provide a way to build, modify or expand Directus' functionality beyond the default, for your specific needs. There are three main categories of extensions:
- App Extensions
- API Extensions
- Hybrid Extensions
App extensions (also known as frontend extensions) provide visual and client-side modifications to the Directus App.
Interfaces provide the user with ways to create and edit items through forms and other elements.
Layouts give you control over how multiple items inside a collection are presented. Out of the box, Directus provides data layouts such as table, cards, calendar and map. However, with layout extensions, you can implement a custom layout extension to present your data. For example, a layout that renders your data in a sphere.
Displays enable you to customize the way data gets displayed in layouts. For instance, if you have a field with values ranging from 0 to 10 you could create an interface that shows a progress bar relative to that value.
Panels are like widgets designed specifically for visualizing and interacting with data within Directus Insights. They are similar to displays but can show multiple data points, contain interfaces and allow user input.
Modules introduce a whole new level of extensibility to Directus by allowing you to add an entirely new page your Directus app. For example, a page solely containing an integration with an external service. When new modules are added, they appear as new icons in the main module side bar.
API extensions (also known as backend extensions) modify Directus server-side related functionalities such as APIs, data sources and custom workflows.
Endpoints allow for creating your own custom endpoints to the Express instance of Directus.
Hooks are similar to Flows, but do not have a UI in the Directus Data Studio. Hooks can be triggered during Directus' startup, when data is changed, or on schedules.
Hybrid extensions modify both frontend and backend functionality. Hence, they allow expanding upon both the admin app interface and the API.
Flow Operations are small modules inside flows that allow for complex processes when combining them with each other. An operation extension could be an integration with a 3rd party service or simply a regex validator for a given string.
Bundles enable you to combine multiple extensions into a single, larger extension. They are useful when an extension comprises several related sub-extensions that should be installed together. Bundles allow you to share dependencies among multiple extensions, significantly reducing file size.
Here's a list of various extensions created by the Directus Community.