Hi all,

I'm evaluating NOP as a possible solution for a group of ecommerce businesses which my company owns and are currently running on disparate platforms.

It is very clear from the existing documentation/tutorials how it would be possible to create plugins and templates to customise the platform to do what we need. The codebase itself is also very clean, and it was easy to get a site up and running on my local machine and deployed into azure.

However, the area I am really struggling with is how I could create a sustainable developer environment and release flow that could work for a team of say 5-6 developers who will be maintaining these sites.

Many of the tutorials seem to imply that even if you are not modifying the core code (i.e. just using plugins and templates) you would simply just add these into the existing NOP solution.

But how is this supposed to work with source control and nop releases in any kind of sustainable and manageable way? Should you fork the nop master branch, and sync the fork to get releases?

To give a counter example of what i'm asking for, in a previous role I worked with umbraco CMS. This came as a nuget package which installed all necessary code, views etc. into your web project. You can then manage your custom code in your web project, and upgrading umbraco was done simply by updating the nuget package. Because this is your codebase, you can then create a CI pipeline on top and obviously because the code is deployed in a package there is no possibility for anyone to modify the core code and block the upgrade path.

Are there any best practices for how to simulate this approach in NOP, and how to setup a CI pipeline etc?

Many thanks in advance and all help will be very much appreciated!