---
title: "Extension development"
manual: "TYPO3 Explained"
version: "12.4"
permalink: "https://docs.typo3.org/permalink/t3coreapi:extension-development@12.4"
source: "ExtensionArchitecture/Index.rst"
rendered: "2026-10-21T15:29:37+00:00"
---

> [!WARNING]
> **Attention**
>
> TYPO3 v12 has reached end-of-life as of April 30th 2026 and
> is no longer being maintained. Use the version switcher on the top
> left of this page to select documentation for a supported version of TYPO3.
>
> Need more time before upgrading?
> You can purchase Extended Long Term Support (ELTS) for TYPO3 v12 here:
> [TYPO3 ELTS](https://typo3.com/services/extended-support-elts).

<a id="extension-architecture"></a>

# Extension development {#extension-development}

**[Concepts](https://docs.typo3.org/permalink/t3coreapi:extension-concepts@12.4)**

Learn about the concept of extensions
in TYPO3, the difference between system extensions and local
extensions. Learn about Extbase as an MVC basis for extension
development.

**[File structure](https://docs.typo3.org/permalink/t3coreapi:extension-files-locations@12.4)**

Lists reserved file and directory names within an extension. Also
lists file names that are used in a certain way by convention.

This chapter should also help you to find your way around in
extensions and sitepackages that were automatically generated or
that you downloaded as an example.

**[Site package](https://docs.typo3.org/permalink/t3coreapi:site-package@12.4)**

A site package is a custom TYPO3 extension that contains files regarding the
theme of a site.

**[Extension kickstarters](https://docs.typo3.org/permalink/t3coreapi:extension-concepts@12.4)**

Learn about tools that help you to create a new Extension or add
functionality to an existing extension.

**[Howto](https://docs.typo3.org/permalink/t3coreapi:extension-howto@12.4)**

Helps you kickstart your own extension or sitepackage. Explains how
to publish an extension. Contains howto for different situations
like creating a frontend plugin, a backend module or to extend
existing TCA.

**[Extbase](https://docs.typo3.org/permalink/t3coreapi:extbase@12.4)**

Extbase is an extension framework to create TYPO3 frontend plugins
and TYPO3 backend modules.

**[Best practises and conventions](https://docs.typo3.org/permalink/t3coreapi:extension-best-practises@12.4)**

Explains how to pick an extensions key, how things should be named
and how to best use configuration files
([ext_localconf.php](https://docs.typo3.org/permalink/t3coreapi:ext-localconf-php@12.4) and
[ext_tables.php](https://docs.typo3.org/permalink/t3coreapi:ext-tables-php@12.4))

**[Tutorials](https://docs.typo3.org/permalink/t3coreapi:extension-tutorials@12.4)**

Contains tutorials on extension development in TYPO3.
