RefineryCMS – a Ruby-based Alternative for WordPress (UPDATED)
The decision of what tools you use for any task tends to have a huge impact on your work, time and final results.
Before using the most popular solution, it’s a good idea to do at least basic research on your other options. I’ll show you a good alternative for many CMS apps built in Ruby – RefineryCMS. You might find basic information on the subject in our previous article, CMS Comparison for Rails App, but this time I’ll go into more details and answer the following questions: ‘is Refinery worth using at all?’ and 'How can we compare it to the most popular competitors like WordPress, Joomla or Drupal?'
Before we start, you should know some basics about CMS. It’s an abbreviation for Content Management System and it describes all applications used to create or modify digital content. It might be used for writing and publishing blog posts (like this one!) or for creating your personal webpage. You can also use CMS apps for your business. Apps like this might serve as tools to interact with your customers, share knowledge about your new ideas or even as an e-commerce solution.
Setup and Core Functionalities
Currently, the stable version is 4.0.3 and has over 384 contributors- the basic setup has been extensively documented in the official guides, so I won’t cover it here in too much detail.
There are two ways of using RefineryCMS: As a part of an existing Rails project or as a standalone app.
Either way, we’ve got some standard plugins:
- refinerycms-authentication-devise – Contains implementation of simple users’ authentication;
- refinerycms-wymeditor – Adds support for a visual editor used to create posts;
- refinerycms-acts-as-indexed – Adds support for searching inside Refinery's admin interface.
The core functionality for page management, which excludes the most common features like using a WYSIWYG (what you see is what you get) editor for creating static content, allows you to:
- Upload files with special support for images;
- Define an extra content hierarchy (main pages, subpages);
- Add some meta data used by search engines to increase the visibility of your page;
- Set a template to define the layout for pages you want to use;
- Define the visibility of pages in the main navigation for the most important content;
- Set URL redirections for some subpages.
There are also some configuration settings not available in the admin panel by default but they are pretty easy to enable in the code:
- Define credentials for Google Analytics integration to let you know about the most popular content and behaviour of your virtual visitors;
- Adding translations for the resources available on pages.
OK that looks quite interesting- but is there something more to it? Let’s find out!
Customization and Extensions
To be honest, the default look of the pages is just awful. However, there’s a solution (mentioned in the documentation): RefineryCMS sticks to Rails methods as much as possible, so changing the layout of the pages is very easy but it requires at least basic Ruby on Rails skills.
The architecture is quite flexible so implementing some changes or extra functionalities shouldn’t be hard for a Ruby developer. However, if you don’t have the time or programming skills to write customized functionalities, there are some extensions you might add to the app. The most common ones are listed here.
Let’s go through the list and check what possibilities might be especially interesting for you:
- Blog – An official extension that allows you to add functionalities necessary to manage a blog, like adding posts, sending comments, and performing simple moderation;
- Inquiries – A plugin that allows you to add a simple contact form to Refinery, which notifies both you and the customer when an inquiry is made. It’s possible to collect basic data, specify who is to be notified when a new inquiry comes in, and to set up a customized autoresponder email that is sent to the person making the inquiry;
- Products – An engine for product management. You can define some products with basic properties and categories (with nested categorization) and display them on selected pages.
There are a lot of extensions but, unfortunately, some of them are not up-to-date and are not compatible with the latest version. Hopefully, this will be changed soon because some of the listed plugins, like the Spree platform integration (read our article: Why Spree is a Good Choice for You and find out what Spree is), might be very useful for e-commerce companies.
So is RefineryCMS worth using? That’s a very difficult question. It’s a Ruby app and it follows the Rails convention, which might be the biggest advantage for some users - especially Ruby developers.
Are there any Ruby-based apps in your portfolio? Great! There are numerous opportunities to connect them with Refinery and gain new ways to improve your business. We cannot compare the popularity of this app to the very well-known competitors like Joomla or Wordpress but we are really excited about its future.
Version 4.0.3 was released on October 29th 2018 and supports Rails 5.1 with a lot of components being updated- with over 500K downloads we can expect more good things to come. There are plenty of useful tips out there to get started using Refinery CMS.
If you experience any troubles in implementing RefineryCMS contact Netguru's Ruby on Rails consulting division.