Fetching contributors…
Cannot retrieve contributors at this time
85 lines (54 sloc) 3.83 KB

Locomotive CMS

Locomotive is a simple but powerful CMS based on liquid templates and mongodb database. At my company (NoCoffee), we use it for our clients when they request a simple website.

If we have to give only 5 main features to describe our application, there will be:

  • managing as many websites as you want with one application instance
  • nice looking UI (see for some screenshots)
  • flexible content types
  • playing smoothly with Heroku and MongoHQ
  • inline editing (beta)

Strategy / Development status

We already developed a fully functional prototype in Rails 2.3.2 with both active record / mongomapper and it worked quite well. We are even using it for some client websites.
Now, our goal is to port our prototype to Rails 3 and migrate from mongomapper to mongoid. Besides, we put a lot of efforts to make it as robust as we can by writing better specs than we wrote for the prototype at first.


Here is a short list of main gems used in the application.

  • Rails 3.0.10
  • Mongoid 2.0.2 (with MongoDB 1.8)
  • Liquid
  • Devise
  • Carrierwave
  • Haml
  • Delayed job
  • Jammit-s3


See the official website


If you wish to upgrade your locomotive install from an older version to the current 1.0.0rc1 then please refer to the upgrade guide


Contributing to Locomotive

Locomotive CMS is an open source project, we encourage contributions. If you have found a bug and want to contribute a fix, or have a new feature you would like to add, follow the steps below to get your patch into the project:

  • Install ruby and mongoDB
  • Clone the project git clone
  • Setup a virtual host entry for to point to localhost
  • Run the tests rake
  • Write your failing tests
  • Make the tests pass
  • Create a GitHub pull request

For new features (especially large ones) it is best to create a topic on the discussion forums first to make sure it fits into the goals of the project.



Bernd Hauser from designhunger funded the following feature: has_one / has_many between content types.


Rodrigo Alvarez for his plugin named Congo which gave us a good starting point and for his availability for (very late) tech discussions.

Emmanuel Grard designed the awesome locomotive illustration in the landing page.


Feel free to contact me at didier at nocoffee dot fr.

Copyright © 2011 NoCoffee, released under the MIT license