GeoSAFE is supposed to be independent of the skin being used because some people may want to put different skins. Thus the skin is on separate repo.
The benefit:
When GeoSAFE is stable, you just need to perform changes in INGC theme repo if you want to apply skin changes (logo, text, etc). You don't need to change main GeoSAFE base.
If two instance of GeoSAFE use two instance of skins, they can just apply the changes for their respective skins repo. It will not affect the other (which probably belong to different organizations or divisions)
Localizations and Organizations specific settings can be put on the skin repo. That organizations only needs to translate language specific for their needs. It will not clash with other org
Theme app are made as a django app. Technically speaking, in the orchestration it is installed as python package using pip with desired package URL. You can change the skin easily by changing the url of the theme you want to install. The URL will be asked as a Rancher question, when you do update or deployment. Attached below the screenshot of said question:
The theme repository for INGC in Mozambique is at http://github.com/kartoza/ingc_geonode_theme
https://github.com/kartoza/geosafe/issues/381