👀 Get a glimpse of Kirby 5 Learn more
Skip to content

Migration guide for site developers

What you need to know and prepare before you update your sites to Kirby 3.9.

Check if any breaking changes apply to your site

We try to avoid breaking changes as much as we can. But we also put a lot of effort in keeping our technical debt in Kirby as low as possible. Sometimes such breaking changes are necessary to move forward with a clean code base.

Kirby 3.9 is a major release and comes with deprecations and breaking changes. You can find them in the changelog. We cannot list all of these changes here as many only apply to a small number of sites.

Please read through the deprecations and breaking changes and check if you are affected. In this case, please update your site code for compatibility with Kirby 3.9.

Note that the update to Kirby 3.9 will not be successful if your site is affected by a breaking change. In contrast, deprecated code will still work for the moment but will break in a future Kirby version.

Update your plugins

Please ensure that all of your plugins support Kirby 3.9.

As Kirby 3.9 doesn't come with many breaking changes, it is expected that most plugins will work without code changes.

Please take a look on the plugin's website or repository to see if the plugin developer has information on the support status. If not, you can continue with the update on your local development server. Please make sure to test the plugin's functionality before you update your production environment.

If you are using custom private plugins, please also take a look at the migration guide for plugin developers.

Perform the update to Kirby 3.9

To perform the update, please (as usual):

  • replace the kirby folder with the new one (either from the ZIP download, via Composer or in the Git submodule) and
  • delete the media folder.

We recommend to perform the update on a local development server first.

Only update your production environment once you have completed the migration and have verified that your site works as expected.