I’ve never really loved WordPress. There. I said it.
But it is very powerful, well supported, particularly suited for blogging, and widely deployed, so was a natural choice for this website.
It does come with its own baggage, however. For one thing, it’s not so easy to develop locally and deploy remotely; having to keep the MySQL databases in sync is a mess trying not to hose something up on one end or the other. Tools like iTheme’s BackupBuddy help a lot, but you still end up having to manually blast your development database over the remote database for each deployment. That’s OK, I suppose, for the main live site, as the updates shouldn’t be happening all that often. But it’s less fun on a remote staging server that sees more development work.
Don’t forget the darned wp-config.php file. Overwriting the remote version with the local version kills the site and requires some hand-editing to get it going again. The whole business is not as easy and clean as I would like.
And, really, WordPress can often be overkill. Take, as an example, my Bob Rockefeller Photography website. It has a simple blog (that is well overdue for some new content), about and contact pages, portfolio galleries, and an area for clients to view their proofs. Hardly an application for an enterprise-scale CMS (Content Management System).
What About Kirby?
There are a number of NoDB (no database) CMSs around from static site generators such as Hammer for Mac and Jekyll to a group of dynamic site creation tools lead by Kirby and Statamic. I decided to move Bob Rockefeller Photography from WordPress to Kirby as a test of Kirby’s abilities and as a way to make development and deployment easier. I have plans to upgrade the client areas of the site and I want to get set up for that work.
What made me look to Kirby? In no special order, I like:
No Database – nothing to sync, nothing to migrate, nothing to query, nothing to mess up. The structure of the site is defined by the organization of the file structure. Metadata is stored inside files as simple text.
Plain Text – use either plain text, HTML or Markdown for content. I really like writing blog posts in Markdown; I can do it on any device, with nearly any program, do it anywhere and then just save it as part of the site when it’s done. And Kirby (through its kirbytext() function) understands Markdown Extra for more formatting power than John Gruber designed into the original Markdown. If that’s still not enough, you can create your own extensions to kirbytext() in a file named kirbytext.extended.php added to you plugin folder.
Dead Simple Sync – just upload any changed files right over the existing ones. The local site is exactly the same as the remote site. I use MAMP Pro for local development and then Transmit to sync the local directory to the remote directory.
Expressive Syntax – so clean as to be nearly self documenting. Kirby is really a simple (but not simplistic) PHP development framework (think a much lighter weight CodeIgnitor or Laravel). Want to return an object loaded with all the articles in the blog?
Need to create a paginated list of blog posts in reverse alphabetical order?
Handy Toolkit Included – get more utility functions in the Kirby Toolkit, the underpinning for Kirby itself. This will be important to me as I work on the new client area features. Having a PHP framework to build with is a good thing.
Documentation – there is a lot of it on the Kirby home site. And tutorials, too.
Support – a must have and it’s there. On the web is a forum frequented by Kirby users. And there is access via email to Kirby’s developer Bastain Allgeier; I’ve had several help email exchanges with him as I got myself up to speed.
If I were to write down a couple of my admittedly few gripes with Kirby, I would wish for a much better tool for moving WordPress content to Kirby and a tutorial on hooking into Kirby with AJAX. But, understanding that Kirby’s intent is to be lightweight, these are probably just nits to pick.
So there you have it. I would recommend that you take a look at Kirby (go see the FAQ, first) if you would like to simplify your blog or need to develop websites with something a little more lightweight than WordPress, but don’t want to have to start from scratch.