js;dr = JavaScript required; Didn’t Read.
Some people don&#x27;t seem to understand what the whole JS SPA thing is about, and it&#x27;s quite strange to me.<p>It&#x27;s not popular because it&#x27;s a fad, it&#x27;s not about replacing good old static websites with fancy over-engineered JS code.<p>It&#x27;s about making desktop-class applications more accessible via the web. Desktop-class Apps have lower latency requirements then server rendered frameworks are capable of delivering, plain and simple. You could certainly build Facebook as a fully server-rendered PHP app, but that would hurt Facebook&#x27;s business because its servers would need to do more work and its users would have to wait longer for content.<p>Fully server-rendered frameworks are not capable of delivering low-latency desktop-class applications. If your app doesn&#x27;t require low-latency updates, then you can certainly use a classic PHP or Ruby on Rails stack with no problem.<p>Sure, you can use JQuery style code to make your PHP app more interactive, but you&#x27;re probably just going to end up with a messy, hard to understand JS code base eventually if you you don&#x27;t have some sort of 
low-latency client-side declarative templating framework.<p>There&#x27;s certainly some companies that are caught in the hype and build a SPA app when they would probably be better served with a simple PHP site, but on every project I&#x27;ve worked on that used React across a few companies (interactive apps for ex: cropping &amp; manipulating images, building visualizations and reporting on data), not using an SPA framework would have slowed down development dramatically, or left us with a really poor product.