Q:

Выбор технологии для кросс-платформенного сайта

Раньше было проще выбрать технологии для веб проекта, сервер пишешь на php, фронтенд на html + js, все сам, никаких проблем. Но со временем технологии начали появляться одна за другой, и я понял, что очень сильно отстал. 
Планирую разработку Web портала, чтобы пользоваться им было удобно как с ПК, так и с мобильных устройств, а также была возможность скачать приложение через App Store или Google Play. Сервер собираюсь писать на php, знаю фреймворк Yii2. 
В клиенте использовать bootstrap. С js фреймоворками голова кругом, есть и angular, и react, и vue. На одном сайте написано, что angular рулит, а react кошмар, на другом пишут наоборот и тп. Я как понял эти фреймворки подходят больше для лендинг-сайтов, визиток и тп, в общем одностраничных, полноценно на них портал не построишь, где-то местами его можно использовать. Посмотрел технологии, которые преобразовывают сайт в приложение для телефонов (ionic,react native). 
На портале js планирую использовать для модальных окон, работ с формами, вывода графиков, подгрузки некоторой информации без перезагрузки страницы. 
Как посоветуете написать сервер в данном случае, чтобы можно было без проблем работать в будущем с приложением для мобильных устройств? Api? Какие технологии использовать? Yii2 + bootstrap + jQuery? Yii2 + bootstrap + (angular/react) и тп? А в дальнейшем писать клиент на телефон и манипулировать данными с сервера через Api Yii2? 

A:

В общем и целом не важно на чём всё писать, если писать правильно.
Можно сделать как-то так:

Сервер на чём угодно. Он должен предоставлять API для всех нужных запросов извне.
Фронтенд на чём угодно. Он должен дёргать API сервера и выводить данные/позволять отправлять данные на сервер через его API
Приложение на чём угодно, оно должно работать также как фронт - запрашивать данные из API и отправлять их через него же.

За все технологии не отвечу, опишу что пробовал:

Сервер на Spring+Kotlin+Postgresql - очень круто.
Фронт на Angular - очень круто.
Андроид на Java/Kotlin - очень круто.

А все фреймворки друг от друга в основном нюансами отличаются, т.е. можно на любом пилить. А под андроид/яблоко лучше нативно, если хочется сделать красиво и неглючно.

