Skip to main navigation Skip to main content Skip to page footer

Extbase Backend Modules: From Registration to a Working Module

The TYPO3 Documentation Team has published the second chapter of its community-funded Extbase documentation work. Two example modules, one with and one without a page tree, show where a module gets its storage folder, TypoScript, and language.

Earlier this year, the TYPO3 Documentation Team rebuilt the Extbase documentation from the ground up. In the third round of community budget ideas for 2026, TYPO3 Association members voted to fund a second phase covering three topics developers keep asking about: translations and language overlays, backend modules, and AJAX and headless delivery. The translation chapter went live in October. Now the backend module chapter is online as well.

What Happens After Registration

The first phase of work covered how to register a backend module. The new chapter explains what happens after registration: how a module request reaches the controller, where its configuration comes from, and which pages and language it works with. It also co TYPO3 v14 change that is easy to miss: a module without a page tree now sees global TypoScript only.

Two Modules, Two Situations

The chapter builds two example modules, each for a different scenario:

  • A conference team's module without a page tree — The team keeps its conferences in one storage folder, so the module opens straight to a list of all conferences, with a search field, a filter, and pagination. The storage folder, the TypoScript, and the language all have to come from configuration.
  • A comment moderation module with a page tree — Visitors comment on conferences, and each site stores its comments in its own folder. A moderator selects a site or folder, and the module lists the comments there, ready to review and answer. The selected page supplies the storage folder, the site, and its languages.

The chapter also shows how a module can hand off creating, editing, and deleting records to the backend's own forms with a few Fluid links, so the backend takes care of permissions, history, and workspaces.

The Common Pitfalls page now covers a trap that's easy to run into with more than one module: a storage folder configured for all modules of an extension also overrides the page selected in the page tree.

Commands and Middlewares

Extbase repositories also work in CLI commands and middlewares, where no plugin or module configures them. A new chapter explains what Extbase does there by default, for example storing new records on page ID 0, and how a command or middleware tells it which storage folder and language to use.

What Comes Next

The last topic we'll document is AJAX and headless delivery: how Extbase controllers serve data to JavaScript and to frontends that are not rendered by Fluid. We'll report on it once it's online.

One Thing You Can Do

If an Extbase backend module has ever surprised you, tell us. Maybe it was a list that stayed empty, or a module that lost its configuration after an upgrade. Open an issue or a pull request. It might become the section that saves the next developer a day.

This work is a community budget idea funded by the TYPO3 Association on behalf of its members. Thank you for voting for it.