Top 8 CMS for Ruby on Rails

 An overview of popular Ruby on Rails content management systems 
07 July 2017   4842
Ruby on Rails

Framework written in the Ruby programming language

When it comes to CMS for web-development, PHP solutions usually come to mind immediately. However, there are content management systems for other languages as well. Let's start with the tools for the Ruby on Rails framework and have a look at CMS for Ruby on Rails.

The usage of CMS is not only the possibility to create a website or a web application without basic knowledge on code writing, but also a useful tool for more experienced developers.

It allows you to:

  • Shorten the time spending on solving common problems. Content management system offers tools for the rapid deployment of standard projects such as online stores with a set of the most necessary modules. You only have to create a site template and refine the necessary functions that are not supported by the system.
  • Simplify the process of new functional development. Web CMS usually has its own API, which simplifies the work with the engine using programming tools.
Ruby

Dynamic, open source programming language with a focus on simplicity and productivity, it has an elegant syntax that is natural to read and easy to write

Yet, it's important to take into consideration some disadvantages when using CMS for Ruby on Rails:

  • Lack of flexibility. It is quite difficult to start an atypical startup with the help of the content management system and it probably would be even more difficult than to make it from scratch.
  • Unused functional. Not all the features of the engine will be involved in the working project. However, they still will be presented in there and can affect the performance and the compatibility with other modules, especially custom ones.

So, here's a close up iof best open source CMS options are out there for for Ruby on Rails?

Refinery CMS

It's one of the top RoR CMS. Primarily because it is focused on the creation of commercial websites. On top of that, CMS has quite good extensibility and a lot of ready-made modules. Among them you can find tools for the implementation of the Elasticsearch search system, the creation of contact forms, calendars, image galleries.

Refinery CMS Demo Refinery CMS Demo

Key features:

  • Open Source application.
  • Built-in image editor.
  • Multi-language support.
  • Wide choice of ready-made plugins.
  • Integration with Amazon's cloud storage.

Technologies:

  • Ruby 2.0+
  • Ruby on Rails 4.2-5.0
  • SQL database
  • jQuery

Download link 

An example site creation using Refinery CMS

Locomotive CMS

This is the only engine that is suitable for deployment on a hosting. Basically, Locomotive's capabilities are used to create content sites such as corporate or personal blogs, mass media, etc.

The system supports simple work with posts and pages, the creation of templates for different types of content. There is a possibility to change layouts easily and flexibly, edit images, display of content from external services.

Locomotive CMS Demo Locomotive CMS Demo

Key features:

  • Open Source application.
  • An opportunity to purchase a specialized hosting for Locomotive from the developers. The price starts from $ 19.
  • Tags for Google Analytics integration.
  • Working with the site using the command line.

Technologies:

  • MongoDB
  • Ruby 2.2+
  • Ruby on Rails 4.2
  • Wagon command line
  • ImageMagick

Download link

Site creation with the help of Wagon command line

Camaleon CMS

The engine also offers a large selection of tools for working with content. In addition to the standard features of creating and editing posts and pages, there are tools for categorization of the entire content of the site.

Built-in widgets, ready-made themes and customizable menus are supported as well. To simplify the work with content there is the system of roles through which you can create users with the rights of administrator, editor, etc.

Camaleon CMS Demo Camaleon CMS Demo

Key features:

  • Open Source application.
  • Content's auto sharing to social networks.
  • Templates design and modules' store.
  • Engine's demo version.

Technologies:

  • Rails 4.1–5.0
  • Ruby 1.9.3+
  • SQL database
  • ImageMagick

Download link

Video instruction for installing Camaleon CMS

Radiant CMS

The engine is primarily designed for web developers and offers tools for editing templates and files. You can write your own JavaScript and CSS codes through the CMS administrator panel and output them where necessary.

The system supports flexible work with the design themes. Besides modifying them by using the standard markup languages HTML and Markdown, it is possible to do this with the templates' own language - Radius.

Radiant CMS Demo Radiant CMS Demo

Key features:

  • Open Source application.
  • Intelligent caching.
  • The control panel of minimalist style.
  • Control over users' rights.

Technologies:

  • Ruby on Rails
  • MySQL

Download link

An example of creating a site using Radiant CMS

Alchemy CMS

The engine offers a set of tools for creating your own solution with the necessary functional. Actually, it's quite difficult to use it without the knowledge of programming, though web developers will be able to gain full control over the capabilities of the CMS.

Another feature of Alchemy is a clear separation of content managers and site administrators' rights. Thus, the first ones do not have the slightest opportunity to interfere with the HTML page templates. The only one to make edits to the layout is the developer.

