---
title: "Creating a new extension"
manual: "TYPO3 Explained"
version: "11.5"
permalink: "https://docs.typo3.org/permalink/t3coreapi:extension-create-new@11.5"
source: "ExtensionArchitecture/HowTo/CreateNewExtension.rst"
rendered: "2026-10-21T15:30:00+00:00"
---

> [!WARNING]
> **Attention**
>
> TYPO3 v11 has reached end-of-life as of October 31th 2024 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 v11 here:
> [TYPO3 ELTS](https://typo3.com/services/extended-support-elts).

# Creating a new extension {#extension-create-new}

First choose a unique [Composer name](https://getcomposer.org/doc/04-schema.md#name)
for your extension. Additionally, an extension key is required.

If you plan to ever publish your extension in the TYPO3 Extension Repository
(TER), [register an extension key](https://docs.typo3.org/permalink/t3coreapi:extension-key@11.5).

## Kickstarting the extension {#kickstarting-the-extension}

There are different options to kickstart an extension. You can create it from
scratch or follow one of our [tutorials on kickstarting an
extension](https://docs.typo3.org/permalink/t3coreapi:extension-kickstart@11.5).

## Installing the newly created extension {#installing-the-newly-created-extension}

Starting with TYPO3 v11 it is no longer possible to install extensions in TYPO3
without using Composer in Composer-based installations.

However during development it is likely that you will want to test your extension locally
before publishing it.

During development, place the extension in a directory called,
`local_packages` in TYPO3s root directory. You can name is directory
however you choose.

Then edit your projects `composer.json` (The one in the TYPO3 root
directory, **not the one in the extension**) and add the following repository:

**composer.json**

```json
{
   "repositories": [
      {
         "type": "path",
         "url": "local_packages/*"
      }
   ]
}
```

After that you can install your extension via Composer:

```bash
composer req vendor/my-extension:"@dev"
```

> [!TIP]
> **Hint**
>
> Starting with TYPO3 v11.5 all extensions installed via Composer are
> automatically activated when they are installed. If you use an older
> version of TYPO3 you will have to
> activate the extension in **Admin Tools > Extension Manager**.

For legacy installations you can put the extension directly in the directory
`typo3conf/ext` and then **activate** it in
**Admin Tools > Extension Manager**.
