Content Blocks: Q1/2026 Report and the First GUI Release

The Content Types Team published the first version of the Content Blocks GUI for TYPO3 v13, presented it at two TYPO3 Camps, and started work on the funded JSON Schema and YAML Linter.
The first quarter of 2026 centered on the Content Blocks GUI. After finishing TYPO3 v14 support at the end of 2025, the team released a first version of the GUI for TYPO3 v13 and showed it to the community at the TYPO3 Camps in Zurich, Switzerland, and Heidelberg, Germany. In parallel, work on the funded JSON Schema and YAML Linter started in February and has already landed as the content-blocks:lint command. Both release branches, 1.x for v13 and 2.x for v14, received steady maintenance and a few notable new features along the way.
Content Blocks GUI: First Release for v13
The Content Blocks GUI is now available as a first release for TYPO3 v13. It lives in its own repository and provides a visual way to work with Content Blocks instead of editing YAML by hand. You can create, copy, delete, and edit Content Elements, Record Types, Basics, and Page Types through the interface, and batch operations let you download and upload several Content Blocks at once for moving them between projects. The first release covers the essential functionality, so there are still rough edges and a few bugs to iron out before it reaches feature parity with the YAML workflow.
The GUI is a development tool, meant for local and development environments only. You use it to build and edit your Content Blocks and then commit the generated configuration and templates to version control. It is not intended to run in production. Install it as a development dependency via Composer:
composer require --dev friendsoftypo3/content-blocks-guiThe next goal is v14 compatibility. If you work with Content Blocks, please install the GUI, try it in a development environment, and report what works and what does not. For a detailed walkthrough with screenshots of the interface, see the Q4/2025 report, which covers the GUI in more depth.
TYPO3 Camps: Zurich and Heidelberg
The team attended two TYPO3 Camps this quarter, with two team members at each event. The TYPO3 Camp in Zurich, Switzerland, kept its familiar, personal atmosphere, and it remains a good place to meet the local community in person every year. Zurich was also where the team gave the first public demo of the Content Blocks GUI, and the feedback there was positive throughout.
THE CÄMP in Heidelberg, Germany, was held on the SRH Campus for the first time, and the new venue worked well. The team presented the GUI there too, and attendees were interested in the feature and glad to see it taking shape. The common thread at both camps was that a visual editor lowers the entry barrier for newcomers who find the YAML configuration unfamiliar at first, which makes Content Blocks a more approachable starting point for people new to TYPO3.
Content Blocks 2.x: New Features for v14
The 2.x branch moved from 2.0 to 2.4 across this period, with maintenance releases and a number of new features.
Content Block as Site Set
The most significant addition is Content Block as Site Set (2.3.0). Each loaded Content Block is now registered as a TYPO3 Site Set, which means you can require different Content Blocks per site through the Site Sets dependency system. Content Blocks also ships a per-extension bundle that contains all Content Blocks defined in an extension, so you do not have to add them one by one. On top of that, a setup.typoscript or page.tsconfig file placed inside a Content Block is loaded automatically when the set is active for a site, and the backend only shows the Content Blocks that are actually included in the current site. This gives larger multi-site installations a clean way to scope which content types are available where.
Page Types
Page Types received several improvements in 2.2.0. The new isViewable option controls whether a page type can be linked to in the page browser and in frontend link (TypoLink) generation, which is useful for page types that should not appear as link targets. The release also lets you configure the page creation wizard step by step to control which fields appear where, set label fields per record type, and define which record types may be created on a given Page Type through the allowedRecordTypes option. Together these give integrators finer control over how custom page types behave.
Smaller 2.1.x Configuration Additions
Smaller configuration additions arrived across the 2.1.x releases:
- The Select field gained the
foreign_table_item_groupoption. - The
behaviouroption became available on common properties. - The
valuePickernow accepts numeric values. - The Pass field type supports
useExistingField. - The
content-blocks:lintcommand received improved output (2.2.3) to make configuration errors easier to read.
Developer Experience
Version 2.4 (26 May) bundled several developer-experience improvements. It adds two CLI commands that generate frontend and backend preview templates, so you get a working starting point instead of writing the Fluid markup by hand, and backend preview templates can now access the Site and its Site Settings.
Introduced in 1.6 and 2.4
The 2.4 release also introduces:
- A new
SelectTextfield type. - An alias mechanism for field identifiers.
- Automatic language keys for the
labelChecked,labelUnchecked, and placeholder properties. - The
hideInUidoption, which hides a Record Type in the record overview.
The same feature set is available for TYPO3 v13 in release 1.6.0.
Continued v13 Maintenance
The v13 branch kept pace with the v14 work and moved from 1.3.x up to 1.6.0. Most of the new features above are available for v13 as well:
- Content Block as Site Set landed in 1.5.0, the JSON Schema work and the related field and config options arrived in the 1.4.x line
- The 2.4 feature set followed in 1.6.0, and 1.3.20 brought tidier XLIFF files with two-space indentation.
This keeps the two branches close in functionality so that v13 projects are not left behind while the focus shifts to v14.
The JSON Schema and YAML Linter
Work on the funded JSON Schema and YAML Linter started on 1 February, with Nikita Hovratov handling the implementation. Content Blocks configuration files previously had no validation, which meant that typos or invalid setups only surfaced at runtime. The project updated the JSON Schema to cover the current set of options and shipped the content-blocks:lint command, which checks all Content Block configuration files against that schema and reports errors with their exact location. The command is meant for everyday use and for CI/CD pipelines, so configuration mistakes can be caught before they reach an environment. The proposal was selected by member vote in the TYPO3 Association's community budget process and received a €10,000 budget for Q1/2026.
Behind the Releases
Most of the work this quarter again came from Nikita Hovratov, who handled issues, reviewed pull requests, and drove the JSON Schema project. Thanks also go to the contributors who sent fixes and improvements during the quarter, including Josef Glatz and Richard Krikler. The steady stream of small releases is a direct result of this ongoing community effort.
Release Overview
The complete and always up-to-date list of releases is on GitHub. The tables below summarize the releases since the last report.
Version 2.x (TYPO3 v14)
| Version | Date | Highlights |
|---|---|---|
| 2.0.5 | 2 February 2026 | PreviewRenderer refactored to use composition over inheritance |
| 2.1.0 | 13 March 2026 | JSON Schema validation (TYPO3 Budget Ideas 2026 Round 1), foreign_table_item_group option for Select, behaviour added to common properties |
| 2.1.1 | 13 March 2026 | Removed required fields for cropVariants, JSON Schema fixes (cropVariants options, excludeFromSync) |
| 2.1.2 | 13 March 2026 | Allow number type in valuePicker, useExistingField for type Pass |
| 2.1.3 | 16 March 2026 | Fixed JSON Schema for suggestOptions, documentation for minitems |
| 2.2.0 | 31 March 2026 | Page Types isViewable, Page Creation Wizard Steps, type-specific label fields, Allowed Record Types for Page Types |
| 2.2.1 | 1 April 2026 | FSC integration guide for TYPO3 14.2, allow exclude property in Field Type |
| 2.2.2 | 2 April 2026 | Do not put opacity into columnsOverrides |
| 2.2.3 | 17 April 2026 | Improved content-blocks:lint output, Basics resolved in ContentBlockBuilder, override fields in ConfigBuilder |
| 2.2.4 | 21 April 2026 | Requires TYPO3 14.3 LTS |
| 2.3.0 | 23 April 2026 | Content Block as Site Set |
| 2.3.1 | 24 April 2026 | Ignore record restriction at root level and for single type records |
| 2.3.2 | 30 April 2026 | Schema existence check, fallback for packages without title |
| 2.3.3 | 30 April 2026 | Fixed Record Type Site Set restriction logic |
| 2.3.4 | 10 May 2026 | Ignore wizard item restriction on pages without a site |
| 2.3.5 | 20 May 2026 | Avoid toArray serialization in Record decorator |
| 2.4.0 | 26 May 2026 | CLI commands to generate frontend and backend previews, Site and Site Settings in backend preview templates, new Field Type SelectText, alias for field identifiers, automatic language keys for labelChecked/Unchecked and placeholder, hideInUid option for Record Types |
| 2.4.1 | 26 May 2026 | Automatically add allowedContentTypes to colPos restriction |
| 2.4.2 | 28 May 2026 | Cast type to string |
| 2.4.3 | 29 May 2026 | Lookup allowed record types recursively |
Version 1.x (TYPO3 v13)
| Version | Date | Highlights |
|---|---|---|
| 1.3.20 | 3 March 2026 | foreign_table_item_group option for Select, behaviour common property, XLF formatting cleanup |
| 1.4.0 | 13 March 2026 | JSON Schema validation (TYPO3 Budget Ideas 2026 Round 1) |
| 1.4.1 | 13 March 2026 | Removed required fields for cropVariants, JSON Schema fixes for cropVariants options |
| 1.4.2 | 13 March 2026 | Allow number type in valuePicker, useExistingField for type Pass |
| 1.4.3 | 16 March 2026 | Fixed JSON Schema for suggestOptions, documentation for minitems |
| 1.4.4 | 1 April 2026 | Allow exclude property in Field Type |
| 1.4.5 | 2 April 2026 | Do not put opacity into columnsOverrides |
| 1.4.6 | 17 April 2026 | Improved content-blocks:lint output, Basics resolved in ContentBlockBuilder, override fields in ConfigBuilder |
| 1.5.0 | 23 April 2026 | Content Block as Site Set |
| 1.5.1 | 24 April 2026 | Ignore record restriction for single type records |
| 1.5.2 | 30 April 2026 | Schema existence check, fallback for packages without title |
| 1.5.3 | 10 May 2026 | Ignore wizard item restriction on pages without a site |
| 1.5.4 | 20 May 2026 | Avoid toArray serialization in Record decorator |
| 1.6.0 | 26 May 2026 | CLI commands to generate frontend and backend previews, new Field Type SelectText, alias for field identifiers, automatic language keys for labelChecked/Unchecked and placeholder, hideInUid option for Record Types, restriction by Content Type |
What's Next?
The focus for the next quarter is bringing the Content Blocks GUI to TYPO3 v14 and stabilizing the first release based on the feedback from the camps and from everyone testing it. The JSON Schema and lint command will continue to grow as new options are added, so configuration validation stays complete. Together, the GUI and the linter should make Content Blocks easier to pick up for newcomers and more reliable for teams already running it in production.
You can find Content Blocks on GitHub and install it via Composer with
composer require friendsoftypo3/content-blocksThe documentation provides comprehensive guides for getting started and exploring advanced features.
Keep in Touch
Thank you for your great feedback so far! Please keep testing and sharing your thoughts with us. You can reach us in the #cig-structuredcontent channel on TYPO3 Slack, or join our calls on the first and third Monday of the month at 20:00 CET (19:00 UTC).