A _component_ is a single unit in the hierarchy that makes up a [layout](🔗). It typically has a single purpose such as retrieving one or more content items, executing a search query, or delegating to child components in the hierarchy.
A component can be either _static_ or _managed_:
A _static component_ is pre-defined by a developer as part of a [layout](🔗) configuration through the [Site Management API](🔗) and cannot be configured by site editors.
A _managed component_ is pre-defined by developers as part of a component group through the Site Management API and can be dragged onto a page and configured by a site editor in the [Experience manager](🔗).
A _component group_ is a set of managed components that are made available in the component catalog in the Experience manager to be dragged onto pages and further configured by site editors.
For a full overview of configuration parameters, see the [CatalogGroup](🔗) and [ComponentDefinition](🔗) schemas in the API reference documentation.
## Components and Component Groups
Components are the building blocks for websites, and in Bloomreach Content the available components are created within a catalog. The catalog presents a site editor with a set of draggable components in the Experience Manager, under the _Components_ tab in the left sidebar. The component catalog is divided into separate named component groups, to assist with organizing large numbers of components. The "base" group is a special case, containing the built-in [base components](🔗) provided by the platform. The [Site Management API](🔗) enables creating new components by extending the base components, allowing a developer to build many specialized components with distinct behaviors.
For more information on the available base components and how to extend them by defining additional configuration parameters, see [Base Components](🔗). To create, update, or delete a component through the API, a group name must always be specified.
A component always extends from a base component, which must be specified in creating and updating requests. The list of available base components is provided by using the call to GET all components of the base group:
When creating a new component, always use the attribute "extends". The value is the name of the base component that you wish to extend from, prefixed with the group name and a slash. Example:
The payload for a PUT call for a component allows specifying an image for the component (an icon). At the moment, the format supported is SVG, please refer to the example in the API specification.
See the Site Management API reference documentation for a list of [component operations](🔗).
You can find examples of using the component and component group endpoints in the [Postman collection](🔗).
For hands-on tutorials on defining components, see [Hello World Component](🔗) and [Content-Driven Component](🔗) in the [About Bloomreach Content](🔗) section.