Code
If you want to override/change anything, you can just do it with the same name of the file, through Monkey Patching. Some real world examples of this method:
- 
Decidim::Admin::SelectiveNewsletterForm. As it is a decorator you also need to make it available in the application config 
If you want to extend Decidim, the preferred way should be by having a Module. This is a Ruby on Rails Engine which provides ruby code (models, views, controllers, assets, etc). You can use it in multiple ways:
- 
Putting it on the same directory as your app and pointing on the Gemfile. See example on GitHub. For instance: 
gem "decidim-debates", path: "decidim-debates"- 
Publishing on a git repository and pointing in on the Gemfile. For instance: 
gem "decidim-initiatives", git: "https://github.com/example-github-organization/decidim-module-initiatives"- 
Publishing it on rubygems.org 
You can learn more about Modules in the development guide.