Locomotive
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
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.local
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
Contact
Feel free to contact me at didier at nocoffee dot fr.
Copyright (c) 2010-2024 NoCoffee, released under the MIT license