Open-Source Content Management in ColdFusion
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).
