Mourning my obsolete Skillset

The web industry is becoming truly industrialized. And this means that what I can do, is no longer valuable.

Table of Contents:

Heads up - these specific words were important for me to write down and to share with people who might feel similar, more than a year ago. You might feel criticized or even attacked by some of the positions taken in this text. For that I can't apologize, yet at the same time I am asking you to realize that they aren't intending to attack. It's an observation based on subjective experiences, nothing more. And ultimately, this text is very emotional. And this is obviously not fully rational. There was no desire to rationaly sublimate my feelings, instead, the opposite was the plan. I am mourning, after all. I kept this in my drafts for over a year, but recent events led me to believe that maybe someone else could also profit from this sharing.

With this post, I am trying to mark a transition in my identity as a person making websites. I feel like this is necessary and a human thing to do. As humans, we create markers as we go through life, which also guide us through transitioning from one phase to the next. Often these are rituals, for birthdays, for the unification of partners, but also for separation and for loss, for death.

The industry has changed. It has become what is now worth being described as an "industry". And it is affecting a lot of people. Some in good ways, some in not so good ways. In a way, that is a self-fulfilling prophecy, because we always aspired to become what we now are but we still have to talk about the losses, the hidden costs. We, as those who make websites have not learned to endure critical discourse. Instead, it is met with toxic positivity, ultimately dividing the people into segments. A classic way to prevent conflict: splitting.

So I am trying to broadcast my inner processes about the web industry and my place in it. Not in the hopes of creating more division, "tribalism" as they say, but to hopefully normalize ambivalence just a bit. All conflict has also the potential for realignment, discovery and reconstruction - in other words: conflict is a function of bifurcation, of possibility.

The most easily distinguishable artefact that speaks to the changes in the industry, the markers that define the outer and the inner, that which we positively define (as in, it is here) to the now and negatively define (as in, it is not there) in the before, is the role of JavaScript on the web platform. JavaScript had a moment, a transitional phase, in which it forever changed its position and thus how those who work on the platform relate to it. I believe it is safe to say that this transition can be marked with ES6.

ES6 was highly celebrated. It brought many things to developers that they deemed missing (in comparison to other realms of programming) and their adoption in the browsers didn't matter, because transpilers made sure that developers didn't have to think about this part of the ecosystem. Instead, they could focus exclusively on the DX. I believe that this is the turning point, this is where everything changes forever, because it brought the SPA mindset into the general tooling ecosystem and thus affected even those that didn't develop SPA's.

During that time, it was still somewhat common to write code for other people that was intended to land on the website itself. This might sound a bit weird, but what I mean by that is that when we downloaded jquery, we just linked that downloaded JavaScript file with a script tag in the head or somewhere in the body. There was even a tool that made this much easier, called "bower". I used bower to include whatever I needed. But pretty soon, bower started prompting me a passive-aggressive message, asking me to use webpack instead.

To me, this was incredibly odd, because webpack did something entirely different. Bower downloaded files from github into my project in a folder, and I then linked those files. Drop-in dependencies with no further processing required. Yet Webpack did something entirely different. And it did it in a way that was entirely foreign to me. It wanted me to point it all towards a JavaScript file. Which, in many cases, I didn't even need. Sometimes I just downloaded icons, fontAwesome, or some svg stuff.

I started to realize that the game was changing but I wasn't aware of what was actually going on. Because while I was happily writing HTML, CSS and the occasional jQuery Code to build the frontend of dynamic websites (that means there is a server language involved, such as PHP), other developers were ditching PHP and the short but highly celebrated Ruby left and right to render as much as possible in the client, the SPA was slowly starting to become the major way of doing things.

The Website / Webapp Dichotomy

Section titled The Website / Webapp Dichotomy

Even before that, people kept justifying their technological choices by referring to their websites as "webapps", postulating that their needs are inherently different and need different solutions. There is no point in fighting this dichotomy, because the people involved have by now clearly adopted this way of hierarchically sorting website. But let's be very clear - a web app is also always a website. This dichotomy does not exist on the platform, it exists as an epistemological device, with the function of determining which tools (approaches, methodologies & technologies) are appropriate and which are not. Maybe there is an exception to be made for electron apps, which use web technology but don't run on the web platform. But web apps are always also websites, yet not all websites are also web apps. What is the difference?

The difference lies exclusively in how people and companies relate to it. This blurry term often encapsulates varying degrees of properties and attributes that they see positively defined in webapps that they then see negatively defined in websites, such as interactivity, processing of API's and, as of lately, how the code gets shipped. Epistemological devices in language are essential and important. They mark a commonly shared understanding of how something is described, explained and evaluated (Simon, Fritz B.) - in other words, how we make sense of something. It prevents conflict. If a decision is made about what term perfectly encapsulates the meaning of something, we can move with our cognitive processes and live with the consequences of that decision. This is a natural process, yet it comes with a big cost, once this very fluid, very organic process gets manifested from the world of language into the physical world (as in, code).

Single Page Applications (SPA)

Section titled Single Page Applications (SPA)

