Plugin Roadmap 2022

April 18, 2022
by Ben Croker

With the release of Craft 4, we’re rolling out major version releases of all our plugins, including some big features in Blitz and Campaign. Our release schedule will fall into step with that of Craft CMS, as will our maintenance and support periods.

Plugin roadmap 2022

Our plugins have always maintained backwards compatibility as far back as possible, even while Craft 3 was released in April 2018 (4 years ago!). That allowed us to make them usable on a wide range of sites, but it also limited our ability to take advantage of the latest and greatest features shipped in Craft.

Craft 4 is currently in beta and will be released as stable on May the 4th, 2022, ushering in an era of annual release cycles, a modern codebase built on PHP 8 and a more unified editing experience throughout the control panel. PutYourLightsOn plugins will become compatible with Craft 4 from the day of its stable release, so you can update your sites as soon as you’re ready to. 

This site is already running Craft 4 in production, along with the latest versions of Blitz and Campaign!

Plugin Roadmap #

Our roadmap for plugins going forward is as follows.

  • Plugins get a major version update with each new major version of Craft, and can be used with an existing license (no extra fees for commercial plugins).
  • Plugins strictly follow semantic versioning.
  • New features are added to the latest major version of plugins only.
  • Bug fixes and support for previous versions of plugins are maintained as long as the Craft version they are compatible with is maintained.

In terms of what there is to get excited about, we have some features in our plugins that we think will make a big improvement to user experience.

Blitz 4 #

Blitz 4 introduces cache generators, a new refresh mode and more possibilities for caching non-HTML pages.

Cache Generators #

A major change in Blitz 4 is the concept of cache generation, which supersedes cache warming, and is used for generating, regenerating and in some cases removing cached pages. While the differences are rather technical, the result is more control around how the cache is (re)generated.

There are 2 generators to choose from: 

  • The HTTP Generator (previously the Guzzle Warmer) generates the cache by making concurrent HTTP requests to a controller action on the server. 
  • The Local Generator (previously the Local Warmer) generates the cache by running concurrent PHP processes directly on the server, so it doesn’t need to go out over the network.

Refresh Mode #

Blitz refresh mode

With the addition of generators, we were able to add a new Refresh Mode” setting that allows you to control when and how the cache is refreshed. The default behaviour is to clear the cache immediately and then regenerate it in a queue job. This is a good choice for when you have content editors who want to see their changes applied as soon as possible and when site content needs to remain fresh. 

If, however, you have a high traffic site and you want to protect your server from being bombarded by requests, then you can choose to expire the cache and regenerate it in a queue job. This has the advantage that your server will continue serving expired (stale) cached versions of pages until they are regenerated in the background (or organically, if you prefer). This pattern is commonly known as stale-while-revalidate and makes for very resilient sites that can deal with high amounts of visitor traffic.

Whether you clear the cache immediately or just mark it as expired, you can additionally choose whether to regenerate it in a queue job (similar to cache warming), or allow it to regenerate manually (via a cron job) or organically (when pages are visited). The latter will lead to the first page request being slower than subsequent requests, but will ultimately reduce the load on your web server.

Cache non-HTML Responses #

A new setting has been added that allows Blitz to cache non-HTML responses such as API endpoints and JSON responses from controller actions. When using this setting, it is important to use caution and ensure that you add any URI patterns that should be excluded from caching, such as GraphQL responses, XML sitemaps, etc.

View the full changelog and try out the Blitz beta today!

composer require putyourlightson/craft-blitz:^4.0.0-beta.1

Campaign 2 #

Campaign 2 brings autosaving drafts and revision support to its element types, a new Singular sendout type, anonymous tracking and many more features and improvements.

Drafts & Revisions #

Campaign drafts and revisions

Campaigns, contacts, mailing lists, segments and sendouts all take advantage of the new unified editing experience in Craft 4, meaning that they all support autosaving drafts and all work in element slideouts. Additionally, campaigns now have support for revisions, just like entries.

Singular Sendout Type #

A new Singular” sendout type has been added to the Pro edition, for sending campaigns to individual contacts without them having to be subscribed to mailing lists. This is useful when you want to send personalised campaigns to specific people.

Singular sendout type

Anonymous Tracking #

A new setting has been added to enable anonymous tracking of contact interactions, making it easier to comply with stricter privacy policies. In addition to this setting, there’s now a campaign/reports/anonymize console controller that anonymizes all previously collected personal data.

View the full changelog and try out the Campaign beta today!

composer require putyourlightson/craft-campaign:^2.0.0-beta.1