Skip to content
This repository

a brand new CMS system with super sexy UI and cool features

issue #913 (wip)

latest commit 674ffe1bd1
Didier Lafforgue did authored
Octocat-spinner-32 app fix issue #912 (content entry next/previous) April 16, 2014
Octocat-spinner-32 autotest Fixing up dependencies (httparty/crack) and adding autotest July 25, 2010
Octocat-spinner-32 bin Set the hostname on travis. October 17, 2011
Octocat-spinner-32 config issue #913 (wip) April 16, 2014
Octocat-spinner-32 doc make sure the checkbox for an extra field in the page form gets conve… December 06, 2013
Octocat-spinner-32 features hope it will fix the feature November 29, 2013
Octocat-spinner-32 lib webrick does not like integer value in http header April 09, 2014
Octocat-spinner-32 mongodb Merge pull request #796 from GarPit/master September 15, 2013
Octocat-spinner-32 perf fix a lot of tiny bugs (not yet) + testing import tool September 27, 2010
Octocat-spinner-32 public trying to make it work with the precompilation of assets (issue with … January 20, 2012
Octocat-spinner-32 script fix a small bug when generating checksums for theme assets + script t… June 07, 2013
Octocat-spinner-32 spec fix issue #912 (content entry next/previous) April 16, 2014
Octocat-spinner-32 vendor fix issue #895: leading/trailing white space on ICanHandlebarz.js April 01, 2014
Octocat-spinner-32 .gitignore use parsed_response to retrieve remote entries + when the type of an … September 13, 2013
Octocat-spinner-32 .rspec fix the specs for the page model February 16, 2012
Octocat-spinner-32 .travis.yml only ruby 2.0 for travis tests August 20, 2013
Octocat-spinner-32 Gemfile example for issue #890 April 01, 2014
Octocat-spinner-32 Gemfile.lock example for issue #890 April 01, 2014
Octocat-spinner-32 LICENSE fixed issue #560 + updated the LICENSE (still MIT) February 01, 2013
Octocat-spinner-32 README.textile use instead of when developing the engine (+ rake … April 01, 2014
Octocat-spinner-32 Rakefile make the locale_switch consistent with Wagon + move cucumber tasks in… March 17, 2013
Octocat-spinner-32 locomotive_cms.gemspec upgrade to Rails 3.2.17 March 29, 2014


Dependency Status

LocomotiveCMS 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 a couple of 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
  • content localization out of the box
  • playing smoothly with Heroku, Bushido and MongoHQ
  • inline editing (wip)
  • API

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 / technologies used in the application.

  • Ruby 2.x
  • Rails 3.2.17 (Rails 4.0 planned for the beginning of 2014)
  • Mongoid 3.1.5 (with MongoDB 2.x)
  • Liquid
  • Devise
  • Carrierwave
  • Haml
  • Formtastic
  • Cells
  • Coffeescript / Backbone / SASS


See the installation documentation on the official website


We work on the procedure to upgrade from a previous version of the engine (below the 2.0.0)


Contributing to LocomotiveCMS

LocomotiveCMS 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
  • Install PhantomJS (Required for the cucumber suite See:
  • 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 Google group 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 old landing page.

Font Awesome for providing the best icons. Make the whole back-office Retina-ready.


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

Copyright © 2013 NoCoffee, released under the MIT license

Something went wrong with that request. Please try again.