Skip to content


Subversion checkout URL

You can clone with
Download ZIP
A platform to create, publish and edit sites
Ruby CSS CoffeeScript HTML Other
Failed to load latest commit information.
.tx add the transifex config file + add minimal French translations in or…
app use the last version of the bootstrap-tagsinput bower package + fix i…
bin [travis] do not need to set a hostname for our specs
config if no site bound to the default host, redirect to the sign in screen
doc/changelogs no more rspec warnings (remove all the calls to should)
lib bump version to 3.0.0.rc4
public trying to make it work with the precompilation of assets (issue with …
spec bump version to 3.0.0.rc4
vendor/assets use the last version of the bootstrap-tagsinput bower package + fix i…
.bowerrc new version if Steam + use Bower in dev to fetch the last versions of…
.coveralls.yml coverall integration
.gitignore new version if Steam + use Bower in dev to fetch the last versions of…
.rspec specs are failing because of…
.travis.yml use Travis container-based infrastructure
Gemfile new versions of the CustomFields and Steam gems + update Mongoid.yml …
Gemfile.lock bump version to 3.0.0.rc4
LICENSE upgrade to the very last version of gems + change the extensions of t… the README file mentions now MongoDB 3.0
Rakefile merge Nic work about the API + upgrade the README
bower.json use the last version of the bootstrap-tagsinput bower package + fix i…
locomotive_cms.gemspec new version of Steam (1.0.0.rc6) + reply in JSON if no site found


Build Status Code Climate Dependency Status Coverage Status Join the chat at

Locomotive Screenshot

Locomotive is an open source platform to create, publish and edit sites. It is designed to save your time and help you focus on what matters: front-end technology, standard development process and no learning time for your client.

Locomotive relies on a very original workflow.

  • Sites are coded locally using our open source tool: Wagon. A desktop version (not open source) is also available here.
  • Sites are deployed to the platform (engine) thanks to our internal API.
  • A back-office for the end-users is automatically generated based on the custom models and editable regions described by the developers.

Visit the Locomotive official website here for more information.

Development Status

As you can see from the commit logs, we are intensively working on the new V3 version. We kept all the features from our stable v2 version, we just replace the UI, upgrade the gems and refactor our code.

[UPDATES] Finally, we've been doing much more than we planned at first. We extracted the rendering functionality from the Engine and make it a gem named Steam. This gem is also now used by Wagon (version 2.0 in progress) which makes sure you get the same result between Wagon and Engine when you preview a page. And last but not least, we added a Ruby API client for Locomotive that we called Coal. That client consumes the API from Engine which embeds now GrapeAPI. Nic Boie is in charge of it. Kudos to him!


Getting Started

If you can not wait for playing with our new version, you still can use the current one (v2.5.x). Check out our installation guide.


  • Multi-sites natively supported
  • Uses Liquid, a simple and clean templating language
  • Easy to add custom content types, no SQL needed
  • Beautiful and intuitive editing interface
  • Can fully localize all the content and pages
  • Embed a Restful API to manage every site
  • Develop and preview sites locally with your favorite tools (Wagon)
  • Support for SASS, LESS, HAML and Coffee Script (Wagon)


Here is a list of the main gems used to power the Locomotive platform:

  • Rails 4.2 - web framework
  • Bootstrap - UI framework
  • Mongoid 5 - Object-Document-Mapper for MongoDB 2/3
  • Devise 3.4 - Authentication
  • Carrierwave - Upload
  • Pundit - Permissions


Translating the back-office

By default, the Locomotive back-office is fully translated in English. But adding a new language is pretty straightforward since we now manage all our I18n translation keys in Transifex, a platform dedicated to this kind of task.

Here is our Transifex portal page: Feel free to sign up and translate!

Contributing to Locomotive

Locomotive 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, mongoDB and phantomjs
  • Clone the project git clone
  • Setup a virtual host entry for to point to localhost
  • Start mongodb if it is not already running
  • Run the tests bundle exec 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.


Feel free to contact me at did at locomotivecms dot com.

Copyright (c) 2015 NoCoffee, released under the MIT license

Something went wrong with that request. Please try again.