As this understanding of differentiating between website and webapp started to be accepted as an ontic gospel, tools adopted and built upon its consequences. Why would you need multiple entry points in a packaging tool, if your webapp is rendered in a single document anyway? You only want a single JavaScript file, right? And this has obvious positive consequences. If a tool can assume all types of scenarios, it can optimize for it. And where gulp reflected a developer's need to have a generic tool in place that could do everything they told it to, webpack only did that one thing, and you better not stray from that path!

Even current generation of tools still mostly postulate "less configuration" or even "zero configuration". All of this onl works if they can safely assume all kinds of things about how you are gonna make your Website, err, I mean, webapp, of course. For example, Vite assumes that there is an index.html file that it will take full control over. Now what if you just want fast javascript compilation but you still work in a nicely maintained dynamic website environment, where there is no index.html before the server answers with a document? Sucks to be you I guess, better be ashamed for using WordPress anyway. You should have gotten headless instead! The SPA perspective rules everything.

This is not a hate on tools. The tools react (ha, get it?) to the changing developer needs. People in our industry are very much aware that being the person or the organisation behind a useful tool will inevitably translate to money. Either via security, attention, donations or purchases - in other words, it will translate to freedom and/or power. And yet these tools may be made with pure-hearted altruism in mind, but their much needed opinionatedness persists epistemological processes that were volatile and ambivalent (and thus subject to conflict, meaning possibility) in technology and recursively confirm their meaning. They end their possibilities. Developers love this, it reduces complexity - don't make me think.

The "happy path" lies before the developer, consequences obfuscated and alternatives out of reach, soon shrouded in mockery. Quickly are the tools and the ways that were once considered good becoming now bad, irrelevant and a new decision was made; What was once positively defined here and negatively defined there, has now flipped. The theory of complex dynamic systems coins a term for this called "attractor". In the systems-theory that is used for counselling, this is often called a "completion logic". In social systems, a complexity reducing term exists like a pole and linear-temporarily, individual units in those systems (these are "communications", not people, according to Luhmann) move towards this pole. This behaviour is called "emergence" and this movement over time is called a "structure". This is what systemic counsellors call "circularity". The results of the behaviour are recursively being confirmed and reinforced back into the system.

Much of this is very invisible. And even more so invisible to people entering the industry. Because they are seeking starting points and the obvious starting point nowadays is JavaScript. Everyone is making SPA's and those that don't are being shamed into doing so, even though there is no technical or business reason for it, they are very soon gonna have to because the developers residing in these companies are starting to realize that their experiences' worth is starting to diminish. So they are turning their site into an SPA, just because they need to hold the developers with them. Because even though developers are flooding the market, they are still being desperately needed everywhere. Because we are making SPA, after SPA, after SPA, after SPA...

How do I React to this?

Section titled How do I

Much of this trend towards SPA's was spearheaded by Facebook's React. The illusive "is it a framework or is it a library" way to render your UI entirely in the client. It was neither the first nor was it the "best" or the only one. I think its safe to say that chronologically the first wave of shifts towards SPA's was angular. Nowadays angular is not very popular with developers. But even next to angular, there where other ways of approaching client-side rendering in various degrees. Yet React became much more popular, because it had facebook behind it.

And soon tooling started to focus on it. So much, that nowadays nobody uses just react anymore. Nobody wants to. They are using "React & FriendsTM" (thank you Chris Coyier for that term!). Yet who has time to set all of this up? Developers don't have time for this, they are not given time for this, so there are now even tools for setting up your tools. And all of a sudden, people who previously entered the industry by downloading a website onto their computer, changing some stuff in HTMl and opening it up in their browser, are now not only learning javascript before anything else, are not only learning react before they are learning javascript, they are learning Create React App.

Yet in the end, they are still shipping a website. What they think of as webapp and what we keep postulating as a webapp is an epistemological construct that exists exclusively in DX. Obviously, I don't find this good. Because the complexity is not reduced, it is obfuscated. But these are the new markers that determine the viewpoints of the next generation of tools. They have a recursive effect. CSS was such an outlier in the world of making webapps, in SPA-Land where JavaScript is the reigning Entity, beheading or ignoring everything it doesn't know or can't control, that we made tools that first allowed us to write CSS inside of JavaScript, and now even obfuscate the writing of it at all. But just as it was before, if you don't see something, it isn't there. I tweeted about clamp() a while ago and someone literally answered with "because tailwind makes CSS so easy I will never use this". It's pointless to blame someone for this, because it's just a development. CSS is being eaten by JavaScript.

This changes the demographics. Because whereas writing software for the web previously meant dealing with the dreaded uniqueness of the web platform - writing HTML or the goddess forbid even writing every so awful CSS, now you can just write JavaScript and not think about anything else. And with better tooling, the unwanted complexity hidden and a single language providing the DX that developers want, everything is prepared for people who didn't used to sail these waters: Traditional Software Developers. Universities never bothered with properly teaching people HTML, CSS or even JavaScript. Because HTML and CSS are not programming languages. But with ES6+ closing the gaps to other languages, programmers can transition easier than ever.

