Should We Update to Craft 3?
This frequent question deserves a fair assessment. The technical documentation, Upgrading from Craft 2, will give a developer a feel for the level of effort involved as well as potential risks. If your role is more administrative than technical, there are a few high-level concepts to understand before making an informed decision.
Breaking Changes #
Like most CMS software today, Craft is versioned semantically. A major version release (2.x to 3.x) implies breaking changes and incompatibilities with the previous version. Your plugins and templates will most likely need to be updated.
Update vs. Upgrade #
We avoid the term “upgrade” because it implies an option to “downgrade”. The better term is “update” because it indicates a state change. When you update Craft 2 to Craft 3, the files and database change to a state that is incompatible with Craft 2. If you need to revert, then the previous state must be manually restored by a developer from a backup of the files and database as they existed before the update. This procedure is not unique to Craft and would be the same for any similar CMS.
Plugin Compatibility #
Custom Plugins #
Many Craft sites have custom-made plugins to meet unique business, design, and technical requirements. It will be necessary for your developers to rebuild them to match the Craft 3 environment. Anticipate a high level of effort in this case.
Third-party plugins #
It’s very likely that your site uses third-party plugins. Each of these plugins needs to be available for Craft 3. If a plugin is not available, or never will be, then your developers will need to rework your site so as not to depend on that plugin.
You can view Craft 3 plugin availability from your Craft 2 Control Panel if you are an Admin user. Click the “Check for updates” link at the bottom. In a few moments, you’ll see a list of your current plugins and their availability for Craft 3.
Template Compatibility #
The templates that render your website use a common templating language called Twig. Craft 3 introduces some changes to the template syntax which are backward-compatible for now but are due to break in the future. It’s possible that they’ll break if there are any plugin dependencies for custom template tags and filters. Your developers should make every effort to refactor the templates at the time of the update.
Best Practices #
As you can see, an update from Craft 2 to Craft 3 for a mission-critical website should be approached carefully and with due diligence. There are some general best practices to follow.
- Your production website should already have a backup procedure in place that runs at regular intervals
- The update to Craft 3 is best done in a local development environment – on a developer's computer
- An updated version of the site should be thoroughly tested for quality assurance on a staging server
- A backup of the production database and all files should be made immediately before deployment
- A restoration plan should be in place before deployment
- Once deployed, the site should be thoroughly tested and if anything fails, restored immediately
This list is not comprehensive, and it’s not unique to Craft. It’s only meant to provide a feel for what’s involved.
Should We Update? #
Your developers can provide you with an estimate of effort and scope, and when you’re comfortable with that, then by all means! We think Craft 3 is great and that your developers will appreciate all the improvements we made under the hood.
If the level of effort is prohibitive, don’t worry. Craft 2 is a fine CMS. It is supported with bug fixes through March 31, 2019, and security fixes through March 31, 2020. Sometimes a major update is better off deferred and bundled with a broader initiative like a website redesign or a significant feature implementation.