Updateable Vue3 application architecture with plugins for usage in multiple projects

Hello All!

We are new to Vue3, so these questions may seem to be stupid :slight_smile:

We are developing a product web catalog application based on vue3. This application has only the frontend, because all the product data is pulled via REST API. This application can be used by multiple customers. The functionality should be the same, but every customer may want to have his own design - so some components, views and css and some template images may be different.

In “PHP world” I would have the core, modules and templates for that, and I would use Composer to automatically update the system, while core and modules are stored in separate repositories. We want to archive something similar for this vue3 application. We want to have the possibility to easily update the application for all of these customers.

Each project (for each customer) should have its own repository on github.

Question 1:
How can we properly organize everything (to save our time for support and automate everything, what can be automated), if we plan to improve the functionality of this web catalog application in the future? It would be a horror if we will need to copy-paste everything among different projects.

Question 2:
We want that some customer should have additional functionality, which should not be available in the main application of the web catalog, lets say the ability to order some chosen products (web catalog should provide no ability to order products).
a) Should it be a plugin?
b) Can the source code of this plugin be managed in a separate repository? And if so how can I dynamically “append” it while building?
c) How can I build the application with or without this “addition”?

Thank you all for the answers and discussion!

Is it not possible? Anybody?