As long as I’ve been a web designer, the single most onerous problem I’ve faced is finding, configuring, and/or creating CMSs. I’ve found some that I’ve liked better than others, but nothing that quite fits the needs that I or my clients have. Most do too much or too little or not the right stuff at all. There hasn’t been a single CMS (with one exception) I can point to and say, “that’s a system I can stand behind and recommend.”
For a while, I thought WordPress would solve most of my problems. I’ve since decided that, while it’s a great blog platform, it’s a poor CMS. It’s not a system that was designed to be a general-purpose CMS. It designed to be a blog engine, and it’s been shoehorned into lots of situations where it doesn’t belong. ExpressionEngine is in almost the same boat, in my opinion. It seems to offer more flexibility, but it’s still built around the metaphor of a blog. Not all websites are blogs. Not most websites are blogs.
Django is probably the closest I’ve come to finding the right fit. It’s automatic admin interface is brilliant. You can structure the data however you want, and it builds a very well-designed interface for you. The interface it builds is so easy to use that you could give it to your client fresh out of the oven. However, this still isn’t the best fit for what I need. Since it is a fairly complex framework, it has a barrier to entry in terms of hosting that is somewhat daunting. It’s also a bit of a chore to get a development system up and running on OS X (in other words, Dan Benjamin hasn’t written a tutorial for it).
A couple of weeks ago, I decided I needed to revamp (or just vamp) my eponymous dot com. I had an idea of what kind of a system I wanted, but I knew I would have to build it from scratch. I recently discovered W2, which is a personal wiki that runs off of
.txt files formatted in Markdown. It was dead simple to set up and run and I was customizing it before the
.tar file had a chance to cool down. I was really inspired. This was the kind of system I wanted. I could almost just have W2 serve my content files and disable the admin interface. I decided I wanted a little more structure than that, however. I wanted a system that was based on folder structure (an idea I got from somewhere else), and I wanted it to use YAML for configuration information.
A side note–if Rails does nothing else, it has been a huge inspiration for re-thinking the structure and technology we use to build websites. I was aware of the existence of YAML from the database configuration files in Rails.
The idea I had for a site management system consisted of using Markdown-formatted
.txt files for content and YAML files for configuration information as well as meta data about the content in the Markdown files. I also wanted to be able to use YAML files to hold the actual content if it was in small bits (lists of links, quotes, etc.). The URLs would be determined by folder structure where the Markdown files live:
The system I am building is called Yark. As well as YAML and Markdown, it will use Haml and Sass (via a PHP port) for template layouts. I am building it so that I will have an easy way to put my ideas online. I’m tired of having to think of how to shoehorn an idea into a particular system. I want to be able to have an idea, write a quick template for it, and put it online. I want to be able to have one section of the site look completely different from another, but still have the content be managed in the same place. I want the content storage to be easy enough to understand, that you could maintain it without an admin interface at all. Yark uses no database. My working tagline is
“Web 1.0 Done Right”
I could go into more detail of how the system will be structured, but I think I’ve said enough for now. I’m really excited about doing this, and it’s kind of consuming my brain. I had to dump some of it out.