I was working on project, that part was a basic tree-like structure of static pages, that needed kind of CMS for client. I had two solutions:
- implement awesome_nested_set + rails-ckeditor + paperclip
- find a ready-to-go solution
After a little bit of googling tens of out-of-date pages&blogs, I ended up on a great website http://www.whichrubycmsshouldiuse.com/ by Youssef Chaker.
I decided to give a try to BrowserCMS, as I can easily integrate it with exisiting project that only part is going to be controlled by CMS.
I have made my mind basing on two nice comparisons found on http://www.whichrubycmsshouldiuse.com/:
Drupal | BrowserCMS | Radiant | adva-cms | |
---|---|---|---|---|
Links | homepage — documentation — modules repo | homepage — repo — documentation — modules repo | homepage — repo — documentation — modules repo | homepage — repo — documentation |
Documentation | Core documentation is ok, but very brief and rarely helpful. Forums are messy, long and badly organized. Documentation for Drupal 5 gets mixed with those of Drupal 6. | Not complete, there is enough to get you started and the responses to the mailing list are fast. But documentation definitely needs completion and expansion. | Extensive documentation with more than a 100 wiki pages. Great support on the mailing list and by community. | Limited documentation (probably because there is little to document!). |
Installing | Manageable: download the source code, configure a settings file or two, create your DB and run the installation script (all of it has to be done each time). | Easy: Install the gem (once), create your Rails app using the template, create your DB and run the rake tasks. | Easy: Install the gem (once), create your Radiant app, create your DB and run the rake tasks. | Very Easy: Create your DB, create your Rails app using the template, and fill the simple form. |
Upgrading | Ridiculously difficult, specially if you are using SVN in your team for source control. | Piece of cake, install the appropriate gem version and regenerate the file. | Fairly simple, also requires updating the gem and then updating the Radiant assets in your project | No clue, sorry! |
Theming | Requires creating multiple templates (one general page template and then one for each section or view) and multiple hook functions. Keeping track of all the places to commit changes can get too cumbersome. People using a CMS want to develop their website in their web browser and Drupal forces designers to work with source code. | Have to create template files, but development can happen in the browser. Only need upload a CSS file with your project. | Everything happens in the browser, even creating stylesheets. ALso provides ability for templates to inherit from other templates. | Everything happens in the browser, with also the ability to upload existing files into your theme. |
Modules/Extensions (list) | A huge list of modules is available, one of the compelling things about this CMS | Very short and limited list, but that might change soon. And the ease of writing your own makes up for it. | A good size list with probably everything you might need. | Small number of extensions that all come with the template. |
Modules/Extensions (creating your own) | It requires writing PHP code, need I say more? I guess I will anyway, you will need to know all the hooks and weird function names that will make your module work. No separation of code between business logic and view logic. Did I mention PHP already? | Develop Rails models that hook into the CMS through magic words. | Create a Rails app using all the awesome things it provides and then copy the necessary files over as an extension. | Can use the Rails Engine plugins system to create extensions. Or create your custom MVC content just like you would with a regular Rails app. |
Extended Custom Functionality | Done through modules. | Achieved just like in any other Rails app. | Done through extensions. | Achieved just like in any other Rails app. |
Hooking to Existing App | It is your app! | Seamless integration. The CMS runs through the gem and is completely separate for the rest of the app. | It is your main app. With possibility of integration through Rails Rack. | Allows the possibility to import existing app into the project (involves copying the files over). Building a custom application on top of the CMS is the better way of going about it. |
WYSIWYG/Rich Text Editor | Available through a module. | Native. | Available through extension. | Available through the extension, has to be enabled through settings. |
File Attachments | Available through a module. | Native. | Available through extension. | Native. |
Extra, Cool Features | Views and CCK. | Some sort of in place editing. Ability to create subparts of pages that can be easily shared. | Ability to setup a blog quickly through the database template at installation. | Multiple Site support. |
And:
BrowserCMS | Radiant | adva-cms (all the extensions come with the CMS, look at the previous posts for more info) | Wild Card Entry: Community Engine | |
---|---|---|---|---|
News | news | news | ||
Blog | blog | Radiant is built to support blogs out of the box but a couple of extensions provide more support: blog — blog-tags | adva_blog | built in |
Forum | forum — group-forum | adva_forum | built in | |
Newsletters | reader — reader-group. The reader extension is used across the board (users registration, forum, etc.) | adva_newsletter | built in through private messaging | |
Multimedia | available through attachments | paperclipped — paperclipped-player — paperclipped-uploader | ||
Community/Users | members — reader | adva_user — adva_activity | built in | |
I hope it will help you too!
wrzesień 27th, 2010
Tags: CMS, Ruby on Rails