We have an web application that mvc architecture and written in php. This application is used by different client that need different UI and also several module customization. This application is still in continuous development and some core features that will be made in the future that need to be implemented to several clients that need this features. My question how do you maintain this application? I have read about client specific trunk branching but a lot of people have said that this is not a good practice because branch were supposed to be short lived.
I have an application that are used by two different clients. The application that the second client uses is actually a copy of the first client application so these two applications use two different repository. If i made changes in the first application then i also need to copy it manually into the second application. Imagine if we add big feature to one of these application. I read that some people suggested to use one repository and toggle all these features based on what the client needs. The problem is that these clients will want to have a different UI for this application.