Where is the craft in CMS?

I have been spending a lot of time working with some CMS systems recently.  I won’t name names but it could be Drupal, WordPress, DNN, Joomla etc – doesn’t matter.  I have been working with two different systems for two unrelated projects that happened to arrive around the same time.

I admit that I am lost.  I am lost without TDD/BDD/Refactoring/ATDD – all of the things that have been my support system for years.  I know that you need to put in the hours to learn these tools to get the best of them.  I get that.  I have been.  But after hours of mouse clicks (for the love of god, how about some shortcuts) and bending my requirements to the tools’ wishes I have an overwhelming need to let off some steam.

The bad luck for you is that this is my first post on elegant code and you get to read it.  Now don’t get me wrong, these products gave me a working site amazingly quickly (and therefore cheaply).  They have a wide ecosystem of components, both free and paid that I have used to extend the features that my sites needed.  I am in no way bashing these tools – this post is about me (aren’t they all?)


I feel like there is always the ‘one true way’.  The way the tool wants me to do it.  The way the paid module wants me to do it.  Need another way?  That’s gonna be a lot of work.  Feel like re-writing what you just paid for?  The ‘one true way’ makes me feel like I am driving a slot car.  There is nowhere else to go.  My sites will be like millions of others following the ‘one true way’.  How do I delight my customer with that?

I miss the wind in my hair feeling that comes from driving on a real road, or skiing off piste.  Letting the solution emerge from the requirements.

I feel that I must be missing something.  How do I get this feeling back whilst working with these tools?  Is there something stupid that I am not doing?  Am I just a grumpy old so & so that needs to get with the times?

So I guess that’s why I really wrote this post.  A plea for help.

My name is Rob and I am a code-aholic.  I realize this and am seeking treatment.

