A single page app is nothing but JavaScript that can render pages without a full refresh. That's it. People seem to have this idea that a single page app is something else, in particular an app with little to no server generated pages, but if you even just have Turbolinks then you now have a SPA with some HTML coming from the server.
People seem to have this idea that a single page app is something else, in particular an app with little to no server generated pages
what are you trying to say?
not generating pages on the server is the primary benefit for SPAs in my eyes. that's why i prefer to build SPAs even for trivial sites. because it drastically simplifies the backend. i don't have any site specific logic in my backend anymore. it's just a data storage. CRUD. i can reuse my backend for almost any site without modification.
sure, you can build SPAs while still generating html on the server, but for me that completely misses the point. the only html that is coming from my servers is user submitted static content.
Some developers prefer generating HTML in server side logic using server side templating tech. (Rails. C#/Razor) So when that is the case, the only benefit of SPA is avoiding a page refresh.