Kirby 2.2 – the major minor release

It has been a long wait and it's finally over. Kirby 2.2 is here and it's huge. I call it the major minor release. Forget about the version number for a moment and let me introduce you to a whole new set of features and improvements.



Rewritten Panel Architecture

A lot of thought went into a completely rewritten Panel backend and frontend architecture, which relies less on Javascript and more on good old HTML and CSS, without sacrificing performance or enjoyable interactions. The new architecture is also a huge step forward to more options for 3rd-party developers to build extensions for the Panel. More details and developer docs will follow soon.

Dropped support for PHP 5.3

With the new release we moved away from PHP 5.3. The minimum requirement is now 5.4 although we recommend to use the latest stable version. Leaving the legacy of the old version behind means that we can rely on a more secure foundation and the awesome new features of the latest PHP releases. You will additionally benefit from better performance out of the box.

Constant refactoring

We are constantly reviewing existing parts of Kirby and try to improve every bit. One great example is the new syntax to create thumbnails on the fly:

// resizing: old
echo thumb($image, array('width' => 300, 'height' => 200, 75)->url();

// resizing: new
echo $image->resize(300, 200, 75)->url()

// cropping: old
echo thumb($image, array('width' => 300, 'crop' => true)->url();

// cropping
echo $image->crop(300)->url();

You can find an overview of the new syntax on Github. We will also update the docs as soon as possible.

Panel improvements

The cleaner Panel architecture made it possible to add tons of improvements. A lot of them are based on your fantastic feedback in the forum or on Github. Please keep it coming like that. It helps you a lot to hear your thoughts and experiences!

Context menues

Editing, moving or deleting pages and files has become many times more efficient with the new context menues. You can find them in the sidebar while hovering over a page or file. The context menues give you instant access to the most important editing and administration features. In our opinion this is a big productivity optimization.

Beautiful new search

The new quick search in the upper right corner gives you instant access to all your pages and users. You can now search by title, URL or by username to jump directly to the place you are looking for.

Instant file uploads

We reduced the number of steps to upload new files. You can now drag and drop them directly into the sidebar and they will be instantly uploaded.

Drag & Drop previews

In addition to the new instant upload, we also added file previews, while dragging files from the sidebar to a textarea. This makes it easier to see which file you are currently embedding in your content.

Custom user forms

Many of you asked for the same flexibility of page forms for users. With Kirby 2.2 you can now add any additional number of custom form fields to user accounts. This introduces a whole new universe of options while working with user accounts, authors and roles.

Those form fields can be added by creating blueprints for user roles in site/blueprints/users. For example:

# site/blueprints/users/admin.yml
    label: Twitter
    type: text
    placeholder: @username
    icon: twitter
    width: 1/2
    label: Github
    type: text
    placeholder: Github username
    icon: github
    width: 1/2        

No matter if you add additional information about Twitter accounts, a biography or phone numbers — all of that can be instantly accessed in your templates:

<?php echo $site->user('peter')->twitter() ?>

Blueprint field snippets

Another often requested feature was a better way to add the same form fields in different blueprints without repeating yourself over and over again. The solution: field snippets. Field snippets can now be stored in /site/blueprint/fields You can reuse such a snippet afterwards in any blueprint — even for structure fields:

# /site/blueprints/fields/date.yml
label: Date
type: date
default: now

In your blueprint you can then use this snippet like this:

# /site/blueprints/somepage.yml
    label: Title
    type: text
  date: date
    label: Text
    type: text

You can even extend snippets:

# /site/blueprints/somepage.yml
    label: Title
    type: text
    extends: date
    label: My extended date field
    label: Text
    type: text

Another thing you might have noticed in the examples above: you can now use .yml or .yaml for your blueprint files and benefit from automatic syntax highlighting in many editors.

So much more…

This is just a short overview of what's new in Kirby 2.2. So much more made it into this release and you can find more about it in the changelog.

A word about permissions

We know that we talked a lot about the upcoming addition of permissions in 2.2, but unfortunately it turned out to be much harder than we expected it to be. We have a working first implementation ready, but we need more time to make it perfect. We hope you understand and the massive set of other new improvements works as a little treat.


We will start today to extend the docs with instructions for all the additional features. If you have questions in the meantime, please don't hesitate to post them in the forum

Download Kirby 2.2.0

Update instructions

Please follow the update instructions for your existing Kirby site.


As always we are super excited to hear what you think about this new release. Please use the forum to send us any kind of feedback.

Our partners

CDN by KeyCDN Search by Algolia