12 thoughts on “Where is the craft in CMS?”

  1. Rob, I most certainly agree with you. At the beginning of my code experience a decade ago I wrote my own CMS-like experiences. They were crude, but I learned alot. But the learning and low expectations allowed for much excitement.

    Now, almost a decade later, and with a lot of sites in tow, I’m frustrated and bored. I used ——– for a while. Nice blogging tool. Terrible as a CMS. I’ve seen ——– templates and plugins that would make you scream. I’ve starterd to use ——– this year, much better; but the lack of MVC support, a solution that doesn’t compile and other issues dampen the pleasure. And still, it’s all centered around it’s one true way, and sometimes it’s really, really clumsy. But for the price, it’s actually pretty darn good.I haven’t given up. But it’s getting harder as expectations and competition drive down costs to be, for all practicle purposes, by myself. 

    All I want out of “CMS-like” experience is for the tool to make it easy for my customers to enter and manage structured data – and then GET OUT OF THE WAY. I don’t care about reams of code and jacking the page pipeline just to auto-magically get a route match for a preview, which if I have to overcome is like wrestling an alligator. And who says every element has to be navigable content? I don’t care to have reams of configuration code randomly stored in the database and in config files, with no rhyme or reason. And most importantly, I would love to have an attractive, simple experience. Yet almost every CMS I see is dated designwise, and has a hard time making all of the features presentable and intuative to the client. I’ve tried to build my own, but it is very, very difficult. I’m still going … even now, but it is night my friend.

    1. +1 for ”
      All I want out of “CMS-like” experience is for the tool to make it easy for my customers to enter and manage structured data – and then GET OUT OF THE WAY”. I’ve had the same experience trying out some .net blogging software lately, and in the past also with drupal. They all invert the control up to the frontend. Some force you into a certain url scheme. You always end up either fighting some stuff you didn’t ask for, or changing your needs to fit the framework.

  2. Another side of the story is how many clients actually do changes by themselves ? The CMS editor was invented to give end users option to “add” or “edit” content. However that doesn’t seem to be the use case anymore. Need a disruption in this industry.

    1. Agreed, CMS really just solves a developer’s problem of “I don’t want to spend time building and maintaining your site”.

      CMS’s try to solve too many problems. I don’t want it to be an entire templating solution. I don’t want it to be routing and caching solution, there are much better solutions for that.
      The original problem of add/edit content can probably be solved much more easily using a document database and a simple admin UI.

  3. What I want out of a CMS is for it to be only a CMS. I don’t want to have to use someone’s dumbed-down framework for the whole darn web site just so end-users can manage content. Quite the opposite, I want to drop someone’s CMS module into my [.NET MVC | Ruby | PHP | whatever] application. 

    I’m writing this comment in Disqus. Disqus is totally platform agnostic. You don’t have a ton of options out of the box, but it’s also got an API, so you could replace their UI with your own without much trouble. I want a CMS that works the same way. Now, as of today, I probably wouldn’t be comfortable with the actual content of my web site being hosted in one place, the comments in another, and structure in a third.. but hey, the cloud’s the future, I could see that seeming like common sense in the not so distant future. Drop in some javascript on any web site, and you’ve got a CMS. There are issues like SEO and latentcy for now but the point is — it ought to be this easy, it ought to be a completely separate concern from the design and architecture of the web site.

    Today, maybe it would have to be something designed for a given framework, but the point is, I want to use any framework I want without having to reinvent content management.

    1. James, I agree with you totally. I had tried to imagine what if it were possible to develop a CMS as a service using something like odata. It’s just very, very difficult todo because at the end of the day, you still have to structure your data, manage it, provide a useful development and editing environment, etc. 

      I do think it would be possible to build an abstracted framework for UX on MVC and ship it via nuget to lay the foundation for people to build on. But even that is not as simple as “I know kung fu!”.

      1. Yeah it’s hard – and sounds like we’ve both tried to do it before. I wrote a client/server CMS in VB6 in the mid 90’s that actually worked out fine and got used on a number of projects. But it was tightly intertwined with the site architecture. You could do some cool stuff with VB6 and a million activex controls..

        Lately I’ve been slowly working on something using ckedit that lets you edit content blocks inline (which honestly is not very difficult technically, it’s astounding that you still can’t do this with wordpress or blogger, e.g products supported by multi-billion dollar corporations). From my perspective the difficulty isn’t in creating a reasonably simple way to interact with the content, it’s creating an abstraction that is not tightly wound up with your site architecture so you can easily drop it in somewhere else. There’s styles that must be shared, and conventions for content insertion that the client and server code both must understand, data storage, and …

  4. Oh god you need an introduction to Umbraco. Trust me, it will make you happy. Find me on twitter for assistance is you want; name = rolandwolters

    1. Umbraco is good and I like to use it. However, it still takes over the whole web site, doesn’t have an easy way to work with tables out of the box – there is the Dewd project however, thought it is a bit clumsey. Projects that use it don’t compile, and on and on.

      I think what we may be talking about above is something like the gist of Asp.net’s Dynamic Data, just with a SIGNIFIGANTLY more advanced experience out of the box. That would allow somebody to create darn near anything.

      However, bringing something like that to life is very difficult. I’m using ASP.net MVC and been working this direction for a long time in my spare time. But the problem is that creating the right user experience,  keeping a convention-oriented developer experience, and not overly intruding on the developers work flow are really difficult to do.


    I enjoyed reading your nice blog. I see you offer priceless
    info. Stumbled into this blog by chance but I’m sure glad I clicked on that
    link. You definitely
    answered all the questions I’ve been dying to answer for
    some time now. Will definitely come back for more of this.


  6. You need to look at it from the consumer’s perspective. Consumer, being the business the content is for, not the person arranging the content. They’re going to want something that is inexpensive to set up, but more importantly, something that is inexpensive to maintain & change “frequently”. Consistency is key.

    I’m sure a lot of businesses would like to have something that can look in a way, and behave in a way that sets them out apart from the reams of other sites out there, but uniqueness = non-standard. Change becomes expensive, and while you might consider your own home-brewed solution to the problem as not being much more expensive to set up, or even customize down the road, customers might not agree, or be keen to be locked into a single service provider.
    Any framework that will ever be developed will soon appear “dated”, because it is dated. Something like a CMS is a huge investment to write, so the ones you buy today were started years ago in older technology bases. Starting one to today’s feel will be ready for use in 2-4 years from now.

Comments are closed.