Locomotive
March 22, 2024 ยท View on GitHub
Locomotive is an open source platform to create, publish and edit sites (CMS). It is designed to save time and help you focus on what matters: front-end technology, standard development process and a very low learning curve for your clients.
Locomotive relies on a very original workflow:
- Sites are coded locally using our open source tool: Wagon.
- 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.
Features
- Multi-sites natively supported
- Uses Liquid, a simple and clean templating language
- Easy to add custom sections, 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 Webpack, SASS, HAML and Coffee Script (Wagon)
Instructions and help
- Documentation
- Get help with Locomotive or discuss technical issues on Gitter or here.
- Follow us on twitter
Contribute
Have a look at our Trello board to see what's next or see where you can help out.
Technologies
Here is a list of the main gems used to power the Locomotive platform:
- Ruby 3+
- Rails 7 - web framework
- Bootstrap - UI framework
- Mongoid 7 - Object-Document-Mapper for MongoDB 6
- Devise 4 - Authentication
- Carrierwave - Upload
- Pundit - Permissions
Translating the back-office
By default, the Locomotive back-office is fully translated in English, Dutch and Greek.
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: https://www.transifex.com/locomotive/locomotive-engine. Feel free to sign up and translate!
How to contribute
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 git@github.com:locomotivecms/engine.git - Setup a virtual host entry for
locomotive.localto 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
Contact
Feel free to contact me at didier at nocoffee dot fr.
Copyright (c) 2010-2024 NoCoffee, released under the MIT license