I recommend that you divide the resources of each site into folders in the file system:
/Website/
/Website/sites/
/Website/sites/SiteA (<-- specific to SiteA)
/Website/sites/SiteB (<-- specific to SiteA)
/Website/sites/Common (<-- shared across any sites)
At Sitecore, do the same for your presentation components.
- layouts
- SiteA
- SiteB
- Common
- Sublayouts
- SiteA
- SiteB
- Common
And the same for templates:
Templates
User Defined
SiteA
SiteB
Common
Separately open the C # class libraries so that they are specific to each site and have a common project for hidden code (for example, utility code for any site, extension methods, auxiliary classes, etc.). Visual Studio Solution:
- WebApp
- SiteALib (<- SiteA specific code)
- SiteBLib (<- SiteB specific code)
- CommonLib (<- reusable code for any site)
As for sites in the content tree, separate them at the same level:
sitecore
content
SiteA (<-- root item for SiteA)
home (<-- start item for SiteA)
SiteB (<-- root item for SiteB)
home (<-- start item for SiteB)
source
share