Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

 

Good things take time: 4.0.0 stable released

We’re proud to announce the arrival of SilverStripe 4! This stable release is our first Long Term Support (LTS) release, and is quickly gaining module support with over 200 compatible modules already.

Read post

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.

Download SilverStripe 4.0.0 now, and check our extensive upgrade guide.

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.

 Screenshot of Files page

Files view

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.

Screenshot of Campaign page

Campaign view

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! 

About the author
Ingo Schommer

Ingo joined SilverStripe with its 2.0 release, and has since become an integral member of the development team. He's from Germany, but admits that New Zealand beer is often quite tasty as well.

At SilverStripe, Ingo enjoys coming up with robust solutions for real business needs. He builds modern web applications, making sure they work well in browsers and mobile devices, not just on paper. As a core developer on SilverStripe's open source framework, he facilitates community involvement, and helps architect and implement core functionality. Ingo authored the first book about SilverStripe, and is still keen on keeping the documentation fresh.

Ingo graduated as Bachelor of Arts (Hons) in Media Production and has several years experience as a freelance PHP and Flash developer.

Away from the keyboard, Ingo is an avid gardener, debugging water flow and performance optimizing root growth instead of PHP.

Post your comment

Comments

No one has commented on this page yet.

RSS feed for comments on this page | RSS feed for all comments

Like what you have read?

Sign up for our weekly blog digest sent to your inbox.

Subscribe