I've recently become active again on twtxt.net, the platform that puts the "social" in "anti-social social media". There is a lot of intelligent discussion to be had there, and for the past couple days a discussion has been going on about technology buzzwords and, later, unnecessary complexity on websites. I was asked to clarify my position and, rather than try to fit it within the (admittedly quite generous) character limit, I figured it would be best to state my argument here, on my website, where I can ramble as much as I want. I get a free blog post out of it, too.
One of my biggest problems with the Web today is the lack of separation between documents and "apps". They are not the same thing, and confusing them can (and does) lead to real-world problems. The page you're reading right now is a document. It has been sent to your computer over the network in its complete form along with a non-essential support file to dictate how the page looks. It is the job of your favorite Web browser to parse my document and display it on your screen. This was the original vision of the Web.
Over time, it has become easier and easier to provide the visitors of your website an interactive experience. It can be very useful to run certain programs in the browser. In a lot of cases, however, the same technologies are used for documents. If your page includes a few non-essential scripts to do different things on the page, that isn't a problem. The document itself is still readable in a wide variety of programs and formats, regardless of support for those scripts.
It is when you start using special code to "build" the document on the fly that the problem arises. On the server side, this makes it more difficult to maintain the site or move it to a new server. You can even run into serious security flaws, all because your documents have become executable. Your serverless, headless, Micropub-powered personal website is unreliable precisely because you chose to introduce unnecessary complexity. Just use a static site generator like mkws and call it a day.
Furthermore, you're recreating functions of the browser almost immediately. There is no need to do that. The user is already running a program that can do everything your code does faster. All you have to do is put the content in the right format and it's all handled for you.
"An idiot admires complexity, a genius admires simplicity."
— Terry A. Davis
The original purpose of the Web was to be a set of protocols and formats used for the purpose of publishing documents. Despite constant updates and additions, it still works exceedingly well for this purpose. Besides, our documents haven't changed much. Like most websites, mckinley.cc doesn't need much more than basic formatting and hyperlinks, so why shouldn't it work well on NCSA Mosaic 2.7?
On-the-fly "building" of documents is, quite literally, fixing something that is not broken. Whether its being done on the server or the client it's inefficient, introduces unnecessary bugs, and makes your website more difficult to keep around as a result. I'll end with my original claim: If your personal website turns into an "app", you're doing it wrong.