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

# Introduction {#introduction}

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

The extension provides a way to render forms built with the
[TYPO3 Form Framework](https://docs.typo3.org/c/typo3/cms-form/main/en-us/Index.html#start). It allows rendering of
generic forms, defined by a comprehensive TypoScript rendering definition.
This definition can be extended to a specific form to allow customizating the
output of various forms. In addition, the extension allows to modify the
build mechanisms of so called *view models*, which makes the whole concept
very dynamic and flexible.

## Features {#features}

-   **Form elements:** Support for all default form elements of EXT:form
-   **Generic rendering:** One TypoScript rendering definition for all forms
-   **Per-form overrides:** Dedicated templates and data structures for specific forms
-   **Extensibility:** Custom view model builders and content objects for custom
    form elements
-   **Fluid fallback:** Elements without a Handlebars template can be rendered with
    EXT:form's default Fluid partials
-   **Compatibility:** Compatible with TYPO3 13.4 LTS and 14.3 LTS

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

The extension hooks into EXT:form at two points:

1.  **Form renderer** – When a form is rendered on the frontend, EXT:form hands it over
    to this extension. Based on the TypoScript configuration at
    `plugin.tx_form.handlebarsForms`, a Handlebars template is selected
    for the form and rendered by EXT:handlebars.
1.  **Data processor** – Before the template is rendered, the [process-form](https://docs.typo3.org/permalink/cpsit/typo3-handlebars-forms:data-processor@main)
    data processor walks through all form elements and collects the data the template
    needs (IDs, names, labels, values, validation errors, …). *What* is collected is
    defined in TypoScript using dedicated `HBS_*` content objects. The
    result is a plain array that becomes the template's context.

In short: EXT:form keeps handling the form logic (validation, finishers, multi-step
navigation), TypoScript describes the data, and Handlebars takes care of the markup.

## 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-forms/issues](https://github.com/CPS-IT/handlebars-forms/issues)

## Security Policy {#security-policy}

Please read our [security policy](https://github.com/CPS-IT/handlebars-forms/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).
