Remote Synthesis
Search my blog:
Viewing By Entry / Main
May 04, 2007

Open-Source Content Management in ColdFusion

Whether dealing with small or large sites, content management is one of those ubiquitous project requirements. Many people roll their own, but there are a handful of both free and open source solutions available in ColdFusion and I will cover my experiences with a few of them here.I do want to note before beginning, however, that while this article contains some criticism of the projects discussed, this is done with the goal of helping people determine the viability of the solution for their project. I respect anyone wiling to put themselves out there by making their code both available and free.

FarCry (of course!)

You can't discuss content management in ColdFusion, never mind open-source, without mentioning FarCry. When you are talking about enterprise level content management in ColdFusion, FarCry should always be at the top of the list regardless of the fact that it is free. However, many times, you don't need an enterprise level CMS, and that is where this article will focus (plus, I wanted to highlight some solutions that don't get nearly the attention FarCry does).

Katapult

Katapult bills itself as a simple content management system, and it really is designed for a basic site that needs some content management capabilities (say your small mom and pop business client that wants a basic web presence). Essentially, once you drop the Katapult files into a folder within your web root, and edit a few variables in the programmatic config, you are set to go (Katapult comes with an extremely basic layout that you will want to change). Katapult does not use a database, so no datasources are necessary.

The way Katapult works is it stores the navigation nodes as WDDX written to a file and it writes out your content to files within the pages directory. Despite this, it does have some basic versioning, which it handles by keeping up to five prior versions of any given page. Editing is done in-line using FCKEditor and pages don't have any special attributes other than the HTML they contain, so making custom containers would seem to be rather complicated - though it is hard to tell how these would be handled as there isn't much documentation provided. Also, there doesn't seem to be any type of user management or roles and, therefore, no content approval process or workflow.

Nonetheless, my initial experience is, if you are setting up a very basic site, one that might have been straight HTML, and wanted to add some no frills content management features, this isn't half bad. It certainly would be something your non web savvy client with very tight budget could understand without much instruction and they could probably live with the limited feature-set. Katapult can be downloaded at http://labs.fusionlink.com/katapult/index.cfm?page=projects/katapult.

Gerobase

Gerobase was, I believe, a paid product until July of last year when the creator decided to open source it under the Common Public License Version 1.0. It shows in that this is definitely the most polished of the three CMS products I am covering in detail here. However, this comes with a decidedly negative factor in that the owner stated that his intention in open-sourcing the product was because he no longer intended further develop it (http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:245248), though it is unclear even what implies with regard to support, paid or otherwise. This is also a bit troubling in that the documentation is very light excluding a few tutorials that both require registration and don't cover most of the basic topics like installation. Gerobase is available through Gerorama at http://www.gerorama.com/gerobase/.

Gerobase has a Flash based user-interface for much of the administration which seems very well written and is generally very intuitive. Much like Katapult, installation was mostly a matter of copying the core files to my webroot, although Gerobase does require a mapping and a datasource.The direct content editing is done using FCKEditor. The metadata and other information associated with your pages and navigation are stored in the database (a sample Access database is provided) but the page content is written out to .cfm files - there are 3 .cfm files generated for each page under a folder created for that page in fact. This provides you the ability to add your own custom code into the page display so as to modify the way it displays, for instance, based upon the users security level. While Gerobase does include enhanced user management with customizable roles, it did not appear to provide any type of versioning or workflow however.

Interestingly, navigation is managed independently of content items which allows for some tighter customization and control. You can make navigation items show depending on the users login status and content can be restricted by role. There are also plugins included for search (it appears using ColdFusion's built-in Verity), forums and emailing registered users. I assume that you can add additional custom modules, though I am not clear how and I didn't see documentation specific to this.

In the end, Gerobase is appears to be a solid solution for your non-enterprise level content management with a slick and intuitive UI and most of the features you would need, though the lack of versioning is a bit of a big deal. Perhaps, someone would take over the development of this project because it seems a shame to let it die given the general lack of alternatives.

SpeckCMS

The Speck CMS has been around for quite some time and supports ColdFusion 5+. The core files, example applications and documentation can be found at http://www.speckcms.org/.

One thing you will notice when installing Speck is that it uses one set of core files for multiple sub-installs along the lines of FarCry. If you examine the core files directories you will also see that it is architected though a library of custom tags (a la Spectra) that represent its core API. The API is built to allow it to be extended in specific areas either globally or on a per application basis. While these are definitely admirable qualities, the architecture does seem to cause this one to be quite a bit more complicated to install than the prior systems and, I will admit, I never seemed to get it to work completely for the provided Sydney Jabiru Sample Application.

Unlike Gerobase and Katapult, Speck has quite a bit of online documentation covering installation and customization, which is a definite plus. I had to stray somewhat from the basic install instructions for varying reasons which may have, in part, been the source of some of my troubles. For instance, the sample app would not run when placed simply under their recommended /inetpub/webapps/ directory, so I put it under wwwroot and then modified the config accordingly (although I did not initially notice, nor did I see it documented clearly, that these config changes would not take until I modified the application.cfm in my sample app to add refresh="true" to the cf_spApp call). I also had to add a mapping to /sydneyjabiru pointing to the root of the sample app or I couldn't get it to locate the application specific type handlers. Lastly, I had to modify my Apache config to recognize default.cfm as a folder default page.

After all of this, I did get the home page to run, but several of the example pages still broke with a SQL syntax error (I used the provided Access database for my test as no scripts were provided for the other supported RDBMS). I also ran into difficulty when trying to manage the content. Speck provides some interesting features it seems, like versioning, a simple workflow approval process and in-line page editing, but I could only get so far as logging in. Beyond that, trying to view pages in edit or review mode didn't work (it didn't do anything but display a loading message briefly - p.s. I was testing on Firefox), and the navigation window errored out. So, I was forced to end my Speck test short because of the varying issues I encountered, which, like I mentioned, may have been install issues that can be corrected, but I certainly give it a low mark on ease of installation.

What Else?

Unfortunately, not much that I am aware of (and I follow this stuff pretty closely after all). CF:XOOPS doesn't appear to have had a release in over two years and CF-Nuke has seems to have gone away. So while the ColdFusion community is lucky to have a full-blown continually developed enterprise level solution in FarCry, your options are pretty limited beyond that. However, each of the solutions here, while having some drawbacks also show some promise and may even fit the bill for your next project. Also, I have seen the ColdFusion open-source community explode lately and, I hope, or rather expect, to see some new solutions coming down the pipeline soon. As a postscript, as if to prove my point, almost as soon as I finished writing this, Jason Sheedy released his Bytespring CMS as open source and it is available at http://www.jmpj.net/jason/page.cfm/BytespringCMS (I hope to review this soon).

Comments
todd sharp
Bytespring - that's the one I was thinking about the other day! Definitely review it - it takes a different approach then most where most of the content editing is done inline with the page when logged in as admin (as opposed to a dedicated admin console). Seems well suited towards the non-technical client.


James, F.E.
CF Nuke ended up at RIAForge (http://cfnuke.riaforge.org/). The developer has changed the name to BluApple and is re-writing it. According to the website (http://www.bluapple.net/) there should be a new beta out sometime soon.


Jason Sheedy
Cheers for posting Brian :) I look forward to hearing what you your feedback about it. :) Todd, you hit the nail on the head .. it is targeted at the Mum and Dad / non-technical small business owner niche.


