The concept of TYPO3 extensions

TYPO3 CMS is built entirely on extensions. Even the Core consists of modular "system extensions" — some mandatory, others optional.

Thousands of additional extensions are available via the TYPO3 Extension Repository (TER), with many more hosted on platforms like GitHub.

For Composer-based setups, TYPO3 can also pull in any PHP package from Packagist.

Thanks to its robust Extension API, TYPO3 can be extended in virtually any direction without compromising backward compatibility.

Notable system extensions

TYPO3’s core functionality is delivered through system extensions.

System extensions have the Composer type typo3-cms-framework

In classic mode installations you can find them in directory typo3/sysext.

Below are the most important ones and what they provide:

typo3/cms-core
Defines essential database tables (e.g., BE users, groups, pages, sys_*) and default global configuration (core/Configuration/DefaultConfiguration.php). It also provides a large set of foundational PHP classes.
typo3/cms-backend
Powers the TYPO3 backend interface, including controllers, PHP classes, and Fluid templates needed to operate the admin environment.
typo3/cms-frontend
Handles frontend rendering. Key components include content object classes in frontend/Classes/ContentObject, which manage output for different content types.
typo3/cms-extbase
TYPO3’s MVC framework. Provides structure for extensions. Works alongside Fluid, which handles the "View" layer.
typo3/cms-fluid
A standalone templating engine and the "View" in TYPO3's MVC. This extension includes templating logic and many ViewHelpers (fluid/Classes/ViewHelpers) to build flexible and reusable templates.
typo3/cms-install
Contains the Install Tool, used for system setup, upgrades, and configuration.

You can use the get.typo3.or Composer helper to compile composer command for minimal, recommended and full TYPO2 installations

Scope of extensions: System, third-party or custom

The files for an extension are installed into a folder named vendor/ by Composer. See also vendor/.

In Classic mode installations they are found in typo3/sysext/ (system extensions) or typo3conf/ext/ (third-party and custom extensions).

Third-party and custom extensions

Third-party and custom extensions must have the Composer type typo3-cms-extension:

EXT:my_extension/composer.json`
{
    "name": "myvendor/my-extension",
    "type": "typo3-cms-extension",
    "...": "..."
}
Copied!

The extension will be installed in the directory vendor/ by Composer. Custom extension like sitepackages or specialized extensions used only in one project can be kept under version control in a directory like packages/. They are then symlinked into vendor/ by Composer.

In Classic mode installations third-party extensions are installed into typo3conf/ext/. Custom extensions can be kept in a directory outside of the project root and symlinked into typo3conf/ext/ or manually inserted in this directory.

System extensions

System extensions have the Composer type typo3-cms-framework:

EXT:core/composer.json`
{
    "name": "typo3/cms-core",
    "type": "typo3-cms-framework",
    "...": "..."
}
Copied!

Composer installs all TYPO3 extensions, including system extensions in the directory vendor/.

In Classic mode installations they are installed into typo3/sysext/.