Skip to main content
  1. Dispatches/

CMS Blues

·876 words·5 mins
Articles Assorted Geekery Administration
Daniel Andrlik
Daniel Andrlik lives in the suburbs of Philadelphia. By day he manages product teams. The rest of the time he is a podcast host and producer, writer of speculative fiction, a rabid reader, and a programmer.

I’m down with a case of the CMS Blues. I’ve got them so bad.

A Little Background>

A Little Background #

So, I’ve been using my own custom [Django][2]-powered CMS for several years now. Creating it was a great learning experience and in general, I’ve been quite happy with it. However, there wereare a few (understatement) sloppy parts to the code. I’ve been meaning to take the time to clean it up and write some decent test coverage so that updating it in the future is less burdensome.

In fact, I still have that project broken out in my task list in Omnifocus. Ostensibly, it’s titled “Update for Django 1.4”, as that was the version of Django in alpha testing when I first set up the project.1 So, that puts this project at over a year old. How much have I accomplished? Not nearly enough. My last commit to the git repository was 16 months ago.

So, given that I seem reluctant to get this updated, partly because of my notable lack of free time between work and baby wrangling (which shall henceforth be used as a standin for the term “parenting”), and partly because the problems associated with a CMS aren’t that interesting to me anymore. I’ve already solved them on some level, and the detail work is kinda boring.

I could, of course, just keep using this CMS, make some minor security patches, and leave it at that. I would do that in a heartbeat, because it’s the easiest way to do it. The problem is that some of the external APIs I use for importing my data from other services (e.g. Diigo, Twitter) have changed a bit and when I check the logs I can see call after call failing. So, patching the site also means fixing the Twitter and Links app. Also, I discovered today that the syncing is now failing as well for some unknown reason. Frustrating is hardly the word.

So, given that I’m unlikely to put the time in to do all the work to get the site fully operational again, I’m now looking for a pre-built CMS. I’d like to have a tool that allows me to spend more time writing and less time wrangling code.

Features I’m Looking For>

Features I’m Looking For #

I’ve put together a list of features that I’m looking for in a new one. Hopefully, this will help me identify a worthwhile successor.

Must Haves>

Must Haves #

  • Markdown composition (including the footnote extensions)
  • Link blogging functionality in addition to traditional posts
  • Comments optional, with decent moderation and spam fighting tools. I don’t want comments on everything, because there are douche-canoes all over the internet, but I’d like to be able to enable them on a post-by-post basis.
  • Pygments support (or similar) for syntax highlighting in code-oriented posts.
  • Easily customizable templates.
  • Import options so that I can transition content. If there is a defined spec, I don’t mind writing the SQL queries to pull it out in that format.
Like To Haves, But Not Required>

Like To Haves, But Not Required #

  • Import external social networking data to the CMS database. External widgets are tools of the Devil, and they are used to make webmasters cry.
  • Easy backup of the database.
  • Self-hosting option. I’ll use a third party host if I have to, but I do like running my own VPS. If I host with someone else, it can’t be a flaky infrastructure, e.g. Tumblr.
  • Decent and reliable caching. I use Memcached on this site, but I’m not concerned with the implementation as long as it works and can handle an occasional traffic spike.
  • Metadata options like licensing and whatnot.
  • Extensible: I’m not likely to start writing more plugins or apps for my CMS anytime soon, but it would be nice to have the option. If all my other needs are met, I can probably live without this.
The Absolutely Nots>

The Absolutely Nots #

  • Not a social network. I’m not interested in becoming even more of a product than I already am. I will happily pay for my own service. I’m not about to give up my independent little corner of the web, and honestly I think Warren Ellis is right on when [he says that][1], “It feels like the social web is going to get somewhat less interesting for a while. Less connected, less engaged.”
  • Not a social network. I just felt that needed to be clarified.
What Am I Considering?>

What Am I Considering? #

I’ve got a few ideas, but I’m a bit behind on what’s out there since I’ve been running with my own code for so long. Honestly, I’m hoping for suggestions. I’ll post links to this on a various sites to collect feedback, or if you prefer, you can email me ideas to newcms at andrlik dot org.

The Way Forward>

The Way Forward #

I don’t know what I’ll end up using yet, but I’m looking forward to moving on. Because only a migration can cure the CMS Blues, and migrations only hurt for a moment. Usually.

[1]: “The Social Web: End Of The First Cycle” [2]: “Django Project”

  1. The current release candidate is 1.5, so I missed my goal. ↩︎


Hacking on Octopress
·1111 words·6 mins
Articles Meta Development Ruby Assorted Geekery
As previously discussed, I recently switched to Octopress on this site. I’ve been pretty happy with that decision thus far. Performance is good thanks to static files. It’s a joy to compose in Markdown, preview it on my own machine, and then deploy to my site.
Switching To Octopress
·1512 words·8 mins
Articles Assorted Geekery Meta Ruby Octopress Django Development Python Jekyll Hyde
This site is now powered by Octopress. The tentacles compell you! It’s tentacly delicious ! The Search> The Search # As I mentioned in my previous post, I’ve been looking to try out a new CMS for this site.
We Need To Talk About Obsidian
·820 words·4 mins
Articles Obsidian Assorted Geekery Markdown Productivity
As I’ve mentioned before, I’ve recently come down with a case of the mind-virus that is Obsidian. I was infected by the dastardly Daniel Rodriguez, whose dark exploits are well known.