A simpler CMS

I am starting to see where a Grok-based CMS could fill a hole in the world of python CMSes without competing with the admittedly awesome Plone. First though, some background about where I'm coming from.

About a year ago, my mom asked for a web site. She writes fiction and creative nonfiction, and she wanted to be able to share what she writes with her friends. I knew that teaching her HTML was out of the question, and she was not going to want to maintain a site herself in dreamweaver. So, I decided she needed a CMS. At the time, I was having a good time writing rails apps, and knowing that her requirements were pretty basic, I decided to write her a CMS myself. She ended up with Judy's Jots, which she has has been pretty happy with. She's asked me to add commenting to it now though, and since I haven't done much rails work in a while, this has me thinking about moving from my custom CMS to an Open Source CMS, such as Plone or Drupal. In the end though, the project makes me want another option (and I know there are a ton, but bear with me).

In September, there was a really fascinating discussion on the Grok-dev mailing list about replacing Grok's current website to improve maintainability and allow for growth. If you have some time, it's worth reading through the threads. Eventually, Grok's developers decided to move their site to Plone -- but there was considerable conversation about starting a new CMS in Grok.

I think that a Grok-based CMS is a great idea and that it needn't compete with Plone, but could instead bolster and complement it. Plone is a wonderful CMS and a nice development framework, too, but it is very big. My mom does not need placeful workflows, most of the content types, a complicated portlet infrastructure, or much of what Plone provides. My company does, but my mom does not. She does need a very "humane" CMS. I need a CMS that's easy to maintain and easy to understand when I need to add a feature here and there. Something that's small by design and that's aimed at the small-site creator.

Although she's important, my mom is not the only potential user here, though. Plone does a lot for you, and as a trade off, it requires a lot of resources. For small companies though, all that power may not be necessary. There's a space where simpler content management systems, such as Joomla and Wordpress (in its "more than a blog" functionality) are thriving because they're simple to setup, require little in the way of resources, and get you publishing quickly. Additionally, the learning curve on Plone is not gentle; there is a lot of code there to work though. And I'm not going to argue that that code isn't necessary; it's just that Plone does a lot and that makes it big. If you have a project that is mostly web-app and a bit content management, Plone is a potentially awesome core, but it may not make sense because of its immense complexity. Plone aims at the "Upper middle tier", and there are plenty of folks that aren't there.

So, I'd like to propose a simple CMS aimed at the downscale market - people who need a bunch of pages that are easy to organize and that fit into a template, maybe a blog, and not much else. I even have a name for the idea: Content Caves, or ConCave for short - I think Grok would keep his content in his cave, after all. The goal would be to make it simple and keep it simple. The code base should be small, and core features should be kept to a minimum. A couple of content types should probably do (folder, page, file, maybe a simple collection), and zope already has a nice workflow engine waiting. Ideally, ConCave would be WSGI-friendly, to (I hope) ease deployment and integration into larger apps where content management is a small part.

Additionally, and counter-intuitively, I'd hope to offer some migration path to Plone for users who outgrow the CMS. Given Plone's new affinity for Zope 3 and Grok's happy existence there, hopefully supporting the content types developed for this smaller CMS in the larger Plone, at least for content migration purposes, wouldn't be awful. My goal would be something that starts and stays small, and offering a path to the more enterprise ready Plone would keep pressure to support larger operations down.

I'd be very interested to hear opinions on this; at some point I'm going to have to either extend my rails CMS on my own or chip in to a FOSS CMS targeted at small users. I'd prefer the later, and if others are interested, I think it could be a really interesting learning experience.