Adios Rails-as-CMS
The vast majority of traffic that comes to this website is generated by interest in the Rails-as-CMS post made over a year ago. While the attention is appreciated, it feels like this particular meme has run its course – at least for me.
Gaspard Bucher’s post Is Rails a CMS? puts paid to the Rails-as-CMS argument for most CMS implementations. I don’t buy his argument completely – for instance, you lose as much if not more flexibility by adopting the constraints of Gaspard’s Xena, Radiant or any of the other Rails-based CMSs out there. But I get where he is coming from – in general you are probably going to be better off embracing an existing package and extending it to meet your own needs.
The Rails-as-CMS idea still holds some interest for me – and probably for a few other Rubyists – because it allows for experimenting outside of the general case. My own need for a suitable vehicle for publishing some of my writing online is very different to what most people are looking for in a CMS. I accept that, and I’ve probably going a bit further by dropping Rails altogether for This Purple World and moving to Sintra. The results at the moment are pretty uninspiring, but once I get a moment to clean it up and post a more recent version on Github you can probably expect to see a new “Sinatra-as-CMS” argument start to brew. :)
Hola Seamus
With Rails-as-CMS out of the way – or at least on hold – I’d like to focus my energies back on a project I began a long time ago. Seamus started out as an implementation of the Content Mangement Interoperability Services (CMIS) specification. CMIS is about as far away from CMS as you can possibly imagine, despite the common “C for content” in their respective acronyms. CMIS belongs to the world of Enterprise Content Management systems – an evolution of the document- and record-management systems of yore. There are plenty of players in this market, from IBM and Microsoft with their proprietary offerings across to open source providers like Nuxeo and Alfresco. Most of the big players – including Nuxeo and Alfresco – have signed up to support CMIS in their products.
With the original incarnation of Seamus I managed to get a very basic implementation of CMIS version 0.5 going but was stymied by (a) spending way too much time trying to get my head around the way CMIS uses the Atom Publishing Protocol and REST and (b) having nothing real to wrap the system around.
I’m avoiding the hitting the same problems with Atom PP this time around by effectively ignoring the CMIS service model – instead using its domain model as inspiration and assuming that exposing the the system via a Atom/REST or SOAP interface should be relatively trivial, providing I stay close to the specification’s domain model.
The new implementation of Seamus will attempt to stay “real” by concentrating on a single problem domain – specifically the area of requirements management. Requirements are documents like any other – they have workflows associated with them, need to be maintained, versioned, distributed and so forth in a controlled manner. I’m imagining bootstrapping Seamus by using it to maintain its own requirements, thereby proving the system and creating a useful document set at the same time. And if Seamus can be used to satisfactorily manage requirements it may very well be extended to handle other types of documents.
I won’t be writing a single line of code until I have a clear baseline set of requirements ready. I know – a very “enterprisey” approach, but one I hope will pay off. I don’t have any high hopes for Seamus, other than what I expect to learn along the way. But it’s going to be an interesting journey, I hope.