Alchemy CMS Alchemy CMS

Key features:

  • Open Source application.
  • Multiple domains support.
  • Flexible template editing.
  • Detailed documentation.
  • Powerful built-in text WYSWIYG-editor TinyMCE.

Technologies:

  • Ruby 2.0+
  • Ruby on Rails 4.1
  • MySQL, SQlite or PostgreSQL
  • ImageMagick
  • TinyMCE

Download link

Digitpaint Skyline

A complex system for a full and simple control of the site on Ruby on Rails. It has a set of tools for editing the resource appearance and creating page templates. CMS developers pay particular attention to the performance of sites with a lot of multimedia content and widgets. The application optimizes the loading of page content by loading blocks in stages, so that users do not have to wait for the content to appear.

Digitpaint Skyline Demo Digitpaint Skyline Demo on GitHub

Key features:

  • Open Source application.
  • JavaScript, HTML and CSS support with the code directly from the admin panel.
  • SEO-tools.
  • Easy integration of external applications.

Technologies:

  • Ruby on Rails
  • MySQL

Download link

Comfortable Mexican Sofa

The system is a set of various tools that simplify the work with the site. CMS has a built-in text editor CodeMirror, with which you can edit the code of a web resource. Sofa templates use a large number of their own HTML tags. Their backups are automatically created when working with layouts, so that you can always roll back the template version to an earlier one in case you don't like the result of the design changes.

Comfortable Mexican Sofa CMS Demo Comfortable Mexican Sofa Demo

Key features:

  • Open Source application.
  • Support for multiple sites on the same CMS.
  • Multilingualism.
  • Built-in text code editors.

Technologies:

  • Ruby 2.2.2
  • Ruby on Rails 4.0–5.0
  • SQLite 3
  • ImageMagick

Download link 

Browser CMS

CMS software that offers a large selection of tools for the developing of the site appearance. You can view the changes you make to templates right from the admin panel, there is no need to save. Page layouts are divided into several independent areas, each of which can be edited separately from the rest. It is also possible to configure the access rights to areas for different user groups.

Browser CMS Browser CMS 

Key features:

  • Open Source application.
  • The "CRUD" interface for working with content and its types.
  • Easy creation of the Sitemaps files.
  • Static pages caching for the Apache server.

Technologies:

  • Ruby 1.9.2+
  • Ruby on Rails 3.1+
  • SQL database

Download link 

Which CMS would you prefer?

These are best content management systems for Ruby on Rails listed below. Which CMS do you consider most preferable? Please, share your opinion, it is important for Hype.Codes team and for the community. Additionally, maybe you will be interested to see the results.

Refinery CMS
25% (13 votes)
Browser CMS
16% (8 votes)
Camaleon CMS
14% (7 votes)
Locomotive CMS
14% (7 votes)
Comfortable Mexican Sofa
14% (7 votes)
Alchemy CMS
12% (6 votes)
Radiant CMS
6% (3 votes)
Digitpaint Skyline
0% (0 votes)
Total votes: 51

Charles Nutter. How to move your Ruby project to JRuby and why

Charles Nutter works on JRuby and JVM language support at Red Hat.
03 October 2018   1340

— How did you get into programming and into Ruby world?

— In 2004, I was working at a government contracting firm as a Java Enterprise Architect. I was in charge of a large mainframe conversion for the United States Department of Agriculture, which meant I spent a couple weeks a month in the Washington D.C. area. One of those trips coincided with RubyConf 2004, and since a close friend had been recommending I look at Ruby, I decided to attend. So there I was sitting in a Ruby conference without ever having learned Ruby...and I understood every piece of code, every example. I was amazed and vowed to find a way to bring Ruby into my Java world.

— Which projects are you working on now?

— My primary role is as co-lead of JRuby. This also means supporting several side projects like our native-library backend (Ruby's FFI library is maintained by us using this backend on JRuby) and our String encoding subsystem (an elaborate port of the logic from CRuby). I also do much of the outreach to the community and try to make sure our users are getting their issues addressed. There's always plenty to work on!

— Which one would have the biggest general impact from you opinion?

— I like to think that JRuby, while not the most popular JVM language, has at least helped to change the JVM platform. Because of our collaborations with Sun Microsystems, Oracle, and others, we have solid dynamic language support at the JVM level along with many other projects to support alternative languages. The JVM today is a much more hospitable home for non-Java languages than it used to be, and I hope we've played some small part in that change.

— Which languages are you writing on in your everyday life? Which one do you like most? Why?

— Most days I write in a mix of Ruby and Java, since JRuby is implemented using both. I like both languages for different tasks. Ruby is a better language for building applications that need to evolve and adapt quickly. Java is a great language for writing high-speed, reliable libraries and services. JRuby gives you the best of both worlds!

— Do you like to program in Java?

— I do, especially with all the language improvements that have been added recently, like lambdas (closures or blocks in Ruby) and the new "var" syntax for declaring local variables when the static type is unambiguous.

— What do you think about Rust?

— Rust is a great language! I did a lot of C++ development in my college years, and I can tell you right now if I'd had Rust available then I would have used it. I'm especially jealous of the static-typed ownership model, which helps avoid thread-safety issues like races and data corruption. I hope to see other languages adopt this pattern in the future.

— What do you think about the Ruby language perspective? Is it or its community dying?

— After all these years working on JRuby, I do still love Ruby syntax and the Ruby way of doing things. However I worry that the language is held back too much by limitations of its primary runtime. JRuby has been fighting to make true parallel threading a reality for Ruby developers, but still today the vast majority of Ruby services are run using multiple isolated processes, wasting tremendous amounts of CPU and memory resources. I believe this is due to the C API for writing Ruby extensions being so large and so invasive...it prevents many improvements -- including parallel threading -- from being developed. Hopefully we'll see this change some day.

— Which upcoming or not well-known features of Ruby language would rush in future?

— I look forward to strings becoming immutable-by-default, as they are in most other languages. Parallel programming would be much simpler if more of Ruby's objects supported pure-immutable or "deep freeze" semantics. It's a bit like the Rust ownership model...if you're going to be sharing an object across threads, choose the version of that object that you know can't be modified anymore. This extends to arrays, hashes, and just about every other mutable object in Ruby: we need to make it easier to lock down mutable data.

— Could you give me an advice on how to move my ancient monolithic project to JRuby? And should I?

— The first question really is whether such a move would benefit you. There's many good reasons to consider a move to JRuby:

  • Reducing CPU  and memory costs in a shared hosting environment by utilizing JRuby's true parallel threading
  • Deploying a Ruby application into a JVM-heavy environment, such as used by larger financial or government organizations
  • Needing access to libraries that only exist on the JVM, or that are more portable or scalable on the JVM than their Ruby or C equivalents
  • Getting a little performance boost out of CPU-heavy or concurrency-heavy applications.

— I would say if your application is scaling well and not costing you too much today, perhaps you don't need to make a move. But if you decide you need more out of Ruby, here's the process for migrating:

  • Do a clean bundle of your application, paying special attention to C extensions you may be using. You can also do this bundling *on* JRuby, and then deal with missing or unsupported libraries one by one.
  • For each extension, search for a JRuby equivalent. We have some pages on the JRuby wiki to help with this. Most popular libraries have JRuby versions. If no JRuby version exists, you may look for a pure-Ruby version (it might be fast enough on JRuby) or a JVM library (in Java or Scala or Clojure or whatever) that could be used as a replacement.
  • Once your bundle completes, you should have a working JRuby application! We've worked very hard on compatibility, and try to be responsive if users find new issues, but a successfully-bundled application is expected to work.

The steps beyond this involve deciding how to take advantage of your newfound power: how many threads to throw at a given server, what you're going to do with all the money you're saving, etc.

— What should nowadays students learn to become good programmers?

— When I was at university, my earliest computer science courses used the Scheme language, a Lisp-like functional language that's great for teaching the fundamentals of programming. I still recommend that serious new programmers work through at least some of the Structure and Interpretation of Computer Programs book from MIT. Beyond that, I'd say learn as many different and unusual languages as you can; they'll all give you new ideas and new ways to look at programming problems.

— How do you keep yourself motivated for programming? Have you ever been "burned-out"?

— Burn-out is a real problem in our industry, and working in open source brings with it huge amount of stress. We've all felt that way sometimes...too much work to do and not enough time to do it, missing out on time with family and friends, ignoring our own health so we can fix one more bug. These days I try to center myself by keeping up with hobbies: playing video and board games, learning to play guitar, studying foreign languages, and traveling around the world to meet new friends. There's always this nagging workaholic telling me to get back on the job, but I'm learning how to maintain the right balance.

— What do you think about Russia and what do you expect of the upcoming RubyRussia event?

— I love Russia, and my speaking trips the past few years have been some of the most rewarding of my life. This will be my fourth visit, having been to Saint-Petersburg, Moscow, and Novosibirsk (!!!) previously. I'm looking forward to returning to Moscow and meeting the RubyRussia community I've heard so much about!

Questions by Dmitry Matveyev PM at Evrone https://www.facebook.com/matveyev.d