Skip to content

Instantly share code, notes, and snippets.

@joshrieken
Last active September 5, 2019 10:03
Show Gist options
  • Save joshrieken/7919316 to your computer and use it in GitHub Desktop.
Save joshrieken/7919316 to your computer and use it in GitHub Desktop.
A comparison of Rails+LocomotiveCMS vs. Wordpress for small business CMS sites.

Wordpress (PHP-based CMS [content management system])

Pros

Quick bootup

You can get up and running very quickly.

Hosting options

Lots of hosts can run PHP-based applications.

Wide adoption

Powers a large number of sites across the web.

Themes

There are a vast number of great looking themes which allow for getting a decent small business site up and running quickly. Some are customizable, some aren't.

Plugins

There are lots of plugins available to do many different things required by small businesses. Some are very customizable, some not so much.

Cons

More difficult to maintain

Up-front development time is pretty low, but once the site goes into production, maintaining it becomes more and more of a headache because developers can no longer use their own tools.

Generally bad performance

Wordpress is slow. You often see loading spinners on small business web sites, which to me is just unacceptable. It is difficult to optimize Wordpress sites.

90% Themes

My experience with Wordpress themes is that they tend to get clients about 90% of the way there. That is, there's always that 10% of the look and feel that is quirky and it's really difficult to fix it without resorting to sometimes massive customization, and developers have to work within the constrains of Wordpress's less-than-stellar tools to accomplish this. This becomes a maintenance nightmare over time as more and more modifications are made, and it becomes almost impossible to upgrade the templates without stuff breaking.

90% Plugins

Once you start needing more customizations, you're forced to use plugins that may or may not fit exactly what you need. There's the same 90% problem discussed above.

Frequent security upgrades

Because Wordpress is so widely used, it's a prime target for exploitation. It has a rather long history of security issues, many of which have been fixed. Security upgrades are issued frequently, and there is an auto-update process, but that process can render your site unusable if it conflicts with a theme or a plugin, which can happen pretty often in some cases.

PHP

Having worked with both PHP and Ruby (the language with which Rails is implemented), PHP sites are frankly pretty gross and difficult to maintain behind the scenes. Ruby involves a lot less headache; in fact, I find it very fun to work with. There are more PHP developers out there, but more doesn't necessarily mean better. I think that applies here.

Lack of flexibility

Because Wordpress is a CMS and not a full-featured application framework, you can only go so far. This might be OK for a small business site, but once that small business starts wanting some custom web-app type stuff, Wordpress is a no-go. You have to start from scratch with something else.

Rails (Ruby-based application framework) using LocomotiveCMS (built on top of Rails)

Pros

LocomotiveCMS - Great in-place content editing functionality

Clients can edit the content in-place, meaning you don't have to edit, then refresh, edit, then refresh-- it happens right in front of you right in the same place the actual content appears on the page, and you click save when you're finished. Designers and developers get to work on the source code with their own efficient tools on their local machines instead of within Wordpress, and clients edit content within Locomotive. Everything stays separate like it should. Everyone is happy.

Rails - Maximum flexibility

You can build everything from static sites, to CMS sites, to big complex web applications with Rails. We've done all of these, and we and our clients have been thrilled with the results.

Rails + LocomotiveCMS - Ease of maintenance

Maintenance happens much more quickly and reliably--and with a lot less frustration--because developers get to work with their own tools intead of the ones forced on them by Wordpress.

Rails + LocomotiveCMS - Ease of security updates

The Rails ecosystem has standardized on something called Semantic Versioning which makes upgrading at the patch level a lot easier. In practice, this means patch-level security updates can be applied quickly without fear that your application will break.

Cons

Lack of out-of-the-box rich themes

Unlike Wordpress, there aren't a whole lot of themes to immediately apply. However, you do avoid the 90% problem, and there are base themes that we customize and are much more easily maintained than their Wordpress counterparts. Customizing a LocomotiveCMS theme doesn't take much extra time since it's all in HTML and CSS and a simple templating language, all of which a web development firm should be very familiar with, and developers get to use their own tools.

Lack of out of the box plugins

Unlike Wordpress, LocomotiveCMS doesn't have many plugins. However, Rails does, and they're organized in a much better manner than within the Wordpress ecosystem. Also, with Rails, it's very easy to build a simple custom component, like a Contact form or News Feed.

Adoption not as wide

Because LocomotiveCMS is a relatively new kid on the block, there aren't as many people using it in production yet. However, it is under very active development and keeps maturing, and Rails itself has been around since 2005 and is quite mature and widely used.

@adrianvalenz
Copy link

I like this. I prefer Rails as well. Maybe creating a simple blog and a dashboard of sorts to control managing posts (deleting, editing, etc.) may take a little time upfront, but after that I feel you save more time than maintaining a WordPress project months after it is done. Also, even though WordPress has a markdown plugin, most of the time it won't be implement. HTML code saved in the database where it should clearly just be content is a pain to work with. WordPress has an identity crisis, I'm not sure if it is for bloggers to set up their own shit, or developers to hand off to a client, but once the client gets a hold of it, they start adding new themes and plugins that weren't intended to be installed, undermining the Web Designer that worked on the design and UI of their site. I think WordPress.com is a good business model, but the WordPress.org needs to be clear on what kind of tool it is for what kind of person (client/blogger or developer/agency). Plus Rails has a much better workflow associated with it. Local development with Capistrano deploys using Git is great. In WordPress you need to hack a bunch of things together to get a good workflow or even buy products (ServerPress, MAMP, etc.), which is a headache before it even gets to the client.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment