What about… Kirby CMS?
There are a lot of commercial and free content management systems out there on the market. Some are extensive and try to cover every conceivable application scenario. Others are lightweight and serve a very specific purpose. Over the years, we have tried out quite a few of them and gotten to know their upsides and downsides first hand. Today, we would like to make the case for quite a new kid on the block in the CMS world: Kirby, a lightweight, flexible, and fast CMS.
Common Issues with CMS
Nearly everyone coming from an IT background has set up a content management system (CMS) at least once, whether for a simple blog or a full-fledged website. When using common CMS, there are usually a lot of requirements to be considered: the database, special set-up steps, server-side requirements, the list goes on and on.
In addition, there are some shortcomings, which developers might encounter and have to cope with. A lot of CMS are limited with respect to factors like flexibility, extendibility, or performance. This may either be due to the fact that they are built for special kinds of application or due to their extended feature sets. Code flaws (“historically grown”) and non-extendable code can be as annoying as complex plugins which cause problems when used together with other plugins and do way more than you would expect. Discrepancies between content in different environments (development, staging, production) may occur due to inconvenient database synchronization. And, depending on the CMS, missing version control might be an issue too.
All of those requirements and potential flaws can be quite frustrating for developers, especially when the CMS needs to be adapted over time. The more flexible your set-up needs to be, the more difficult it gets.
What Makes Kirby Different?
Setting up the Kirby CMS only takes a couple of minutes, since all you have to do is upload some files to your server. Kirby’s file-based approach makes dealing with databases obsolete. Content can be pushed into a repository, which allows quick and easy publishing for different environments as well as rolling back content if necessary. Due to its file-based architecture, Kirby is also immune to database vulnerabilities or hacks. Kirby runs as long as you have a server with rewrite support and PHP. It’s even possible to run this CMS without a server like Apache or nginx by just using the PHP binary.
From a developer’s point of view, Kirby offers some nice features and characteristics. The code base is easily understandable and readable most of the time, encouraging developers to maintain a high code quality. The code is split into different components, which are independent from one another. You could, for instance, decide not to publish the admin panel and work completely with the files instead. Within the templates, there are a lot of methods available, which can be used to easily get content rendered. In general, Kirby is quite a lean CMS. Its structure is focused on extendibility rather than on providing numerous, fancy out-of-the-box features. As a result, Kirby is highly flexible and fast. Even though Kirby is a lightweight CMS, it provides multi-language/multi-store functionality as a core feature, so you won’t have to add any plugins or the like if you intend to set up your site for multiple countries or stores.
Kirby’s admin panel is highly customizable. Developers can easily set it up to meet the requirements of those who will be working with the CMS in the end. The panel can contain various input fields and field types. For an overview, take a look at Kirby’s different panel fields.
Last but not least, Kirby offers quite a number of plugins these days. And the best thing about them: they’re free! At least at the time of writing ;)
So when Should I Use Kirby?
As a developer: When flexibility, code quality, and performance matter more than having an out-of-the-box solution with all necessary plugins in place.
As a regular user: Maybe Kirby is not the best CMS to start with. It’s commercial software and there are free alternatives on the market that don’t require coding skills.
Why We at Project A Use Kirby
First of all, Kirby facilitates fast workflows when setting up new projects and has proven itself to be robust in production. Templates can and should be developed from scratch. This helps to avoid redundant code and features from the outset. The learning curve for new developers is shallow, so becoming familiar with Kirby is no big deal. Since we often don’t know beforehand which specifications might be needed in the future, flexibility is a high priority for us. Kirby allows for changes without worrying too much about discrepancies and dependencies. Basically, anything can be implemented at any stage. The already mentioned possibility to customize the admin panel is another reason for us to use Kirby. Setting up the admin panel individually enables non-developers to manage content with ease. In addition, Kirby has an active community on github, where developers submit their ideas and fix things too. Some time ago, we re-launched our website with Kirby and two of our ventures have started using Kirby as well.
Jonas Tebbe (Head of Product & UX at LIQID):
“We chose Kirby as our website CMS and it turned out to be the best choice we could have made. Since we keep the content in a git repository, it is automatically version controlled and we do not have to deal with any database issues. Plus, Kirby’s flexible API and data structures make working with it super fun and efficient. After working with it for quite a while now, I definitely prefer flat file-based content management systems over database-driven ones.”
Björn Königstorfer (Technical Product Manager at Horizn Studios):
“Kirby is low cost, easy to set up, and doesn’t require any database. Creating templates is straightforward and it offers integrated multi-language support. Kirby is more lightweight than Wordpress or Typo3 without compromising the ability to extend and customize the CMS.”