Skip to content

[6.x] Forms 2#15039

Draft
jasonvarga wants to merge 974 commits into
6.xfrom
forms-2
Draft

[6.x] Forms 2#15039
jasonvarga wants to merge 974 commits into
6.xfrom
forms-2

Conversation

@jasonvarga

@jasonvarga jasonvarga commented Jul 21, 2026

Copy link
Copy Markdown
Member

Forms 2 is a complete overhaul of Statamic's forms functionality, including (but certainly not limited to):

Forms Pro

Forms Pro is a paid first-party addon adding extra features on top of Core, like multi-page forms, visualisations, an Address fieldtype with autocomplete, and integrations with popular email marketing tools.

Some of these features live in cms, gated behind whether Forms Pro is installed. It also lifts the single form limit, so you can have more than one form without needing Statamic Pro.

Pricing and other details will be announced when everything is released. Hold tight!

Breaking changes

Because Forms 2.0 is being released in a minor release, we've done our best to avoid breaking changes, migrating what we can to new formats automatically:

  • Existing form blueprints are converted into the new format on the fly. They'll be moved into the form's YAML file (and the old blueprint deleted) the next time the form is saved.
  • Existing email configs are converted into email connections.
  • Non-form fieldtypes will continue to work but we recommend building form fieldtypes going forward.
  • $form->blueprint() still works. It's now generated using the form's fields.

The configure form fields permission has been removed in favour of finer grained permissions. However, it's still supported for roles currently using it.


Documentation: statamic/docs#1957

duncanmcclean and others added 25 commits July 15, 2026 08:54
This reverts commit 4290b17.
Co-authored-by: Duncan McClean <duncan@duncanmcclean.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
The immediate watcher run fired synchronously during setup, before #main was in the document, so the initial nav-open/nav-closed class was never applied. Any load where the stored state was "closed" left the nav visibly open while isOpen said closed, which made the form builder's nav.close emit a no-op.
The rules watcher was not deep, so push/unshift mutations (used when
adding a rule) never triggered it. The focusout-commit test only passed
on 6.x by accident, via an unconditionally-emitted live array reference
that later mutations happened to update in place.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Jason Varga <jason@pixelfear.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants