Today, when starting development of a new website using a pattern that just a few years ago used to be called single-page application (SPA) not only seems to be the new default but even like the only way of creating stuff for the web.
Clearly though not all content for the web is created equal: On one side of the spectrum we have (mostly) static documents identified by URIs and returned by URLs. Most websites that simply provide content (news sites for example) and many business applications (think CRM systems, product catalogues and similar database-driven CRUD applications) fall into that category. On the other hand, there are web apps that require the kind of dynamic behaviour and interactivity that traditionally used to be associated with desktop (and later mobile) applications.
Only in the latter case is creating a web app that sports complex event-driven front-end behaviour, for instance using frameworks like Angular, Vue.js or React, the right choice.
This article by Aral Balkan serves as a nice reminder of the distinction between documents and applications on the web. Aral’s key statement is this:
“If I was to remove all behaviour from this product, would the content still have value?
If so, it is a site; it was content‐centric to begin with. Any behaviour that was added — hopefully via progressive enhancement — was simply a nice‐to‐have; perhaps to aid in the navigation of the content.
However, as suggested by Aral it’s important to keep in mind that this distinction isn’t really a clearcut dichotomy but rather a continuum. While there are prototypical content-centric, document-serving websites – Aral gives an online brochure for a university programme as an example – and apps (like the online photo editor suggested in the article) which squarely fall into one of the two categories at each end of the spectrum, the truth of the matter is that most web content exhibits features of both a document and an app. In fact, this can be considered one of the distinctive features of the web.
In order to properly assess customer requirements and consequently use the right tool for the job, it’s vital to contemplate first where the website / web app to be created sits on this continuum.