I have been a Joomla User since version 1.5 back in 2008. I remember some pain migrating from Joomla! v1.x to Joomla! v2.x. I don't remember much pain at v2.x to 3.x. Things seemed to be much smoother in those later versions.
No migration can be assumed to run 100% perfectly, and v3.x to v4. welcomes a lot of change, structural as well as functional, so best to be prepared I thought. A while back (perhaps 6 weeks) I therefore dedicated some of my Sunday recreational (!) time to looking at what V4 might bring. Hey, I can't go sailing at the moment so I needed a 'fun' way to spend some of my spare time!
I have quite a few Joomla! sites and the only way to get ahead of the curve is to experiment, and even use my own site (locally on localhost: to start with), so I know what myself and my clients are in for and go go forward with confidence. I decided to try a few approaches to see what worked and what did not. At this stage of course the release is in beta and there are still bugs and functions to finish so there are bound to be problems, but on the whole it is proving an interesting experience - and first off what a great new admin layout and what a great default template in Cassiopeia. My intended approaches included:
- Build an out of the box J!4 default site with default template just for experimentation.
- Upgrade my own site to version 3.9 (the compatibility version) and see what problems that threw up.
- Upgrade that V3.9 site to V4.0 if possible even if it meant some things had to be culled temporarily.
- Take the default build and add in content and extensions until I get back to my own site in some manner but with a fully compatible bottom up build. Perhaps throw in some migration tools for the database to help with my time here.
I initially viewed options 2 and 3 as 'top down' i.e., a way for migrating through a natural progression without loss of function or content, and without major disruption and effort, and the best way to go in the future.
Every site might be viewed as unique - size, complexity, users, content etc. You might be considering one or two sites or you might have many to support and therefore need to get a handle on your approach soon. There is plenty of time to plan ahead as V3.x will be supported for some time. Whatever approach you decide to take my personal recommendation would be to download a V4 build and experiment. Find out what it might mean for you and give yourself time to plan the migration(s). They may be hassle free, but they may not. You are going to need to test locally before going live and going to need to be certain your migration route will work before leaving anything to chance.
Hey - I like a risk, within quantified reason! As you will see if you read on below, I have taken a leaf out of Brian Teeman's 'book' (Brian was a co-founder of Joomla) and despite all the advice about not using J4 on a live site I am going for it - after extensive trails and tests of my own. Yes, there are some risks from potential vulnerabilities, and I am taking a concious decision to live with those, but I feel I will certainly learn a lot more from going live in this way and it can only benefit my clients down the line, as well as aid my effort in migrating all of my Joomla! sites in the future.
So, what I have learned (so far)?
This is so main stream now that I am putting my comments on accessibility first. This was far from the situation 10 or even 5 years ago. I am delighted Joomla! has made significant improvements in this area.
For over 10 years I have been offering well structured html, titles on links etc, alt descriptions on images. It is amazing this is still not the norm! In addition I have developed my own little widget, which I have been using for those 10 years, to provide text resizing (up and down) and an alternative contrast colour scheme for all websites I build. OK, I have lost a little bit of a USP but I am really pleased these features (and more) are placed in Joomla by default. Just click on the little wheelchair icon bottom left of the screen to see what is on offer out of the box. I think this will give Joomla! a little edge as so many sites still do not offer anything at all by way of accessibility, even in this day and age and with legilsation to back it up.
Interesting - I did not use that particular icon in my own widget as it seems to have connotations with a sub-set of disabilities when in fact there are many disabilities we need to cater for, most of which have nothing to do with wheelchairs! I guess it is just on of those universally accepted icons - a but like the hamburger icon has become for menus.
In checking my own J4 site I ran some accessibility checks in Chrome. I found some issues with colour contrast. In resolving these I discovered some new tools and techniques which I will write about in a future blog. Using these I managed to resolve all of the highlighted issues with some very simple changes.
V4 out of the box
Fabulous, great template, fast to install and fast to load. Lovely admin interface (throw off your expectations from the past interface - its a whole new layout so takes a small amount of time to get used to). OK, as expected at this stage there are a few bugs which are a small inconvenience and niggle, not more than that. It's a great leap forward with flexible grid layouts, Bootstrap 5 and a responsive mobile first build from the start. Well done to everyone involved, a great development. I am absolutely positive about V4. Thank you.
Upgrade to V3.9 and then to V4
Using my own site (this one) as the starter and upgrading to V3.9 was trivial. One of the problems I encountered was that as the site has developed over 13 years from J!1.5 there was a lot of baggage on a small site and the upgrade route to 4.0 was blocked by some extensions not yet being ready and some other miscellaneous problems. The reporting tool on V4 readiness seems thorough and really useful, but even removing some of these problem areas seemed to create its own problems. I tried several times but had limited success going to V4 - the site either did not work or partially worked. Even where extensions had V4 compatibility the baggage from years of upgrades seemed to create problems. While I can see this route will get sorted as extension problems get resolved, I can see there being some residual issues and this not being an easy ride (at the moment, I am sure it will improve over time). I gave up on this route after a few weekends as it was consuming a lot of time and effort.
For my bigger sites I am going to need this route so I will revisit this approach as time progresses.
Bottom up build
The experience from the other approaches helped me decide that at this early stage I could only get to a relatively robust outcome by building afresh from the bottom up. This has actually proved massively beneficial:
- I get to look at every extension and decide step by step whether they are working or not and indeed whether I still need them. I found out which of my 'must have' extensions (see my Joomla! journey for some recommendations from me). This was a great audit with some easy decisions.
- I got to look at all my content again (it's a small site) and review and update it - never a bad thing but your own site is usually the last one to receive this attention. (Hey, I'm still not claiming its great!)
- All old baggage from 13 years of upgrades is removed - that can only be good for size and load speed as well as maintenance.Everything I am doing and all I am learning on my own site will benefit my clients down stream.
- I am actually writing a blog at 64 years old. I never thought I would be doing that (mmm, hang on I never imagined I would be building websites into my 60s and see no sign of stopping!)
- I see nothing but positives in this effort.
My 'must have' extensions are all good to go with fresh installs on a J4 build. Even in once case where no J4 compatibility is yet claimed it seems to be working. So a big thank you to:
- Akeeba (Backup and Admin Tools)
- PWT ACL
Thanks for making my life easier.
There are a couple of extensions that won't work yet but they are from reputable sources (usually paid PRO versions) and I don't expect too many problems.
It seems I had much more succcess with extensions installing fresh from scratch downloads rather than trying to upgrade via the 3.9 route.
This gave me a really sound basis for building on and a lot of confience in my J4 build. It then allowed me to insert (revamped) content and build up my site.
Over the years I have used my own templates (developed from guidance on the Joomla! website) and downloaded free pr purchased templates which I have then adapted. Only once has this caused me problems when one site (a really simple one) refused to work in a 3.x versions when I upgraded to PHP v7.x. I eventually managed to solve that and move it forward. Apart from experimental sites (to test and extension of some kind or try some functionality) I have never used any of the default provided templates.
I am no expert in template development and know my limitations. So, even though I have used flex grids, responsive media queries etc (for some time now) the issue of upgrading my templates to be J4 compatible seemed daunting (and my own template was one of the blocks on a V3.9 to V4. updgrade).
I therefore decided on a different easier route based on the fact that the Cassiopeia out of the box template looked massivley flexible and extendable and of course, works from install.
- I loaded the Cassiopeia template as default and then copied it using the usual Joomla! template tools in system administration.
- I mapped my existing layout to the Cassiopeia layout (helpfully annotated here)
- I transferred any site specific css to the user.css file
...and Bingo!. In no time at all the V4 site looked pretty much like the old responsive V3.x site but I made a few changes/improvements and simplications along the way.
On this site I have made no code customisation so I had no worries about that as part of the migration
I did some customisations on a few sites a few years back but generally for my purposes this is something I like to avoid to reduce maintenance. If at all possible I work with what is available either through CSS, extensions or embedded code.
It's been an interesting and valuable experience so far and I am learning something new every time I sit down to develop the site. I will probably provide some further updates in due course. Thanks for reading. I hope you have found it interesting and possibly useful.