Kirby 2.3.0

Highlights in 2.3.0

New Thumb Methods

$page->image('myimage.jpg')->resize(600, 400)->url();

Better thumbnail organisation

Thumbnails are no longer stored with unrecognizable filenames in a flat structure. Each thumbnail is now stored under the url path of each page and with far better readability of dimension and options:





This new structure makes it possible to delete thumbnails per page and now even the panel does that for you, whenever a page is updated or deleted.

New Panel Image Field

New Plugin registry

The new plugin registry makes it possible to bundle all sorts of extensions into a single plugin. You can now register templates, snippets, controllers and much more in a single plugin file.

New Component architecture

Major parts of Kirby's internal APIs are now bundled into components, which can be replaced and modified by you. This makes it possible to replace Kirby's template engine, the thumb API, the markdown parser and more.


  • Adds the possibility to get fieldoptions from another field (e.g. a tag field) so that options can be defined dynamically.
    label: Your favorite drink
    type:  select
    options: field
      page:  ../
      name: availabledrinks
      separator: ;

    page enables to references a relative path to the page of the source field (parent page in the example). name is the name of the source field (tags by default). separator lets you define the separator the field value will be split by (default is ,).

  • Changed the order of fields in the signup form to make password first before email to avoid accidental password input into the email field
  • Fixed bug for structure fields without a label
  • Default value options for the datetime field
  • Fixed bug in upload class
  • Fixed tags autocomplete for files
  • Fixed translated labels in structure fields
  • New Image field
  • Field Options: better relative paths resolving. Enables relative paths up to $site and back down again (e.g. ../../projects/project-a).
  • Added css class with field name to each form field
  • Better information about upcoming content changes when the template is changed
  • Removed min default value for the number field
  • New way of enabling/disabling all kinds of page options in blueprints
    preview: false
    url: false
    template: false
    delete: true
  • Option to hide pages in the panel via a new blueprint setting. This is perfect for the error page for example.
    hide: true
  • The session store for content changes will now be reset, if content files get modified
  • The panel now respects the "force ssl" option
  • Untranslatable fields will now be emptied in all languages, but the default language.
  • Structure data for users is now stored and retreived correctly
  • Builds on new registry and thumb api
  • Added missing sorting for pages created by subpage builder
  • Fixed redirection bug after sorting subpages
  • Editors can no longer switch their role by DOM manipulation
  • Pages with blocked status option can no longer be sorted
  • Fixed panel.file.upload hook
  • User blueprints can now be registered in plugins $kirby->set('blueprint', 'users/admin', 'admin.yml')



Our partners

CDN by KeyCDN Search by Algolia