Extbase Documentation Overhaul Complete

Anja Leichsenring reports on the final chapters delivered in this community-funded rewrite of the Extbase documentation.
Overhauling documentation is like repaving the road while the traffic keeps moving. This rewrite was delivered in stages over three months so the community could keep using the docs while it took shape. It started as an idea: Extbase Documentation Overhaul: Modern Best Practices for TYPO3 v14 and we are grateful that TYPO3 Association members voted to fund this work.
My first status report covered the refreshed Quick Start and concepts sections; my second report introduced the long-awaited Routing chapter. Today, the promised scope of the overhaul has been delivered — the rebuilt Extbase: Extension framework in TYPO3 documentation is online and covers the ground it set out to.
What Was Delivered
The rebuilt manual now walks a developer the whole way — from what Extbase is and when to reach for it, through the domain layer, controllers, views, plugin and backend-module registration, routing, validation, persistence, caching and configuration.
It reads in order, each chapter building on the last, with small focused examples rather than one giant sample extension.
The old Extbase chapter — outdated, unstructured, and written for no one in particular — has been retired. Everything still worth keeping was carried across into the new structure, and the pages that pointed to the old chapter now link to the new one.
The Last Pieces to Land
Since my last report, the remaining planned chapters have all arrived:
- Persistence — Building queries, how relations really work behind the scenes, lazy loading and the N+1 trap, and the single most-asked Extbase question of all: Why does
findAll()return nothing? The storagePid resolution chain finally has one place that explains it end to end. - Caching — Carrying the message worth repeating early: switch off the cache, and performance becomes your responsibility. It covers non-cacheable actions, cache tags, automatic clearing, and how to keep a non-cached plugin fast anyway.
- The Domain chapter gained the topics that were still living in the old tree — data transfer objects, the property-type reference, and the object hydration lifecycle.
Documentation Is Never Finished
The planned work is delivered, but good documentation keeps growing — and it grows best when it reflects real-world pain. So I have the same ask as always: if Extbase has ever surprised you — a relation that would not save, a stubborn cHash that keeps breaking your URLs, a query that returns nothing — tell us. Open an issue or a pull request, and it might become an entry on the list of common pitfalls that saves the next developer a day of work.
Thank You
This overhaul was funded by the TYPO3 Association on behalf of its members.
Thank you for voting for it.
This work exists because TYPO3 Association members voted for it in the second round of community budget ideas for 2026. That vote funded a rebuild of one of the framework's most-used — and most-complained-about — chapters. I hope it repays the confidence.