For many years I’ve been playing around with various PHP-based content management systems (CMS). From self-made to well-known ones like Drupal, I’ve seen quite a range and yet they all never really could provide enough flexibility for the developer and easy of use for the website maintainer at the same time. I don’t want to go into much details here, but the goal should simply be, that as a developer you want to create a site and as a website maintainer you want to edit all parts of the websites without developer involvement. Getting to that goal while not having to invest huge amounts of time into learning all ins and outs of a CMS is hard to reach.
I got the chance to work on a project that introduced me to Kirby CMS. At first, it looked nearly to simplistic, but once I spent some more time with the setup and checked the very good documentation, I started to see that this might just fit the bill of being very customizable and yet easy to use for a maintainer. What stands out to me the most is that you write simple YAML files, which define the administration form layout. As such, with very few lines of code you can create powerful, custom-made administration panels and then with a simple HTML/PHP mixed template you can very easily pull in the various fields into the final site. The customer question of “can we have field X on the website that I can edit” will become a 5min job instead spending hours adjusting custom plugins or learning how to write “content blocks” and then having to teach the customer how to edit these content blocks.
Back in the days I probably would have ignored Kirby for the sole reason that you have to get a license even for personal use. Having seen many abandoned or barely maintained open source project, I think it makes a lot more sense to invest a fair fee into a project, but in return get an actively maintained project. And who says commercial products can’t also be open source? Because you can find everything Kirby on GitHub.
But what’s the point of a CMS without a good (third-party) plugin system? This is where Kirby impresses me again with the sheer amount of different plugins. It may not be as well organized as with other CMS communities, but with a bit of searching, you’ll most likely find a plugin for whatever you want to achieve. Here’s a non-exhaustive list of plugins, I find useful or interesting.
- Kirby Preview Files – Enable file thumbnail preview in the panel sidebar
- Kirby Uniform – A versatile Kirby 2 plugin to handle web form actions
- Kirby Uniform reCAPTCHA – An extension to the Kirby 2 plugin Uniform (v3) to add the Google reCAPTCHA guard
- Multiselect Field for Kirby CMS – Introduces a select field type for the panel that allows you to choose multiple entries
- Kirby Page Builder – Lets you predefine content blocks with different field sets that can then be added and arranged inside the panel
- Sitemap Plugin – A plugin for Kirby 2 CMS that generates an sitemap.xml and HTML sitemap
- Embed for Kirby CMS – Display embeds from various media sites (e.g. YouTube, Soundcloud, Instagram etc.) by only providing the URL to the medium
- And many more…
I really like it and have moved multiple sites to Kirby with little to no effort, while giving me the flexibility to extend at a much faster rate. If you’re looking for a CMS, then I definitely recommend you evaluate Kirby CMS and see if it may fit your use-case. And behind the scene the developers of Kirby aren’t sleeping, but they’re actively working on Kirby 3 which again will bring a lot of useful new things and a core built on top of PHP 7.