Andrew's WebLog

Thoughts on my homepage

Once upon a time, way back when I was an architecture major in college, I had been using a SquareSpace site to show off my architectural design projects. (Before, I had used Tumblr as a site-builder, and before that I was using Blogger.) When I changed my major to computer science, I felt it would be more appropriate if my site was hand-coded.

Around this time, I put together a PDF book of all my architecture projects - the same one linked on my homepage today - as I felt they should exist in a standalone format not tied to any singular website building service. My initial hand-coded site wasn’t much more than a container for the PDF embedded at the center of the page. When the time came to start expanding the site and linking to other projects, I opted to use a highly-responsive, single-screen design (i.e. a site which fills the entire page without scrolling). I didn’t intend for the page to be anything more than a simple hub for my projects, like a linktree. It also served the dual purpose of being a small pet-project I could experiment with.

The final iteration of this design can still be found on old.yaros.ae and you can find successive versions of it on the Internet Archive's Wayback Machine between 2017 and 2020 (under the andrewyaros.com and yaros.ae urls). Owing to the imperfections with the IA’s scraping process, not all of the snapshots are without formatting issues.

Sadly, the ship-of-Theseus school of design has its limitations. Soon, I wanted to have my homepage be less of a hub and more of a destination in-of-itself. I realized I had wrote myself into a corner, as the current code was too difficult to adapt into a more traditional, scrollable design. Too many parts of the stylesheet were dependent on the assumption the page was equal in size to the viewport. And so, around the end of 2020, in the midst of the pandemic, I ended up rewriting my site from scratch, creating what is essentially the same design I’m using now.

Like my old homepage, this new one has been subject to a million little changes over the past few years. Each time I come back to it I find myself considering whether it’s time for another full rewrite. The complexity of the stylesheet is growing a bit out of control. There are some things I know need to be fully reconsidered, like the hierarchy of the dimensions used for whitespace (i.e. padding and margins). As things stand, the page still works just fine, and right now I think it would be a waste of time to rewrite it without redesigning the page’s formatting.

Every so often I’ll think of a clever or crazy idea for a new homepage design, and sometimes I’ll make a quick sketch or prototype of it. However, so far I haven’t implemented any of these more radical format changes. Sometimes a good idea is dependent on the existence of a mouse pointer, which means it won’t work well on mobile. I’m reluctant to do anything too nontraditional, as it can run the risk of confusing or alienating people. Most often, the issue is a unique UI idea will necessitate the use of JavaScript. Not requiring JS on my personal site is my own self-imposed restriction.

As a matter of principle, except for full-fledged web applications, I strongly feel websites shouldn’t depend on the use of JS. Ideally, it should be limited to enhancing and supplementing the functionality of the site. Disabling JS should only result in a minimal degradation to the user experience.

Part of the issue is we take the capabilities of JavaScript for granted, but the core of the problem is the use of JS has been abused to no end. Many larger sites load tens to hundreds of megabytes of code, the result of the proliferation of bloated web frameworks and libraries, each with their own sets of dependencies. There’s also tracking code, and browser fingerprinting, and ads… lots and lots of ads. People too willingly put up with the engorged mess the modern web has become. I want to be part of the solution, not the problem.

I felt compelled to write these thoughts down after updating my site earlier this week. Once more, its current iteration survives another day. Will it survive the year? Or the next year? Who knows…

#meta