I am in the phase of planning a React web app, and can't decide on a correct architecture.
My React app will contain a few features, such as:

* File handling system (editing, copying, duplicating...)
* Chat system
* Mission management system
* A few more systems

At the beginning of the project, it will all be under 1 React app, but later (unknown time), I will have to split every "system" to another app.

I would like to avoid duplicate code, and make every "system" independent of the other, so I can later split it with ease, and minimal refactoring.

It will be built on the Microsoft Teams infrastructure, as a single tab application, and later I will have to deploy it as 1 system per tab, each tab can be rendered as a React component, this is the reason for that and this is a must.