A CMS Confession

25th January, 2010 @ 10:59am UTC

CMS, Development, Idea, The Future, Thoughts, Tools, Web / 4 Comments

I need to make a confession: I have a bit of a nerdy obsession with Content Management Systems. This probably stems from the fact that I’ve built several, worked with a number of internal bespoke systems, and have also been involved in implementing an off-the-shelf solution for a number of large sites. As an addition, I’ve also worked with—and built—several blog publishing systems, which can be viewed as the most basic bespoke CMSs. The upshot of all that is that I’ve spent so long on CMS related problems, solving them has become a rewarding experience.

Recently, I’ve been building a new blog platform, in Django, called “nef-blog”. It’s nothing special; just a quick self-build solution that will get me off of Wordpress. However, I’m still not entirely happy with it, since it will still be building my blog pages at request time (otherwise known as “frying” pages). This seems like a needless overhead and, for good performance on popular posts (I do have some), will probably still require some form of caching solution. I’d much rather have the choice of implementing a mixed fried and baked solution—where “baked” pages are generated by some form of printing process, and the output is stored on the file system and served at request time.

Several of my peers have also recently been building baking (or “static CMS”) solutions—most of which are available for perusal on GitHub, despite being in varying stages of completion:

  • Lanyon”, by Steve Webster
  • Fallow”, by Mike West
  • Flourish”, by Mark Norman Francis
  • AYM CMS”, by Will Larson
  • Jekyll”, by Tom Preston-Werner
  • Hyde”, by Lakshmi Vyas

This has inspired me to attempt to develop a new CMS; but before I do that, I thought I’d lay down a sort of treatise of things to take into account when designing and developing a CMS. These are simply my own thoughts on the subject, and I’d definitely welcome some discussion; I’d definitely like to be able to update this post in the future with new information garnered from the web developer community.

Like this post? Digg it or Del.icio.us it!

Comments (4)

Skip to the comment form…

  1. Gravatar Image Mark Norman Francis January 25, 2010 @ 4:06 pm

    Probably not obvious unless you’re into reading my perl code, but flourish isn’t actually a “baking” system, it’s definitely a “frying” one. Sure, the templates and site content is cached, but the actual HTML sent on a request is generated every time.

  2. Gravatar Image Tim January 26, 2010 @ 8:28 am

    @Norm: Ah. Thanks for that clarification. Not sure why I was under the misguided impression it was a “baking” system.

    Any particular reason you chose to do it like that?

  3. Gravatar Image Tom January 26, 2010 @ 5:57 pm

    Mark, Are there not enough CMS systems out there already? And why not use Wordpress for blogging?

  4. Gravatar Image Mark Norman Francis February 21, 2010 @ 2:59 am

    @Tim: Two main reasons. Firstly, because I had an idea that I might like to be able to vary the page dependent upon factors, such as cookies (user tracking), logged in/out status, etc. The reason being things such as A-B testing, wiki-like page editing, and so on. Secondly, because it allows me to run it in a live testing environment such as the django runserver — allowing me to test changes to templates, plugins and content without regenerating anything. I plan to introduce a “generate statically” command later, but it’s not a priority for me.

    @Tom: Define “enough”. Are there enough iPhone games? Not if the one I want to play/create has yet to be invented. Enough implies that there is some scarce resource being used up. The only resource I’m using up is my time and I get to choose what that is used for. And as for Wordpress, I don’t use it primarily because it requires a database, and a design goal when creating flourish was that all the content source should be stored in plain text files.

Leave a comment





Categories

Syndication

Technorati

© 2010 Tim Huegdon, All Rights Reserved / Website design and development by Nefarious Designs

Powered by Wordpress / Log in

Caution: May contain traces of the undead.