Simone's Blog (no JS mode)

desktops.zip

Some thoughts on websites that look like desktops

Hey, let's talk about Web Desktops. Recently I've been quite busy with work, real life stuff and didn't have much will power to work on any side projects. But I've been happily maintaining my web desktops collection for a while now, which is closer to 1k stars on GitHub! For those who don't know, this is a directory I actively curate of websites and web apps that look like desktops operating systems.

Everything started as a joke back in 2017 when I was trying to explain to a friend that I wanted to redo my portfolio website and design it as a web desktop. I remember they jokingly said "oh wow that's not really unique, the vaporwave aesthetic is long gone by now!" (the funny thing is we just literally knew a bunch of projects back then like plaza.one and WINDOWS93). Fast forward to two years later, I finally took some time to fully work on my portfolio website, which is the one you're currently reading this blog post on. Not long after, I recall encountering a few more of these web desktops projects on the widely known orange website. However, it wasn't until several months later when I finalized my website that I made the decision to list them all into a markdown file on GitHub.

Probably the main source of inspiration for this online directory has always been the Nathan's Toasty Technology GUI Gallery. I can't even begin to explain how much time I spent on this website as a teenager, going through this collection was truly hypnotic.

When COVID hit, I had a lot of time on my hands to curate these links and explore new ones. So I started href hunting (thanks Kickscondor) and delving into uncharted online territories such as Neocities, href.cool, The Whimsical Club and Are.na, to name just a few. All this surfing made me discover that so much of the "indie web" is still alive, and made me appreciate small curated sites even more. Ultimately, I found myself stumbling upon a significantly greater number of web desktops, and I mean a lot more... at the time that I'm writing this article I'm counting 169 active projects.

But here comes the sad truth, websites break and go down daily. Because of this, I ended up creating an Archived list (recorded using archive.org) which points to old snapshots of these web desktops that no longer work. What makes it sad is probably the fact that the list of archived links will eventually grow bigger than the main list, I suppose. The web and the tools to build it are constantly changing. Not updating a Node version or just an outdated npm package will break your whole project after just 4 damn years you created it.

me exploring the ruins of Paradise OS (me exploring the ruins of Paradise OS)

In a way, navigating old snapshots of an archived website is a bit like exploring an ancient archaeological site or a temple, where only a few columns and bits remain. The perfect example of this is probably Paradise OS. I've never actually seen this website when it was up and running, but from the snapshot on Internet Archive and an online article, I could grasp that this was indeed a web desktop! Just check those cool menus, draggable windows and flashy animations, I wish I could explore it when it was up. It's kind of terrifying the idea that one day Internet Archive and all its content will stop working, I think it's very important to preserve the internet as we know it. Especially with all these lawsuits against the Internet Archive and the spectre of new Gen AIs polluting the web.

In the end, I needed to come up with an automated way to monitor all these links and make sure that the directory doesn't contain broken links. So I wrote a simple selenium script that performs weekly caching of the website's HTML content and looks for major differences from the previous week using a Jaro-Winkler distance algorithm. This is probably not the most efficient way, but it seems to work 90% of the times. I also use brök which is a faster approach to detecting if a link is down or not. I'm wondering if any of you would have chosen a different solution to this problem.

One of the main questions that I see popping up in Hacker News discussions whenever a new web desktop project gets shared is always:

Is there an actual use for these kinds of projects, beyond showing what can be done?

Personally, after navigating 169 sites and 30 archived ones, my answer is: yes. Web Desktops were generally very popular back in 2008/2009, then the trend slowly faded leaving space to mostly nostalgic nerds, but in general, you can build a lot of cool tools and complex web apps using a desktop metaphor. Especially these days with the support of powerful JavaScript frameworks. An interesting discussion was raised by Jeff Atwood back in 2008, on the use of desktops elements and interactions applied to web apps. In the article, he didn't particularly support the idea of having desktops conventions into web applications, and he actually makes a good point:

When you build a "desktop in the web browser"-style application, you're violating users' unwritten expectations of how a web application should look and behave

But does this still hold up in 2023? By now, we should be pretty used to all kinds of wild user experiences on the web, even for enterprise software.

To conclude this article, let's have a look at a bit of data around this directory of web desktops. There are currently 169 active websites, 63 out of 169 are open sourced and 62 out of 63 are hosted on GitHub (one is hosted on GitLab). The top 5 top level domains registered for these projects are: .com (60), .org (23), .io (19), .net (8), .dev (8)

The most popular OS interfaces are:

If you ever explored the directory, you might have noticed that there are a lot of repeated patterns, Especially around the Windows 98-like desktops. But it is truly wonderful to see how each one of these projects present its unique trait, and the authors always put their own signatures.

Also, please note that the choice of those OS icons for these websites is totally arbitrary and was based on my experience of playing with different operating systems throughout my life. If you think there should be a new category of OS for Awesome Web Desktops, I'm totally open to new suggestions, let's talk on GitHub! If you'd like to take a look at the data yourself, I've made an Observable document available here.