Вы можете хранить их в одном хранилище или разделять проекты.Для меня это будет зависеть от того, какая часть кода, если таковой имеется, распределяется между приложениями.Если код не разделяется между компонентами, используйте разные репозитории для каждого.
Отдельные репозитории позволят вам легко пометить каждый компонент версией (v0.1) и затем продолжить разработку по мере необходимости.Когда вы будете готовы выпустить комбинированный продукт, просто извлеките нужный тег для каждого репозитория, и вы получите полную версию продукта.Если у вас есть результаты работы приложения, которые не связаны ни с одним из трех компонентов, вы также можете создать хранилище для объединенного продукта, в котором будут храниться эти данные.Вы можете обрабатывать ветвления для каждого из компонентов через ветки или клонированные репозитории.
Если вы храните компоненты в одном репозитории, он все равно будет работать, но ваши теги и ветки станут намного грязнее.Когда плагин попадает в v0.1, создайте для него тег, такой как «плагин v0.1».Сделайте то же самое для настольных компьютеров и веб-клиентов.Затем, когда вы захотите выпустить продукт, вам нужно будет извлечь три разных тега, каждый из которых имеет версию v0.1.
Я бы выбрал отдельные репозитории.Решение будет более сложным, если есть общий код, но вы могли бы найти способы воспринимать свои зависимости как библиотеки, а не как код.
Для ваших вопросов о ветвлении эта статья является хорошим руководствомразные варианты и плюсы / минусы.