Veen's Boulevard of Broken CMS Dreams

December 22, 2004

Jeffrey Veen: Making A Better CMS

"I did some research recently at OpenSourceCMS.com - a fantastic site that lets you play with dozens of CMS installations - and left pretty depressed. What I experienced was obtuse and complex software that was packed with gratuitous features at the expense of usability and user experience. It was software written by geeks, for geeks."

I think it's worth noting that opensourcecms.com only features PHP/MySQL-based software. Not because I'm not a fan of PHP, but because I'm not a fan of PHP because most PHP software I've tried out sucks... on the front-end, and the way it's coded. For years I have been vehemently against using web development tools that focus on a 'code-in-html' style, a la ASP, PHP, JSP.

I think the job of maintaining and evolving a system using that kind of development tool gets disproportionately harder as the system becomes more sophisticated, and that leads to developers taking shortcuts or making compromises that affect the usability and future potential of the system. I believe that's why you end up with software that seems "written by geeks, for geeks".

To balance that mini-rant, I should note Jeff takes a deserved swing at Plone as well.

"I've used quite a few systems now that have the notion of a three-column layout. They give me the ability to turn columns off and on, and put "portlets" into "content-slots." Where does this assumption come from?

In the last two years, I haven't built a single Web site with columns - and these are high-traffic commercial sites. All of the markup is spit out linearly, and then styled in whatever column format we want using CSS. Yet so many content management systems bake the three-column layout so deeply into the code that it takes considerable hacking to get rid of it (I'm looking at you, Plone)."

I totally agree.

During the 2.0 development process, the team was pretty religious about using semantic / accessible markup. The default skin was completely table-less (except for the displaying the calendar which rightly belongs in a table), and it was possible to radically alter the layout of a Plone site without touching it's 'main_template'. Unfortunately, Plone's UI is pretty ambitious, and getting Plone to render properly in all the browsers that needed to be supported (I'm looking at you, IE) was nearly impossible without making unacceptable compromises.

At the last minute, a decision was made to change the default skin to use a single table with 3 columns. The rest of the skin was still tableless, using semantically-rich markup and the design was fully CSS-based and customizable using CSS... EXCEPT for that damn 3 column layout. The table-less skin was shipped as well, but you had to manually choose it. I was pretty pissed about this, from the religious perspective (yes, I had totally drank the Kool-Aid during the Plone 2 beta process) but I totally understood why it was done. First impressions count, so if it looked or behaved poorly in IE6/Win, Plone 2 was doomed.

Now, in practice, if one did a major Plone deployment, the Plone skin probably wouldn't be used anyway, the customer's custom design would be skinned. So, it's basically an issue if you want to use Plone's default skin and customize it with CSS instead of making a custom skin... which isn't hard... after you've done it once.

I'm now (well, I will be again once I press "Send to Weblog" in MarsEdit) working on my 3rd table-less Plone 2-based web site. The first two used Plone 2's table-less XHTML template and was designed "only" using CSS (okay, there might have been a couple tags added or changed here and there), but this one is using a custom table-less template provided by our excellent designer. Yes, we're stuck in IE6-CSS-bug-hell again, but the customer needs WCAG compliance, so I expected that pain.

BTW, this is why I'm a big supporter of FireFox and why I'm so disappointed Netscape (well, really AOL, but they're dragging Netscape's name in the mud doing it) sold out and put IE in the new Netscape. IE makes the job of making good-looking and accessible web sites significantly harder and more expensive that it needs to be, and all because Microsoft ruined the browser market like it has ruined so many other markets. Thank goodness for competitive open source software that is forcing Microsoft to invest in real software improvements again.

Okay, I'm done ranting. Thanks for the fuel, Jeff!

PS: The song 'Boulevard of Broken Dreams' started in iTunes just as I was about to post this, so I just had to change the title. ;-) Thanks Green Day, and thanks Apple for the iTMS that made it so easy for me to buy TWO versions of that great song! (I just bought the live version of it this morning)