www.nickhodge.com

microsoft, munging and on being a mercurial iconoclastic professional geek.

Why Did I Write My Own Content Management System?

without comments

Why Write Your Own?

A Con­tent Man­age­ment Sys­tem, in my defin­i­tion any­way, is a piece of soft­ware that takes all the con­tent: text, images, links etc and man­ages them. It also under­stands the rela­tion­ship between items. It also has enough intel­li­gence to be able to present the con­tent to the end user.

Pre­vi­ously on mun­genet I have used User­land Fron­tier — and spe­cific­ally a piece of code I wrote myself for Fairfax@Atlanta. The main les­son I learnt from writ­ing this was that “struc­ture defines nav­ig­a­tion” and that “struc­ture should be described in the data­base”. There­fore, its easy to add to the struc­ture of the site — and the nav­ig­a­tion will fol­low. The cent­ral premise of this is that the rela­tion­ship between items is key to the ren­der­ing of the nav­ig­a­tional pieces on the site.

After mov­ing away from my home grown Fairfax@Atlanta sys­tem, I transitioned to a com­bin­a­tion of GoLive for the bulk of the con­tent and a vari­ety of sys­tems for the “blog­ging” first page.

Ini­tially, I used Blog­ger for eas­ily adding notes on a daily basis. Fol­lowed by Radio User­land — a free piece of soft­ware based on Fron­tier. For about 2 months in late 2001 I used a com­bin­a­tion of PHP and MySQL as my first foray into PHP coding.

The mun­gen­eten­gine as you see it today is a full PHP and MySQL based con­tent man­age­ment sys­tem that also con­tains and serves bin­ary ele­ments (PDF, images, SWF) as well as the HTML snip­pets. It renders the nav­ig­a­tion from the rela­tion­ship hier­achy in the sys­tem from tem­plates, as well as per­mit­ting arbit­ary pieces of code to run server side.

The most recent addi­tions to the server-side code is the abil­ity to switch con­tent snip­pets and tem­plates based on the client’s browser envir­on­ment. There are altern­ate tem­plates for Nets­cape 4.7 and earlier.

Once the data is stored in a data­base, it becomes extremly easy to bolt on fea­tures that per­mit easier cre­ation and edit­ing of con­tent. In May 2002, a SOAP inter­face was added for a VB cli­ent applic­a­tion. In July 2002 a RSS XML feed was added.

There are many, many other sys­tems that man­age con­tent for web sites. Each has their own strengths and weak­nesses. As I con­sider cut­ting code a hobby rather than a pro­fes­sion, its really cool to have some­thing you have writ­ten work­ing in pro­duc­tion on a daily basis.

Written by Nick Hodge

December 26th, 2001 at 10:00 am

Posted in mungenet