On the note of filesize, I think Vanilla JavaScript should also be considered. Notice that there are many PWAs listed here (https://developers.google.com/web/updates/2015/12/getting-started-pwa#progressive_web_apps_with_and_...) not using any framework. PJAX / Turbolinks are options for an SPA experience in this case.
Agree on the importance of nailing the API first. When it comes to the frontend, I think it's critical to choose an existing framework, otherwise you'll end up writing your own which won't be nearly as good as any of them. I think React is the clear winner in terms of community adoption and support by most metrics.
Some random stats comparing React and Vue:
Downloads in the last month from npm: 4.1 million (react) vs 560k (vue)
Dependent packages in npm: 8526 (react-dom) vs 1918 (vue)
Number of contributors in GitHub: 1037 (facebook/react) vs 120 (vuejs/vue)
Top npm registry keywords: https://twitter.com/seldo/status/879824509418610688
@akent99 wrote:The need for server side rendering is another - but perhaps we build in client side only and let advanced sites add server side rendering. I don't know, and agree completely with iterating with community feedback as we go along.
Have you tried to benchmark existing PWAs / SPAs regarding SEO performance without SSR? Since Magento will be helped with Google for the PWA move, do you think you could get accurate details about it?
I would tend to agree with this if it still does perform well regarding SEO, but it must be efficient, however whatever solution is used might not be adopted by the community if there is a risk regarding SEO.
That's the good research about search engine crawlers vs various JS frameworks - https://goralewicz.com/blog/javascript-seo-experiment/
@mpchadwick it might be good for air horner, but not really for enterprise grade commerce platform.
Have you considered using TypeScript instead of JavaScript? I think it would make the dev experience a whole lot smoother. You probably don't want to add another thing that devs have to learn, but there's already React and Redux. So I don't think that adding TypeScript to the mix is the buggest hurdle.