Joomla 4.0 has been released to production
Traditionally and as a matter of good governance of complex software, no breaking changes are made after beta. Joomla 4 in beta, was using Bootstrap 4.x, and the product leadership team decided to break that norm by announcing that Joomla! 4.0 will ship with Bootstrap 5 in a News article on 22 January 2021. That was quite a decision. Lets explore it and explain why was the right one.
TL:DR It was the right decision and paves the way for Bootstrap to be kept current in Joomla going forward!
Bootstrap 5.0 release status
Bootstrap 5.0.0 was released in May 2021, which you can confirm from their release page on GitHub.
Joomla 4.0 release status
Joomla! 4.0 was released in August 2021 meeting the goal set in the project roadmap.
Joomla! 5.0 is planned to include Bootstrap 5.3, the latest release of Bootstrap at the time of its finalisation.
What is new in Bootstrap 5.0
Bootstrap 5 is quite an update to the Bootstrap framework. Bootstrap 5 no longer depends on jQuery and drops support completely for Internet Explorer in the name of performance, fewer dependencies, and better API's for developers.
- No support for Internet Explorer — Support for Internet Explorer formally ended in November 2020. It is out of scope.
- No dependency on jQuery — This is "one of the largest changes to the framework in years and means projects built on Bootstrap 5 will be significantly lighter on file size and page load moving forward." Joomla 4 will still ship with an official version of jQuery though, for those that need it.
- New Buttons — HTML and CSS only approach to toggle states. Now toggle buttons are powered by checkboxes and radio buttons and are much more reliable.
- CSS custom properties — In a handful of components and layout options in 5.0 with more usage expected in components like buttons in the near future.
- Customisation — Themes, customisation and extension of Bootstrap, global options, a colour system and more.
- New Forms — Form control stykes, layout options and custom components overhauled with a custom appearance to unify style and behaviours across OS and browser.
- New Utilities API — Aimed at those who build on Bootstrap via the source files. Necessitates some former utilities be reassigned as "helpers".
Considerations for Joomla and the community regarding Bootstrap 5.0 for Joomla 4.0
Not fumbling the Bootstrap ball
Not becoming a death march project
Joomla 4.0 has been in gestation for years. It needs to ship as stable production software. The only way to ship software is to stop adding features, and to focus on quality and performance of what you have. Optimistic scheduling of major feature changes can cause drops in quality and burn out in development teams. The convention is that once you enter beta there will be no more changes, just fixes to what you have. Making a change like this, no matter how much you might wish for it to be easy, carries technical risk. Technical risk implies slipping timescales. And, the Bootstrap framework is in beta itself, so the risk was that the Joomla project would be a hostage to the dependency of Bootstrap 5.0 making a stable production release. As it happens Bootstrap 5.0 is released and so is Joomla 4.0 so this is no longer a risk.
Needs to carry the community with the decision
It is one thing to make a decision for all the right reasons. It is quite another to carry the community along and gain their support. The discussion on GitHub Replace Bootstrap 4 with Bootstrap 5 #31765 was lively.
The default front and back end templates must be well documented examples of Bootstrap 5.0
The first experience with a CMS like Joomla counts. Lots and lots of internal project and client proof of concept sites are based on the template that ships with Joomla. So a major effort needs to be undertaken to make the Cassiopeia and Atul templates shine, and to fully document them. Joomla's documentation is woefully out of date in places. We can all help here and I've made it a 2021 goal for me to do more to help. Hopefully, in the spirit of the templates exemplifying best practice, there will be no jQuery requirement in the official templates.
Internet Explorer is dead, but "enterprises"
Some enterprise customers, particularly in government, healthcare and education will have huge issues decomissioning Internet Explorer from their Windows based computers now that it is no longer supported, and this may be a pressure for keeping it alive in your projects. Resist it. It surely is not your issue. To me, no longer supported means that there is no longer a requirement for anyone to test with it at all. It is simply out of scope.
Developers and the technically minded know that Internet Explorer is dead. A draft obituary appeared in the article The perils of using Internet Explorer as your default browser. Support formally ended in November 2020 and Microsoft Teams stopped supporting it at that point. There is no development of features for Internet Explorer going on and Joomla 4 will not be able to support Internet Explorer, by virtue of the decision to use Bootstrap 5 which does not support Internet Explorer.
Clients, or perhaps senior managers might pressure people to support Internet Explorer. That is understandable for people who may not be well versed in current browser technologies. Refer them to information to support the collapse in market share of Internet Explorer and point out that it will effectively be moot when the remaining Office 365 applications end support in August 2021, just in time for the release of Joomla 4.
Joomla must ship stable software, based on stable frameworks
To my mind, it is quite OK to have a beta release with a beta framework and even at this late stage to make this change. The decision has long term implications and I support it. It would not be OK to me though to say that a stable production release of Joomla can be made with a beta level framework underpinning it. Fortunately Bootstrap 5.0 is in production so the production department did not have to wrestle with potentially shipping with a tested beta release. I may be an old fashioned product manager, and I am certainly old, and have been managing complex software for decades, but this just isn't something I could have supported. I realise it is entirely the decision of the production department in the Joomla project, but If they ended up having to do it, for whatever reason, I would have had to wait until Bootstrap 5 was released as stable and for the inevitable Joomla point release after that before deploying any Joomla 4 sites for clients to production. As it happens this is no longer relevant because Bootstrap 5.0 is in production and so is Joomla 4.
Conclusions — Joomla 4 seized the moment, Joomla 5 will be better for it!
I had been backlogging features for clients with the tags like 'requires Joomla4' for at least two years. All those backlogged items could now be prioritised and cleared. I fully endorsed the Bootstrap 5 decision as it set up the Joomla project with a more workable alignmment between the releases of the best open source CMS and the most popular HTML, CSS, and JS library in the world.