Formidable is the new solution to manage Forms with Jahia. It will fully replace Jahia Forms. It is currently in development.
Formidable is based on Jahia standard technologies:
- Forms, steps, fieldsets and fields are regular content items
- Rendering / views use JavaScript modules, built in React / TSX
- Actions are declared in Java / OSGi, as per any other action inside Jahia
- The editor extension (custom selectors, form results admin) uses Module Federation via
@jahia/vite-federation-plugin
- Jahia 8.2.2+
- JavaScript modules 1.2.0+
- jContent 3.6+
- CND module ownership - where JCR types and mixins belong, and how to choose between
formidable-elementsandformidable-engine - Form submission flow - request lifecycle, pipeline steps, and server-side safeguards
- CAPTCHA server-side validation - provider verification endpoints and token handling
- How to create a form action - step-by-step guide for implementing a custom
FormActionOSGi service - How to extend views and elements from a third-party module - rendering contract for external container views and custom form elements
- Save to JCR - how submissions and uploaded files are stored in JCR
- Results permissions - per-form access control for submission results (
fmdb-results-readerrole) - Export - multi-format export architecture (CSV, JSON) with date range filtering
- Styling a form - class hooks, CSS variables and edit-mode cues for template sets and custom CSS
- Custom validation - inline validation messages replacing native browser tooltips, with per-field contributor overrides
- Conditional logic field resolution - weakref-based model for conditional logic dependencies
- Error codes - server-side error codes returned on form submission failure
- Dependency decisions - rationale for embedded vs. provided dependencies in Java modules
Alpha version is targeted for June 2026. It will include the ability to:
- Create forms, with multi-step support, fieldsets, and 12 field types:
- Text input (with optional pattern, mask, datalist)
- Textarea (with resize, spellcheck, autocomplete options)
- Email (with pattern, datalist, multiple recipients)
- Select (dropdown, with multiple selection and size options)
- Checkbox (single or group)
- Radio (single or group)
- Date (with min/max/step)
- Datetime-local (with min/max/step)
- File upload (with MIME type filtering, multiple files, image/video/PDF support)
- Color
- Hidden
- Rich text (embeddable HTML content block)
- Create form references (reuse an existing form via weak reference)
- Conditional logic (show/hide fields based on other field values, using weakref-based dependency resolution)
- 4 built-in form actions:
- Save to JCR (persists submissions and uploaded files under
formidable-results/) - Send email notification (with
${fieldName}interpolation in subject and body) - Send email content (sends the full submission by email, with optional file attachments)
- Forward to external endpoint (multipart/form-data POST to operator-configured targets)
- Save to JCR (persists submissions and uploaded files under
- CAPTCHA support (tested with Google reCAPTCHA, Cloudflare Turnstile and hCaptcha)
- Require authenticated user (reject anonymous submissions server-side)
- Server-side submission validation (field constraints, allowed MIME types, choice value allowlists, cross-origin request checks)
- Form results admin panel in jContent (only for forms using the Save to JCR action):
- Browse saved submissions per form
- Detail panel with metadata, field values, file cards with thumbnails and preview
- Keyboard navigation (arrow keys)
- Multi-format export (CSV, JSON) with date range filtering
- Per-form access control via
fmdb-results-readerrole (results are private by default) - Submission deletion (admin-only in v1)
- Custom CSS injection per form (see Styling a form for the class hooks and CSS variables)
- Extension points:
- Create your own action (implement
FormActionOSGi service viaorg.jahia.modules.formidable.engine.api) - Overwrite the view for a field type
- Create a new field type (CND + server view + optional client Island)
- Create your own action (implement
- 2 modules:
- formidable-elements — provides the fields, form structure and rendering views
- formidable-engine — provides the action framework (Java/OSGi), CAPTCHA verification, editor extensions (custom selectors, form results panel)
- When selecting a field, users don't know what it will look like. This pain point will be addressed globally inside Jahia in 2026.
- Forms are currently built using jContent list or structured view. There is no support for Page Builder / visual building. This issue should be resolved over the summer.