diff --git a/development/components/form/_index.md b/development/components/form/_index.md
index 9a089bc936..e3f68e5389 100644
--- a/development/components/form/_index.md
+++ b/development/components/form/_index.md
@@ -1,8 +1,276 @@
---
-title: The Form component
+title: Forms with Symfony
menuTitle: Form
+useMermaid: true
---
-# The Form component
+# Forms with Symfony
-{{% children /%}}
+## Introduction
+
+Symfony's `Forms` system separates the construction, rendering, and processing of forms. This involves multiple key concepts, including form creation, data provision, validation, data persistence from submitted forms, and form rendering.
+
+- [`Controllers`](#controllers) - Handles all logic for the `Form`
+- [`FormBuilder`](#form-builder) - Builds the `Form`, and provide data to the `Form`
+ - [`FormDataProvider`](#form-data-provider) - Provides data to the `Form`
+- [`Form`](#form-types) - Defines the `Form` and its content
+- [`Form Theme`](#form-theme) - Allows to customise the style of the `Form`
+- `Form Templates` - Allows to render the `Form` with `Twig`
+- [`FormHandler`](#form-handler) - Handles the submited `Form`, provides data to the `FormDataHandler`, and handles `FormHandlerResult`
+ - [`FormDataHandler`](#form-handler) - Persists the data to `Database`
+
+
+graph
+ AA(Http Request)-.->A
+ subgraph Core
+ subgraph Admin Theme
+ K(Form Theme)
+ end
+ subgraph Render form
+ A(Controller)-->O(FormBuilder)
+ O-->|1|M(FormDataProvider)
+ M-->|2|O
+ O-->|3|P(Form)
+ P-->F(Rendered Form)
+ K-->F
+ A-->Q(Form Templates)
+ Q-->F
+ end
+ subgraph Handle form
+ F -- Submit -->G(Controller)
+ G-->H(FormHandler)
+ H-->|Persist|Z(FormDataHandler)
+ end
+ end
+ G-.->ZZ(Redirect)
+ style F fill:#f9f,stroke:#333,stroke-width:2px
+ style Core fill:#fbfbea
+
+
+### Controllers
+
+`Controllers` in the back office receive HTTP requests. When handling requests for creating or editing an entity, they instantiate and utilize several concepts.
+
+### FormBuilder
+
+In most scenarios, the Controller initially instantiates the FormBuilder. This component constructs the necessary Form, incorporating all Form Types. It also retrieves data from the FormDataProvider, ensuring that the form is populated with the appropriate data.
+The `FormBuilder` will build the required `Form` with all `Form Types`, and retrieve data from the `FormDataProvider`.
+
+### FormDataProvider
+
+The FormDataProvider is responsible for retrieving data from the Database. This data is used to populate the form when editing an existing entity. Additionally, it provides default values for the form fields, both when creating a new entity and when editing an existing one.
+
+### Form Types
+
+Developers have access to a wide range of field types ([see Symfony types](https://symfony.com/doc/4.4/reference/forms/types.html)) that come from the Symfony framework. Additionally, PrestaShop enhances this selection with its own reusable field types.
+
+A complete reference of PrestaShop form types can be found [here]({{< relref "/8/development/components/form/types-reference">}}).
+
+### FormHandler
+
+The `FormHandler` is responsible of:
+
+- extracting the form data,
+- triggering the `actionBeforeCreateFormHandler`, `actionBeforeUpdateFormHandler`, `actionAfterCreateFormHandler` and `actionAfterUpdateFormHandler` hooks
+- calling the `FormDataHandler`
+- returning a `FormHandlerResult`
+
+### FormDataHandler
+
+The `FormDataHandler` is tasked with persisting data to the Database. It accomplishes this by dispatching a CQRS command to the command bus, ensuring efficient and effective data handling.
+
+{{% notice note %}}
+This page focuses on migrated Forms utilizing Symfony and the CQRS pattern.
+
+It's important to note that data can be persisted in several ways, including: [Doctrine entities]({{}}), using [ObjectModel entities]({{}}), or using [CQRS concepts]({{}}).
+{{% /notice %}}
+
+### Form Theme
+
+To render forms in a clean and user-friendly way, PrestaShop extended Symfony's [Bootstrap 4 Form Theme][sf-bootstrap4-form-theme] to create **PrestaShop UI Kit Form theme**. Learn more on [Symfony Form theme for PrestaShop]({{< relref "/8/development/components/form/form-theme/form-theme">}})
+
+## Customize forms by modules
+
+### Concepts
+
+- `FormModifier`: This component is used to modify the Form, primarily for module integration.
+- `FormModifier` hook_: Connects the FormModifier to the form, enabling modifications.
+- `FormDataProviderData` hook: Facilitates the provision of specific data to the form.
+- `FormDataProviderDefaultData` hook: Used for supplying default data to the form.
+- `FormHandler hook`: Allows the module to handle the form and its data effectively.
+
+
+graph
+ AA(Http Request)-.->A
+ subgraph Core
+ subgraph Admin Theme
+ K(Form Theme)
+ end
+ subgraph Render Form
+ A(Controller)-->O(FormBuilder)
+ O-->|1|M(FormDataProvider)
+ M-->|2|O
+ O-->|3|P(Form)
+ P-->F(Rendered Form)
+ K-->F
+ A-->Q(Form Templates)
+ Q-->F
+ end
+ subgraph Handle Form
+ F -- Submit -->G(Controller)
+ G-->H(FormHandler)
+ H-->|"Persist"|Z(FormDataHandler)
+ end
+ end
+ subgraph Module
+ I(FormModifier) -->S(FormModifier hook)
+ S -.-> O
+ H -.-> J(FormHandler hooks)
+ T(FormDataProviderDefaultData hook) -.-> M
+ U(FormDataProviderData hook) -.-> M
+ end
+ G-.->ZZ(Redirect)
+ style F fill:#f9f,stroke:#333,stroke-width:2px
+ style Module fill:#dcedfc
+ style Core fill:#fbfbea
+
+
+### FormModifier
+
+A `FormModifier` (also known as `FormBuilderModifier`) allows you to alter the contents of a Form. It is particularly useful within modules, allowing developers to add, modify, or remove elements from the form as required.
+
+It's been implemented in an example module: [DemoProductForm2](https://github.com/PrestaShop/example-modules/blob/master/demoproductform2/src/Form/Modifier/ProductFormModifier.php).
+
+```php
+namespace PrestaShop\Module\DemoProductForm\Form\Modifier;
+[...]
+
+final class ProductFormModifier
+{
+ public function __construct(
+ private readonly TranslatorInterface $translator,
+ private readonly FormBuilderModifier $formBuilderModifier
+ ) {
+ }
+
+ public function modify(
+ ?ProductId $productId,
+ FormBuilderInterface $productFormBuilder
+ ): void {
+ [...]
+ }
+```
+
+```yml
+services:
+ PrestaShop\Module\DemoProductForm\Form\Modifier\ProductFormModifier:
+ autowire: true
+ public: true
+ arguments:
+ $formBuilderModifier: '@form.form_builder_modifier'
+```
+
+#### FormModifier hook
+
+A `FormModifier` by itself will not affect a `Form` unless it is properly hooked. To ensure functionality, the `FormModifier` must be linked by implementing the [action