Note: I have explored Browser CMS recently. It is quite new CMS or rather it is very new to communities. However, i think it may worth saying something about it as well, so this post has been edited to include BrowserCMS.

If you are looking for CMS in ruby on rails, the most popular ones out there should be Radiant CMS and Refinery CMS. And there is a relative new CMS called Brower CMS. I have spent some time looking into each of them in order to select a CMS for my projects. There is no straight answers telling you which one is better. If you understand all of them, you will know that why I say so. All of them have their own advantage and disadvantage, so which one to choose is really depends on your needs. I will explain the difference between Radiant and Refinery and Browser CMS in this article.

1. Rails and Ruby version support

Radiant: The current Radiant version is 0.9.1. Radiant is using vendor rails, meaning that when you install the Radiant gem, it comes with its own Rails as well. For Radiant 0.9.1, the Rails version is 2.3.8. You can’t change rails version, as it is using vendor rails unless you modify the Radiant source code. However, for Ruby version, Radiant 0.9.1 supports 1.8.6 and 1.8.7. I tried on 1.9.2, it doesn’t work. I managed to fix some compatibility issues, however, there are still more. So I gave up doing that. Future version of Radiant will definitely support Ruby 1.9.2 I believe as there are already some works done in Radiant branches.

Refinery: Refinery is the only popular Rails CMS out there now that supports Rails 3, or officially supports Rails 3.  For Ruby, it should be 1.8.6 above. Of course, since Refinery supports Rails 3, so you should use Ruby 1.9.2.

Browser: Supports Rails 3. Highest Rails version 3.0.9 with Ruby  1.9.2.

If you think that you definitely need a CMS that supports Rails 3, then the last two may be the options.

2. Integrate with Existing Rails Project

Radiant: When you create a Radiant project, you will see that the project folder doesn’t comes with an app folder, which means it doesn’t have controllers/models/views, where you can add your custom controllers to create dynamic pages. Even when you add load path to environment.rb, the routes simply won’t be loaded as well. However, the good thing is that Radiant comes with a very powerful extension systems. If you create an extension, you are able to have your own controller/models/views and even routes. Basically, your extension would be loaded like a Rails projects. And there is also where you could put your own custom controller/views etc. That’s to say, if you want to create some dynamic pages that can’t be managed by the CMS, what you should do is package all those pages as an extensions.

Refinery: With Refinery, it is much easier to integrate into existing rails project or the other way round. In Refinery created project, you could see the folder structures still like how a normal Rails should look like. It still have app folder, where it contains controllers, views, models. So you can organize all your customs controllers views inside there, just like a normal Rails project would. Of course, you need to add your routes in routes.rb. That’s why I say Refinery is very easy to integrate into other projects.

BrowserCMS: BrowserCMS created project behaves like normal Rails application with BrowserCMS required as a gem. So if you want to create your own custom controllers/views, it is easy. And you can use existing layouts created in the CMS as well.

3. Multiple Layouts

Here is an important difference it will greatly decide which CMS to use.

Radiant: Radiant has a very flexible structure. It has pages, layouts, snippets. Snippets are those pages or parts that you think that you may reuse in a lot of pages, so you can organize it into snippets, like Rails partials. So in layouts or pages, you can call that snippets easily with Radius Tag.

<r:snippet name="snippet_name"/>

For the whole site, you can define multiple layouts pages, so different pages can use different layouts file. This is quite important, as you don’t always want every page of a website looks similar.

Refinery: Refinery are quite different in how they organize the pages. In Refinery, the pages are still organized in the Rails way. When I say Rails way, it means that it have one layout file in the views/application where every pages when render are going to use this layout unless specified differently. When you want to modify this layout, there is no way to do so in the admin panel. What you have to do is to use Refinery override command

rake refinery:override view=pages/home

This will create the corresponding view file in your projects app/views/pages/home.html.erb file. Then you can modify the erb files. This is how you can modify the views. So the admin panel is only for you to edit the page content, and change some css. That’s it. If you want to do something like modify layout, you have to be a developer to do it. So the whole site is sharing one layout as well. This is usually a big problem.

BrowserCMS: This is a bit different with the other two CMSs. You are able to create any layouts in the admin panel. And this is layout that you can see exactly in any Rails application because BrowserCMS use erb template system to allow you to create template.

What’s more, you are able to define partials and write partial contents in admin panels! This is extremely powerful. However, with the ability to write ruby code in the template, it has expose a very serious security problem. If someone is able to hack into the password of administrator, he is able to delete the whole file systems in your server and download the whole database.

4. Multisite support

There is an multi site extension for Radiant. I have tested it out and it is still working for Radiant 0.9.1. However, Refinery doesn’t support multi site. BrowerCMS doesn’t support this as well.

5. Admin Panel

Radiant is using Prototype as the admin panel javascript. Refinery is using jQuery as the default javascript library. So I have to say that Refinery has some advantages here. Although on the front end, you don’t have any difference as you can choose any javascript library to use. Jquery is gaining more and more popularity that it is the dominate javascript library with active development and support but not Prototype. Since Radiant is using Prototype in admin panel, it means that any extension that needs to modify the admin panel may use Prototype as well. When I say, it means that the extension author can still choose to use either jQuery or Prototype. If you hate Prototype a lot and are willing to convert the existing admin prototype javascripts to jQuery, then what about those extensions that already developed with prototype?

BrowserCMS: It is using jQuery in admin panel. However, it has small small layouts issues in IE, and it is best viewed in FF. The browserCMS comes with drag and drop of pages function. However, I tried and find that you can drag and drop the page for one time, if you want to do it again it is not working anymore. This is small issue which may be fixed, however I feel that this is released so I expect everything should be working fine.

6. Extension