Tony Garcia
Great post, Brian! Another CF open source CMS that is on the horizon has been announced by Digital Positions in Atlanta. They decided to open source their i3SiteTools solution, rebranding it Boomsocket. Check out: http://www.d-p.com/Internet-Development-Blog/article/ColdFusion-Open-Source-Announcement.cfm http://www.boomsocket.com/ I've also read about another company releasing their CMS free to the CF community (although it's unclear if it will be open source). http://documentation.digital-crew.com/index.cfm/page/developmentblog?rbId=15 With all these developments, the CF community will hopefully have more CMS options in the near future.


Brian Rinaldi
Thanks Tony. I have been keeping an eye on the Boomsocket project and hope to try it out when it is released. I did not know about the Digital Crew TeamworkCMS though the post doesn't make it sound like it will be open source.


Mark Woods
Hi Brian, Just stumbled upon this post now. Thanks for checking out Speck, and sorry you ran into so much trouble. We stopped doing extensive testing with Speck some time ago because we simply haven't the time to test all the supported platforms anymore. We also kinda neglected to test the demo app because, um, we suck at running an open-source project. Despite that, Speck is alive and well and in production use on quite a few sites. We're also nice people, or at least we think we are, and we're only too happy to help people on the mailing list if they're having trouble. BTW: The version of Speck available for download is the one we run on our own Linux servers with Apache, Postgres and CF6 or 8 and on a client's server that runs Speck on Windows 2003, IIS, SQL Server (2005 I think) and CF6. We don't test any other platforms regularly (though we should really test the demo app, did I mention that we suck?). Regards Mark


David
This is a really useful articles, thanks a bunch guys!


Michael Muller
Nice post Brian, and thanks everyone else for posting other CMS. What do you think of Sava? Seems pretty cool, though a little much for simple sites, which is what I was looking for. I do like the ability to manage more than one site from a single admin, and push content out to those multiple sites simultaneously. http://www.gosava.com/


Brian Rinaldi
@Michael - I don't think Sava was around when I wrote this and I haven't installed it yet. I have read about it and it sounds very interesting.


Derek
Anyone know of a CMS just for text content? Don't need a full-blown CMS that is an all-in-one solution. Just want to be able edit text and have revisions. Derek


Write your comment



(it will not be displayed)