---
title: "Frontend plugin"
manual: "TYPO3 Explained"
version: "11.5"
permalink: "https://docs.typo3.org/permalink/t3coreapi:frontend-plugin@11.5"
source: "ExtensionArchitecture/HowTo/FrontendPlugin/Index.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).

# Frontend plugin {#frontend-plugin}

The term "frontend plugin" describes a part of a TYPO3 extension that is
handled like a content element (can be inserted like a record/element in
the TYPO3 backend by editors), which will deliver dynamic output when
rendered in the frontend. The distinction and boundaries to regular content
are sometimes not easy to draw, because also "regular" content elements
are often able to perform dynamic output (for example with TypoScript
configuration, Fluid data processors or ViewHelpers).

For a long time, TYPO3 provided a "General Plugin" to be selected as a
content element (setting the content record `CType` to `'list'`), and then the sub-type
would indicate which kind of frontend plugin to be used
(setting the content record `list_type`). It is recommended to only
use the `CType` based registration.

There are different technology choices to create frontend plugins in TYPO3.

For pure output it is often sufficient to use a
[FLUIDTEMPLATE](https://docs.typo3.org/m/typo3/reference-typoscript/11.5/en-us/ContentObjects/Fluidtemplate/Index.html#cobj-fluidtemplate) in combination with
[DataProcessors](https://docs.typo3.org/m/typo3/reference-typoscript/11.5/en-us/DataProcessing/Index.html#dataProcessing). See also
[Creating a custom content element](https://docs.typo3.org/permalink/t3coreapi:adding-your-own-content-elements@11.5).

For scenarios with user input and or complicated data operations consider
using [Extbase](https://docs.typo3.org/permalink/t3coreapi:extbase@11.5) (specifically
[Registration of frontend plugins](https://docs.typo3.org/permalink/t3coreapi:extbase-registration-of-frontend-plugins@11.5)).

Legacy frontend plugins without Extbase, so called "pi-based plugins" are based
on the [AbstractPlugin](https://docs.typo3.org/permalink/t3coreapi:abstractplugin@11.5). It is not recommended anymore
to use the AbstractPlugin as base for new frontend plugins. The Core does not
use it anymore and only few third party extensions still use it.

It is also possible to create a frontend plugin using Core functionality
only.

-   [AbstractPlugin](https://docs.typo3.org/permalink/t3coreapi:abstractplugin-1@11.5)
