Since the plan is to include the GrapeJS builders as optional in 3.3, we need a way to hide templates specifically designed for GrapeJS that won’t be compatible with the legacy builder. This is why I will bring over the ability to filter templates based on the builder enabled. The question is, do we want all legacy templates to be available to GrapeJS or only those specifically designed for GrapeJs for the most optimal GrapeJs experience?
Option 1: Templates tell Mautic what builder(s) they are compatible with
Option 2: The builder tells Mautic what templates it is compatible with
Each builder will tell Mautic what it is known by (likely the integration name since the GrapeJs plugin is already developed this way).
Mautic simply reads a parameter in the template’s config which tells it which builders it is compatible with and only the applicable themes/templates become visible to the UI based on which builder is enabled (default legacy).
In addition to option 1, Mautic will have to “consult” the builder to know if it supports templates other than its own (eg. grapejs + legacy).
Pros and cons
Cleaner implementation and less overhead for builder developers
User gets the best experience out of the box as GrapeJs templates will work best with GrapeJs where legacy templates will work best with the legacy builder.
It will still be possible for users to simply modify their template’s configs to make them available to any builder of course with the caveat that they are not guaranteed compatible
Legacy templates (included or custom) will not be available to GrapeJS out of the box
Those not comfortable with mucking around with template config files may have to learn to do so
The builder/developer can choose what templates it supports so we can show all legacy templates by default when GrapeJS is included.
Could still be implemented later as an enhancement.
More code for the builder developer to implement to tell Mautic what templates it supports.
Larger effort to write necessary code into core to support this.
We have decided to go with Option 1 🎉