This also means that the people that used to do certain jobs have either moved on to other things, left their domain behind and succumbed to the need for JavaScript/SPA-flavour developers or they are now sitting in management, architect, or lead positions - positions where domain-specific knowledge and experience is important, but being responsible for people is the main purpose. And now that we're finally coming to the conclusion that HTML and CSS are programming languages too, I am afraid we'll soon trade even the term "Author" in HTML/CSS Specs for "Programmer". Yet it made a difference. I never considered myself a programmer. Because that term represents something that I didn't see in myself. I didn't make apps, I made websites.

Yet the industry is caught in its circularity. JavaScript is eating everything up. CSS's much needed specs to concede to the capabilities of CSS-in-JS and Utility-CSS approaches are coming 10 years too late. Former work colleagues are probably still annoyed by me claiming that all we need is scoping (which we already had!) and that the vanilla solution is just around the corner. Now that we have it coming up, those that care are on the margins of the web platform, not at the center any longer. Soon it will not make sense any longer to cater to these people.

To a certain degree, this obsolescence is inevitable. Where e-commerce was a dedicated, separate field not too long ago, it is now everywhere. And what is considered a possible next iteration of the web, web3, is making the transaction the loop that powers absolutely everything. The web has lost to capitalism. And web3 will not change this - instead it will make it its core. I was always laughed at, when I somewhat pessimistically claimed that my skillset will not be wanted any longer. Yet I am now in this position. What I bring to the table is worthless. Because it is not speaking the language of the industry any longer. As a developer I am worthless, because I am not a "programmer" that builds SPA's. As a designer I am worthless, because gone are the times where understanding the rules of gestalt psychology, aesthetics and beauty, paired with unconditional positive regard, congruence and empathy (person-centeredness) are enough to get you a job - the only thing that counts is numbers, because it is the language of business. This is the industrialized web.

The Price of Industrialisation

Section titled The Price of Industrialisation

Processes and tools are being unified, persisted in the process. With reduced complexity, those that were unable to navigate this previously volatile domain are now able to walk the paths that were walked before so often that not only the grass that once grew there is long gone, but that the ground is now sealed forever under asphalt. The web that was once populated by those that didn't find a place anywhere else is now populated by those that pushed them into the margin before. And I find myself in the margin once again. This is the price of industrialisation.

When the outcome matters the most, the process needs to be identical or adjusted to produce the same results. Furniture that was once only made by millions of human hands, making it unique in the process and thus made to last for as long as possible, is now being designed by a handful of people and created by machines. Today we are still needing designers and people who write frontend code. But even these people will become obsolete sooner or later. As is the price of industrialisation - because the reality of having to make money will inevitably overrule everything and everyone. And humans are still the most unreliable and expensive part of the industrial equation. Developers are already happily training code-writing algorithms for github. The habituation phase for invasive technology has long begun and new developers are not unaware of it, they just don't care about it. Empathy has been long irrelevant for designers, though it was once postulated as the most important skill to have. Why be empathic, when you can quantify behaviour into numbers and then make a decision based on this? Empathy requires a person, A/B testing does not.

I am a Designer & Developer on the Web. I know how to make beautiful websites that people will like to use. I know how to make them in a way that will support and hopefully even empower the people who interact with it. I have done this for 11 years and I will continue to do so. But I will not be able to make a living from it any longer. It will become a hobby eventually. Something that I look at with nostalgia, reminiscing about that odd time when I was actually paid to improve someone's experience, paid to make something not only beautiful, but useful - and useful because it was beautiful, and vice versa. Where I was asked to empathically understand someone in order to adapt something to be more congruent with their world view. Making websites always felt useful to me. And at the same time, I always felt the ability to venture, to explore new possibilities and to be creative. These things were not allways effective or lasted, but they were valuable non the less. They made a difference to someone.

I've made the decision to leave the industry a few years ago. I've seen the signs of obsolescence very early. For now, I am changing direction and I am giving up my bastion, because it is not getting anyone anywhere. I've tried finding a job with my skillset, and it is very clear to me that is 11 years in this industry of making more than 40 websites, Expertise in HTML, CSS are absolutely worthless if I am not also an expert in JavaScript, or if I am not at least experienced in React, Vue or Svelte.

So with this post I am mourning my obsolete skillset, which I cultivated to carefully, so intentionally for 11 years. And as it goes with mourning, it hurts and I am getting angry and sad. I learned HTML & CSS when I was suicidal and very addicted to online gaming, mourning my first love (and unknowingly mourning a childhood I never had). Because of it, I was able to make a living, sustain myself, be autonomous, which ultimately lead me to extraordinary individuals and communities. Not only that, but some of those individuals that I got to admire from afar even know that I exist and have shared messages with me. That is just wonderful.

Luckily, I can carry over these positives into a new time, which also inevitably comes with every loss. And, I have a very perverted love of being wrong about my pessimistic predictions. Maybe all of this is different. But for now, I am looking at what I am gaining. I am looking forward to learning new things, new possibilities and new capabilities. I'm excited to see where these new things are gonna carry me.