“A content block is defined as a small chunk of information, which is connected to a view and then rendered in the TYPO3 frontend.”
The TYPO3 Content Blocks provide an easy way to define and register content blocks (content elements) in TYPO3.
A content block is a composer package of type typo3-contentblock, that ships everything it needs within itself. Each content block represents a CType. Its configuration is reduced and simplified via abstraction and convention. The registration API applies the facade pattern approach to generate TYPO3 specific configuration based on the editor interface definition of a content block.
To ease the learning curve and enable TYPO3 newcomers, beginners, or frontend-only devs to create content blocks, the definition of the editing interface is done in YAML, which is a widespread configuration language and well known compared to TYPO3's exclusive TCA. Nevertheless, the field types match the TCA field types (refactored version for v12), and work with strong defaults, which reduces the configuration needed.
The even easier way to define a content block is by using the backend module's GUI, that kickstarts an entire content block package, which then can be stored in a version control system (VCS).
The data is stored by extending the tt_content table, following the example set by stable solutions like Bootstrap Package and Mask. Custom tables are automatically created for collection items (inline relations that are not FAL).
The content blocks bring their own rendering definition and extend the TYPO3 AssetCollector with the feature to utilise the file structure the Content Block registration. Thus, assets can be easily accessed both in the frontend and in the backend view, making less effort to create nice backend previews for the editors.