We are starting 3 new projects that are very heavy and complex on the web frontend side, and we are a bit undecided about how to go about writing the frontend.
What we are sure about is that after we write part of the apps and give it some structure, some parts of it will be outsourced to external firms, so we would like to use a JS framework just so that most of the stuff going in will be already documented and done for us ("just use Angular and follow the best practice document here").
Just by looking around our first choice was Angular, but since 1.x is known to be superseded by Angular 2.x, and since 2.x is not here yet, we would like to go with something that we know will be here for the next 2/3 years, since we know that the apps will live at least for the next 5/6 years.
The ideal thing would be a list of JS libraries and a document describing how those libs should be used to work together, and how to structure the code, so that when something better comes out we can just switch a lib and refactor the parts that used that lib to use the new one.
Is there something like this out there? Do you have any suggestions?
If you go the SPA route, you will need developers who are well versed in whichever JS frameworks you decide to use.
Most applications can be created in the more classic approach, with JS being limited to what is needed for each page. Those pages can still have crazy dynamic controls, but generally the idea is to keep the chaos to a minimum.
The best systems are clean and straightforwards. This lends well towards a classic design approach.
My recommendation would be to not make a SPA, and to just use jQuery and the pile of widgets that utilize it. Your application will end up running faster and using less memory as a result. SPA memory leaks are a *.