TYPO3 is an extremely modular system that can be easily enhanced with custom extensions. All TYPO3 sites are built on top of the TYPO3 core, which contains the systems' fundamental functionality. Custom extensions interact with the core through the stable, clearly documented extension API. While the TYPO3 core does change in each new release, the interfaces between extensions and the core do not, ensuring easy updates and future-proof development.
The TYPO3 Extension Manager
TYPO3 relies on the TYPO3 extension manager - included in the TYPO3 core - for installing, activating, and deactivating extensions on a given TYPO3 installation. Extensions can be quickly imported and installed with just a couple clicks in the TYPO3 Admin Interface.
The Extension Builder helps you to build TYPO3 extensions based on the MVC framework Extbase and the Templating Engine Fluid. You can design your model with a graphic modeler and create Plugins or Backend modules.
All required files are generated and you will have a basic extension where you can insert your domain logic.
In contrary to the former kickstarter extension the extension builder has an edit mode that enables the continuous use during development. You can modify the auto-generated PHP classes (add new methods, modify the method bodies, add comments and annotations) and the extension builder preserves your changes, even if you then rename models or properties in the modeler.
Recent versions of TYPO3 CMS include a built-in Model-View-Controller (MVC) framework called Extbase, which allows developers to take advantage of this popular programming design pattern.
Extbase a nice Domain-Driven-Design (DDD) approach for persisting DB records, as well as an action-controller based structure, which can be used for dynamic plugins in any frontend page, as well as custom Backend modules in TYPO3 itself. In fact, most of the default backend modules run with Extbase.
Extbase is a backport of features from TYPO3 FLOW to TYPO3 CMS.
Fluid - TYPO3's next generation templating engine - is used for creating custom extension templates.
Fluid was created for TYPO3 Flow and has been backported to TYPO3 CMS.
Fluid's approach to creating templates emphasizes simplicity, flexibility, extensibility, and easy of use. The syntax is XML-based and can be extended in any Web IDE. With its ViewHelpers, Fluid can be extended by powerful functionality that fits custom web project needs.
Fluid is used with Extbase by default, and can be used standalone in other PHP functions and has its own TypoScript Content Object "FLUIDTEMPLATE".
Nearly every aspect of the TYPO3 backend is configurable and customizable. Backend interfaces can often be configured using TSConfig. Nearly all rendered HTML content can be configured using TypoScript, a declarative configuration language used throughout TYPO3 for controlling front-end output.