Before you start reading comparisons between Angular, Ember, React, Vue, Riot, etc., consider traditional server-side rendered website.
Update: Netflix redesigned their jobs website that I’m referring to in this blog post. It’s much better now, with SSR, implemented in Next.js, but still has its issues. My guess is that they are on the way of doing a full circle ending with a traditional server rendered site.
Define what are you developing. Is it a website or a web app?
Is SEO important? Do you expect users with a slow internet connection? Is your website interactive, and if it is, how complex user interactions are?
I’ll try to answer those questions by analyzing Netflix Jobs website. It is a single-page application built with Ember.js v2.4.6. It’s relatively new - v2.4.6 is released in June 2016.
There is no clear difference between those two. I will classify Netflix Jobs as a website, based on the requirements, because the focus is on the content, and user interactions are simple. Current single-page app implementation seems wrong. Content focused websites should draw the content user is requesting as soon as possible. Single-page apps are faster on subsequent URL changes (with exceptions), but slow on the first load, and therefore not suitable for content based sites where a user can land on a particular article and wait for the browser to load several hundreds of kilobytes just to read that article.
I guess they want a lot of candidates, so the answer is “yes”.
There are some techniques to do prerender of your SPA, but they can introduce other problems like inconsistent content.
Also, Netflix Jobs has wrong status codes, which can cause problems with SEO.
curl --head https://jobs.netflix.com/get-free-viagra
Notice that server is responding with 200 status code. The crawler will think that this is a valid page. Google may tag Netflix Jobs site as hacked or malicious.
Read this thread for to for more information.
Rendering your pages on the server can save a lot of bandwidth and CPU time for your users.
Do not ditch server-side rendering too soon. It’s crucial for public websites where performance and SEO are important. You may encounter similar problems like Netflix Jobs that you can’t solve quickly and efficiently.