We’re incredibly proud to announce that after seven alpha releases and four beta releases, SilverStripe 4.0.0 is stable and ready to use. Our first alpha was released in May 2016, followed by the first beta in July 2017. It’s been a long rewarding journey. This is our first major release with a Long Term Stability (LTS) commitment, and has been more predictable by clearly communicating the roadmap towards stable. This release receives full support until mid 2019, with security fixes through to mid 2021.
Better process and upgrade experience
A lot has changed since the 3.0 release in 2012: We’re more conscious about planning changes upfront (through RFCs), and making deliberate investments into foundational work like ReactJS or the improved versioning model. We’ve had more focus on the upgrade experience (through semantic versioning, an extensive upgrade guide, automated tools, code use warnings and a module standard). Our dear @unclecheese has also put in a lot of hours renewing the written content of the popular lessons for this release. Good things take time, but we hope you’re as excited as ourselves with the outcome!
We’re encouraged to see that many module authors have already made the jump to 4.x, with over 210 modules having a compatible (pre-)release. Overall, there’s been more and faster feedback cycles than during previous major releases: We’ve had many early adopters discussing on the SilverStripe Users Slack channel, and had more issues logged by the community on Github. There’s been an explicit focus on the CMS author experience, through the UX research panel, and inviting our Principal Designer Paul as the first non-technical core committer. The full-time teams behind SilverStripe core and supported modules are growing, and include more design and frontend developer capacity.
Features: Evolution > revolution
In terms of features, we’ve invested a lot into ReactJS in the CMS to pave the way for a richer and faster user experience. This has been an evolution rather than revolution, and we’ll see more effort going into this throughout 4.x and even the 5.x release line. Along the way, we’ve brushed up the looks of the CMS, made it responsive and based it’s CSS on a more maintainable Bootstrap solution. We’re dogfooding a more decoupled approach by using GraphQL in the CMS. There’s a lot of excitement in the community about this new way of writing APIs, and we’re hoping to see it used outside of the CMS context as well.
Working more closely with a wider range of clients, we’ve identified the need for a more comprehensive versioning solution which meets author and business expectations. We’ve moved beyond pages with the concept of ownership and cascading publication in object relations. Versioning also drove the need for a better filesystem abstraction, allowing a more integrated use of remote filesystems (check out the experimental AWS S3 module). The new (optional) campaigns user interface allows larger teams to manage and publish changes across multiple pages and other content elements in the CMS together. It surfaces a lot of under the hood changes around how we approach versioning.
Outlook: Decoupling and content blocks
Looking ahead, we’ll continue our drive to decouple and modularise SilverStripe core, and ensure it’s a good citizen in a broadening PHP ecosystem. Content blocks is already being used widely, and we’re recognising it as a shift in how content is managed. Expect better core support for the subsystems which contribute to the concept of “content blocks”. We’ve also started investigations in how to better deal with content variations like multivariate testing and personalisation, and where a CMS fits into this existing ecosystem of tools.
We’d like to thank all of you for making this open source product better, by pitching it to your clients, discussing features, reporting issues, and contributing your time and code. A particular thank you to the early adopters, some of which have been running production sites on SilverStripe 4 for months. You have really helped to keep the team on their toes, and ensure we produce a useful outcome. Thanks to all our partners and the wider developer network for sharing insights into your own needs, and those of your customers. Thanks also goes to the NZ Department of Internal Affairs and the Common Web Platform community who are supporting the upgrade of key modules to be compatible with SilverStripe 4. And thanks to YOU for sticking around and waiting patiently while we created this release - you rock!