…or how adapt the CMS to me instead of the other way round. For a long time, I dreaded setting up a web-presence. As I’m kind of a techie, I didn’t like the idea of being locked into a service like tumblr. On the other hand, it seemed just like too much trouble to set up a proper CMS and learning the ins and outs. Even though I had done some contract work on Wordpress, I just didn’t feel like it was a solution for me personally. I like to dabble with styles, html and all of that at times (ok, obsessively, I confess). So I wanted to be able to change these easily or even only for one post. On the other hand, it still didn’t seem right to code when I would actually want to write.
So for a long time I was on the lookout for a CMS that was dead simple to learn and adapt to my needs but where I still wouldn’t have to dabble with code when I didn’t want to. After a very long time, I settled for kirby. It has quite a few things that I like to it:
- Content is stored in plaintext-files and therefore I don’t need a database.
- It’s written in a very clear, minimalistic PHP. This means it won’t take years to learn.
- Kirby includes some functionality which is often not included in bigger CMSs:
- Multiple language versions
Especially the plaintext workflow is very intriguing to me and Kirby includes the kind of sweet ideas which are simple and powerful at the same time.
The main content is written in markdown. If you don’t know markdown you should absolutely check it out: Markdown. It’s awesome and feels like an epitome of everything a publishing workflow should be like: Easy to learn, transportable and still not restricting flexibility and creativity. But this is for another post.
Every file can have metadata before the main content. This means its quite easy to add keywords, custom styles, author names or whatever structured content you like. All this metadata can then be used in a template, for example to display additional information. As for now, I used it to display the publishing dates of articles.
As there is no database storing content it is extremely easy to keep a local and a remote version which are in sync. I actually use dropbox for this right now. It is installed on my own machine as well as on the server. I then shared the folder which contains the complete kirby installation including content between the two accounts. The practical implication is, that I can write or edit blog posts wherever I have access to my dropbox. Which is basically everywhere, including my phone. Love this part too.
If you’d like more information on this part, you’ll find it here and here
Update from 2017
While still happily using kirby as my "CMS", the workflow of publishing changed a bit. In these times, Git is the inevitable tool of choice for managing any kind of writing I do. Together with Github, all my changes are always under control, secure and available (though not publicly) on the web.
On the public server, a simple
git pull will do the job and update everything to the newest shiny state.
And why no static site generator?
I don't know. I think PHP is fast enough for just some basic routing and assembling of files. Using a static site generator somehow feels less elegant because everything is duplicated.