---
title: "Introduction"
manual: "Handlebars"
version: "main"
permalink: "https://docs.typo3.org/permalink/cpsit/typo3-handlebars:introduction@main"
source: "Introduction/Index.rst"
rendered: "2026-09-29T09:05:57+00:00"
---

# Introduction {#introduction}

## What does it do? {#what-it-does}

The extension provides a full rendering environment for Handlebars templates
within TYPO3 CMS. All [core features](https://handlebarsjs.com/guide/) of
Handlebars.js are supported by the usage of the third-party library
[PHP Handlebars](https://github.com/devtheorem/php-handlebars).

Its main use is to seamlessly integrate Handlebars templates into TYPO3 without
the need to modify these templates again for output in TYPO3. This makes it a
good fit for projects whose templates are developed in a frontend component
library such as [Fractal](https://fractal.build/) or
[Storybook](https://storybook.js.org/).

## How does it work? {#how-it-works}

Rendering is configured in TypoScript, in the same way as with
`FLUIDTEMPLATE`:

1.  A [HANDLEBARSTEMPLATE](https://docs.typo3.org/permalink/cpsit/typo3-handlebars:content-object@main) content object defines which
    template to render, e.g. for a content element.
1.  Its `variables` and `dataProcessing` configuration
    prepare the data passed to the template, using TYPO3's content objects
    and [data processors](https://docs.typo3.org/permalink/cpsit/typo3-handlebars:data-processors@main).
1.  The template name is resolved to a `.hbs` file within the
    configured [template paths](https://docs.typo3.org/permalink/cpsit/typo3-handlebars:template-paths@main).
1.  The template is compiled (and cached), rendered with the prepared
    variables and returned as output.

Extbase plugins can render Handlebars templates as well, see
[Extbase plugins](https://docs.typo3.org/permalink/cpsit/typo3-handlebars:extbase-plugin@main).

## Features {#features}

-   **Templating engine:** Full Handlebars rendering environment for TYPO3
-   **TypoScript integration:** `HANDLEBARSTEMPLATE` content object
    and additional data processors to prepare template variables
-   **Component libraries:** Fractal-compatible template names (`@name`,
    `@name--variant`)
-   **Layouts:** Layout inheritance with `extend`, `block`
    and `content` helpers
-   **Custom helpers:** Custom helpers with auto-registration via PHP attributes
-   **Extbase support:** Controller-based rendering via `HandlebarsView`
-   **Caching:** Integration with TYPO3's cache framework for compiled templates
-   **Extensibility:** PSR-14 events and replaceable services for all parts of
    the rendering pipeline
-   **Compatibility:** Compatible with TYPO3 13.4 LTS and 14.3 LTS

## Support {#support}

There are several ways to get support for this extension:

-   Slack: [https://typo3.slack.com/archives/C0281DBRFCZ](https://typo3.slack.com/archives/C0281DBRFCZ)
-   GitHub: [https://github.com/CPS-IT/handlebars/issues](https://github.com/CPS-IT/handlebars/issues)

## Security Policy {#security-policy}

Please read our [security policy](https://github.com/CPS-IT/handlebars/blob/main/SECURITY.md)
if you discover a security vulnerability in this extension.

## License {#license}

This extension is licensed under
[GNU General Public License 2.0 (or later)](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html).
