Currently my company has a single internal application that our support agents use. It only supports one product at this time. Tech stack is angular on the front end and spring micro services for middleware.
We are launching a new product and the internal application will need to support that as well. However, for the new product there will be different user roles that grant permission for functionality as well as many changes such as what data is displayed in tables (new columns and buttons to act on data). There is potential that these 2 ui applications will greatly diverge in similarity. Also, it is almost certain that we will have more products that will need a similar ui for support.
The decision im faced with is:
- Create a separate repo for each UI application that will evolve independently.
- Build off of current application and add logic for showing and hiding functionality.
My concern with #1 is duplication of code and manually having to make updates in 2 (or more) repos for common functionality. My concern with #2 is that this logic will become very complex and make dev and testing really difficult.
What do you think the best option is?