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.

tl;dr

Anti-bloat

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.

context

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.

search

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.

upload

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.

drag-and-drop

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.

user

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

# site/blueprints/users/admin.yml
fields: 
  twitter: 
    label: Twitter
    type: text
    placeholder: @username
    icon: twitter
    width: 1/2
  github: 
    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:

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
…
fields: 
  title: 
    label: Title
    type: text
  date: date
  text: 
    label: Text
    type: text

You can even extend snippets:

# /site/blueprints/somepage.yml
…
fields: 
  title: 
    label: Title
    type: text
  date: 
    extends: date
    label: My extended date field
  text: 
    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.

Docs

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

http://download.getkirby.com

Update instructions

Please follow the update instructions for your existing Kirby site.

Feedback

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.


This is a companion discussion topic for the original entry at http://getkirby.com/blog/kirby-2-2-0
14 Likes

@bastianallgeier and team: Thanks for this update! Great work!

3 Likes

##simply awesome!

Played around with blueprint snippets, I love the idea. It’s very helpfull! Is it possible to combine multiple fields in one blueprint?

3 Likes

Superb Update! All my Issues I had to write own workaraounds are fixed, panel improved! Thank you!

3 Likes

Thank you so much for this awesome update :slight_smile:

3 Likes

Kirby Team… You are the best!! thanks a lot

2 Likes

Great work! Thanks @bastianallgeier, contributors and all…

2 Likes

Congrats for the release. Every feauture mentioned here seems spot on. It will be interesting to see how kirby will evolve it’s unique, minimalistic aproach as it keeps progressing as a cms.

1 Like

I love it!

So many great new features, usability improvements and little details! Great work y’all!

1 Like

I think this is supposed to be /site/blueprints/fields/date.yml? The example(s) below don’t mention anything about Twitter.

:wink:

Just moved a project over to 2.2 this evening, and it’s awesome. Starting to refactor blueprints, now.

What about fully NGINX-Support and a config preset for NGINX?
Last time, the panel can’t be displayed.

this config works great for me on NGINX: https://gist.github.com/bastianallgeier/c2e1f1e519f5f2943ec4#gistcomment-1556246 did you try it yet? I will add it to the docs as soon as possible.

Thx for your answer, Bastian! I used it a bit different: https://git.raum.io/andreas.wieser/kirby-nginx-config/tree/master/debian-8/etc (3 files, in global the nginx-rules for the example-page)

Unfortunately we got a couple of bug reports after the release yesterday :frowning: This is the kind of stuff that drives me crazy and I’m really sorry for the issues. We do everything to avoid such situations and we will definitely try to be even more careful with the next release.

To fix the issues as soon as possible I already uploaded a small first patch yesterday night and today 2.2.1 is following with a couple more fixes. This should solve all the known bugs. Let me know though if you run into anything else or use the Github issues to report bugs directly there.

You can find the changelog here: http://getkirby.com/changelog/kirby-2-2-1

Updates work as always. Either grab a ZIP file from the download server (http://download.getkirby.com) and replace the panel and kirby folders or check out the latest submodule versions via git.

Cheers, Bastian

1 Like

whoops! I wanted to post a twitter example first and then decided to go for the date field instead :slight_smile: I just fixed it.

Sooo… now it works. If you want a fully working config for your NGINX with PHP5-FPM and Sockets for every single page/customer … look at my GIT and have some phun. :stuck_out_tongue:
–> https://git.raum.io/andreas.wieser/kirby-nginx-config/tree/master/debian-8/etc

1 Like

Hi,
have I to change the templates in reason of the changed syntax or will the old one work further?

Cheers

No you don’t. The old thumb syntax will keep on working. The new one is just a short cut.

Wonderful, I’m excited to roll up my sleeves and get going!

The fact that your updates always include decrufting and performance improvements makes me love Kirby more each time <3<3

1 Like