When it comes to extensions. Radiant of course has more extensions. Reason being:

1. Radiant has been out much longer than Refinery

2. Radiant’s core library is very light weight. e.g it doesn’t have WYSIWYG or WYMeditors, you have to install extensions. However, Refinery comes with all of them in core. So by using Radiant you must reply a lot on third party extensions. With Refinery, you either reply on the core or rely on yourself.

BroswserCMS and Refinery has very few extensions.

7.Version Control

Radiant: Radiant doesn’t come with Version Control for pages. However, there is one extension out there doing this. I tried but it is not working anymore for Radiant 0.9.1. You have to update the extension if you wish to use it.
Refinery: I think it doesn’t have and there is no existing extension does it.
BrowserCMS: It comes with version control for pages and even for files and your custom defined content block! This is really great.

8. CSS/JS editing

Radiant: Radiant manages css/js just like a normal page. So you are able to edit them freely in the admin panels. If you have version control set up, you can apply to css/js files as well.
Refinery and BrowserCMS: It doesn’t support editing css/js in the admin panel. You have to upload as file. This is quite inconvenient sometimes to users. Good thing is that since css/js are organized as files, you can do caching and sprockets to enhance the performance.

9.WorkFlow

The good thing about BrowserCMS is that it comes with workflow. It means that you can configure it so that some users can only edit contents, and it needs to be approved before it can get published. However both Radiant and Refinery doesn’t have it.

On the other hand, Radiant is actually very flexible to extend both in functionality and Admin UI. So we can write a custome work flow for Radiant. However, since workflow comes with BrowserCMS, you have to evaluate if it fits your needs, as it would be very difficult to modify if it doesn’t.

26 comments on “Radiant CMS vs Refinery CMS vs Browser CMS

  1. “So the whole site is sharing one layout as well. This is usually a big problem.” Really?

    • shanison on said:

      Ya. This is what I think of. If you have a website, but for example on home page you want to have a different look and feel with another page. This is quite common. E.g in home page you probably don’t want the sidebar . Then one layout is a big issue.

  2. Burl on said:

    Can we overwrite controller and specify another layout for home action? Btw, great article!

  3. Mansour on said:

    Thank you. Great article. Saves me sometime. :)

  4. nawfal on said:

    wonderful!!

  5. gzbigegg on said:

    Good article! I was on Radiant before hitting your article, but now I am about to give BrowserCMS a shot. Thanks.

  6. great article, very informative and didnt expect what i read

  7. Matías on said:

    Reviews and comparisons of Rails based CMS are scarce. This is one of the most informative I have seen. Thanks!

  8. Josh Illian on said:

    Really appreciate the time you spent with these comparisons. I’ve been evaluating the same three CMS’s and I had totally missed the fact that Radiant still does not use Rails 3. In fact, even version 1.0 (which is still a RC) isn’t there. Something definitely to consider.

    • shanison on said:

      Thanks for reading. After the comparison, in the end I still choose Radiant for the project I am doing. And I have been developing a project on top of it for more than half a year. I would say Radiant is very flexible, although it does not support Rails , which is something that it needs to catch up with.

  9. Thanks for this really informative post Shanison. In addition I can say that I find that BrowserCms has the most complete documentation. The drag and drop stuff for me also only worked once, guess they know about the issue. The design of the admin UI could be a bit nicer and cleaner in structure. Digging and investigating further, I am interested in doing 1-to-many or many-to-many relationships in my own extension, did someone ever tried that?

    Just my 50 cents… cheers Folks and take care ;-)

    • shanison on said:

      Thanks for reading Andre. In terms of UI I think Refinery CMS would be the best among all. However, this may not be the most important criteria for you to choose an CMS unless you don’t need any customization to the CMS.

  10. Shane on said:

    Thanks, I will use refinerycms instead of radiant.

  11. Geraldo Chatel on said:

    Can you do comments/compare about locomotive cms?

    • shanison on said:

      Hi Geraldo, sorry that I not that familiar with locomotive CMS, and I have been busy recently. I will do it next time probably. To have an in-depth understanding of one CMS will takes some time, and you probably need to check out some of the source codes as well.

  12. Dixon on said:

    Great article, your effort is much appreciated.

    Would you do an update a year later to compare what has changed?

    • shanison on said:

      Hi Dixon,

      Thanks for reading. These CMS are under active development so some things might have already changed.I will try to keep this article up to date.

  13. Mohit on said:

    Great articke Shanison,
    You mentioned an excellent security issue with browser CMS that it allows partials. Is there a way to turn that feature off? If that could be done, I think browser CMS beats others..

    • shanison on said:

      Hi Mohit, thanks for reading. I think you can’t turn that feature off unless you want to do some monkey patches.

  14. Barryhar on said:

    One thing that doesn’t seem to come up in this conversation is the end user. Is the CMS easy for them to understand and use? I don’t know any developer that likes to get calls and questions from their clients about this– that’s the whole point of a CMS, so developers can do development!

    Shouldn’t that be a consideration?

    • shanison on said:

      You raised an absolutely an important criteria when evaluation a CMS. I should add one on this soon. Thanks.

  15. Pingback: Reasons To Choose Radiant Cms A Ruby On Rails Cms | cmsenergizer.org

  16. Beyowi on said:

    Hi! Nice article, in my opinion RefineryCMS (or Refinery) is the most popular Rails content management system developed by Resolve Digital (link to Resolve Digital). It is a flexible CMS that can be customized to meet specific project requirements such as blogs, portfolios, contact form and more! Your website looks “wow”, unique, beautiful and you have full control over your page content 24/7/365.

    • shanison on said:

      Hi Beyowi, I agree with you that Refinery is now the most popular Rails CMS and the admin UI is indeed quite nice.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

HTML tags are not allowed.