---
title: "Best practices"
manual: "TYPO3 Explained"
version: "11.5"
permalink: "https://docs.typo3.org/permalink/t3coreapi:best-practices@11.5"
source: "ApiOverview/ContentElements/BestPractices.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).

# Best practices {#best-practices}

Following are some good practices for creating custom content element types and
plugins and for customizing content elements for usage in the backend.

-   Use a sitepackage extension to maintain your site customization (such as
    backend layouts, custom content elements etc.)
-   How you structure your extensions depends a little on the use case and if
    they will be reused in several projects and / or made public. If you create one
    extension for every custom content element, you may want to think about
    whether they might be merged into one extension.
-   Do not use deprecated functionality. Read the [Core Changelog](https://docs.typo3.org/c/typo3/cms-core/main/en-us/Index.html)
    to check for deprecations and breaking changes between TYPO3 versions.
-   Some naming conventions are described in the chapter [Naming conventions](https://docs.typo3.org/permalink/t3coreapi:extension-naming@11.5).
-   Read (or skim) the [Coding guidelines](https://docs.typo3.org/permalink/t3coreapi:cgl@11.5).
-   Make it easier for your editors by hiding the following by
    [configuration](https://docs.typo3.org/permalink/t3coreapi:cepluginscustomize@11.5)

    -   content elements that should not be used in the "Content Element Wizard"
    -   fields that should not be filled out in the backend forms.
