In December 2007 I held a short presentation on the various Ruby on Rails CMS available. You can download this as PDF.

For further posts and articles on the topic stay tuned.

The Tasks

Basically when thinking about what you could do with a CMS or in what situation you need it, you can cut down the requirements to two opposing systems.

On the one side you have a steady growing application with a lot of controllers, models and layouts to which you want to add some static content like a contact page. Many people do this by adding a controller with empty methods and corresponding views with the content. This is definitely the most basic way, very comfortable if you want to rely on your normal versioning system, but you’d have to go into the source files. For the case you are starting a new application you might be look for something more, a basic system where you can easily plug in your own controllers, where you have well-tested user and group management.

Opposing to that there’s something I’d call “my mom’s website”. The focus lies on the content which should be changed by the owner. Every internet agency creates such pages for its clients. The main goal is to let the client do as much as possible themself, without breaking the whole system. You don’t want to be called by them every week so add a new paragraph, fix a typo or something else. And of course every odd client comes up with a wish like a map, a newsletter or something else which requires to add a controller and some models to the basic CMS.

The CMSes

There are plenty of small and big CMSes available and there’s at least one for every need. In a loose order of complexity, starting at the simpliest:

comatose

comatose is definitely the most simple CMS available and some people might not consider it as being one. It basically is only good for creating pages, giving them some order and structure and printing them on the screen. There’s no user authentication or default output for a public navigation built into comatose.

If you already have a finished, dynamic application and want to add some static pages like “about”, “contact us” or “aliens go here” then you have a few easy options like static files in the public directory, fast but with a lot of work if the layout changes. The second option is a front-controller used in many tutorials with methods for the pages you need and the content files in your views directory.

goldberg

Goldberg comes with a all the basics you need start a web-application. It gives you user and group management, full access control for all your controllers and actions plus a simple cms for your about, contact etc. pages. With the access control features you won’t have to worry about your before and after filters, you just set that through goldberg and it works.

Goldberg is designed as plugin which means you can remove it very easily and your app should still fully work. Btw, Rube Goldberg created comics with very very complicated machines, quite the opposite.

adva_cms

adva is a pretty new cms on the market, started in early 2008, but its roots are going very far. The base is mephisto, both back and front-end, and around that you can add plugins through Engine. Currently plugins for wikis (using signalwiki), forums (using beast), blogs are available and you can add more than one of each to your website. Together with the multi-site features from mephisto, adva looks pretty much like the tool for everything, like Drupal for the php world.

... tbc

Template engines

There are also different template engines used in the CMSes:

Leave a Reply