I need to develop several websites with common features and flows, the only thing that will dramatically change is the CSS, even the HTML will be common.
I\'m having tro
Assuming that the separate Git repos is required, one approach could be to have an "app" folder for each project plus one for the main project. I.e.:
Then you need to add an autoloader that checks if the given file is present in the subapp-folder. If not, then load from the app folder. This way you can centralize app files, but also create custom other files, or override app files via the subapp-folders. Each subapp folder can then be an individual Git repo, while the root folder excluding the subapp folders are the main repo.
Config and routing would be handled via the main app.
You could also add namespaces or a similar folder end structure to control in more detail what functionality is customized by the subapps, without having to override an entire controller or model from the app.
You can use package feature, first of all you need to make a kernel package as your basic project and then extends 'sub projects' from your git repository, it's easy way, as Laravel introduction says:
"Packages might be anything from a great way to work with dates like Carbon, or an entire BDD testing framework like Behat."
With packages you can single out each feature on composer.json
and load them one by one.