Over the past few decades, the web has evolved in truly magnificent ways — from a limited network of computers exchanging plain text, into a fundamental part of modern life. A major step in that evolution process was, without a doubt, the popularization of dynamic, scriptable websites in the early 2000s — so major that it’s often referred to as the birth of “Web 2.0”.
However, while much of that dynamism is used to enable rich user experiences and powerful web applications, it does often come with a cost. As websites went from simple collections of hypertext files and stylesheets into increasingly sophisticated pieces of software — they also, in general, became much heavier and slower to load.
Engineering is all about tradeoffs, and when building web experiences that need to be truly dynamic — the tradeoff of having a website be slower to load in order to enable powerful features might be completely worth making. However, even websites that simply display text and images can sometimes take seconds to load and render — even if they don’t (seemingly) include any form of dynamism whatsoever.
If dynamism is the good, slowness is the bad, then the modern web’s relentless user tracking is definitely the ugly. From user profiling, to invasive analytics libraries, to data harvesting — big data gathering is everywhere, and the same dynamic code execution that’s used to enable those great user experiences is, sadly, often used for the exact opposite — to track visitors, to display disruptive, animated banner ads and autoplaying videos, to interrupt users with growth hacking popups, and much more.
I’m not saying that all ads are bad. In fact, this website is kept free and available to everyone thanks to responsible advertising, with referral links as the only means of tracking clicks.
When I set out to build this latest version of Swift by Sundell, I knew that I wanted to stay as far away from those ugly parts of the modern web as possible. So I started to ask myself: What could my website look like if I went the complete opposite direction — if it didn’t include any form of dynamism, but still looked and felt like a modern web experience?
Basically, could I build a modern website more or less the same way as websites were built in the late 90s — as static collections of HTML, CSS and image files?
Back to basics
I love a good engineering challenge. In fact, I think that one of the quickest ways to grow as an engineer is to constantly set up small little challenges while doing your daily work. Not only does that encourage you to learn new skills, and to “think outside of the box” — it also often improves the end result as well.
Would it be possible to make this algorithm more efficient, how could I simplify this view hierarchy, or what would this API look like if I refined it down to its simplest possible form? Those are all examples of the types of questions that I love to ask myself while writing code on a daily basis, and — perhaps even more importantly — when starting a new project.
So, when I set out to build Swift by Sundell 2.0, I expanded that idea of building a website using a basic set of technologies into somewhat of a personal engineering challenge.
Now, does this mean that I’m encouraging other developers to take the same approach as me? Just like anything that’s remotely interesting to discuss within technology — it depends.
Thanks for reading! 🚀
All of the core tools used to build this website are open source. Check out the Publish static site generator if you wish to learn more, and you’re of course more than welcome to contact me with your questions, comments and feedback — either via Twitter or email.