The only way to solve a CMS problem is create a programmable Content Engine. Other than that, it is very hard to create a CMS that can fulfill a specific website needs.
Programmers tend to scoff at the idea of building a website. It’s a solve problem, they thought. Except that there are about 1000 different CMS out there trying to figure this problem out.
It’s not yet a solved problem.
Why ? Because a website is very designer driven. When the designer comes with new and innovative, suddenly the CMS is having trouble to accomodate those innovative web features – because the CMS was designed to accomodate the old designs.
So the best you can do is provide
Content API + URL Mapping + Faceplate for Input + Templating Engine + Scriptability.
Without this, congratulation, you become the 1001th CMS out there.
I totally agree with him. As I said in my post, I think that the most perfect CMS in the world would just be a really, really good API.
His list of things he writes looks very much like Rails actually. Rails has some things you can apply to objects like “acts_as_versioned” and such which would get a default Rails install close to a CMS. For more on this, see our post on Rails Blurs the Lines.
This also goes back to my post about user interfaces. If you’re building a CMS, build the API first. Make that perfect, then build a great interface and throw it in as an optional bonus.