---
title: "Registration"
manual: "Content Blocks"
version: "main"
permalink: "https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:cb-installation@main"
source: "Registration/Index.rst"
rendered: "2026-09-22T14:15:39+00:00"
---

# Registration {#cb-installation}

In order to register a new Content Block, a folder **ContentBlocks** has to be
created on the root level inside a loaded extension. Depending on the Content
Type you want to create, you place the new Content Block into a dedicated
folder. These are named **ContentElements**, **PageTypes** and **RecordTypes**.

-   `my_extension`
    -   `Classes`
    -   `Configuration`
    -   `ContentBlocks`
        -   `ContentElements`
            -   `content-block-1`
            -   `content-block-2`
        -   `PageTypes`
            -   `content-block-3`
            -   `content-block-4`
        -   `RecordTypes`
            -   `content-block-5`
            -   `content-block-6`
    -   `ext_emconf.php`
    -   `composer.json`

The system loads them automatically as soon as it finds any folder inside these
directories, which has a file with the name [config.yaml](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:cb-definition-editor-interface@main)
inside. Refer to the [YAML reference](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:yaml-reference@main), on how to define
this file.

> [!TIP]
> Use the command [make:content-block](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:cb-skeleton@main) to quickly create a
> new Content Block.

> [!TIP]
> You can copy and paste any Content Block from one project to another, and it
> will be automatically available.

## Administration {#administration}

Make sure to add Content Blocks as a dependency in the host extension.

You will need to allow the generated database fields, tables
(if using [Collections](https://docs.typo3.org/permalink/friendsoftypo3/content-blocks:field-type-collection@main)) and CType in the backend
user group permissions.
