zamBz.net

Matthew Archer's Personal Website


This Website

As web technology improves, I've found my level of enjoyment using the web has generally decreased over the years. I think this is, in part, due to the fact that as it becomes easier and easier to create amazing websites, it naturally follows that it becomes easier and easier to make terrible websites too. Unfortunately, bloated and slow websites that are easy to break are often the norm in the present day.

While clearly not aesthetically groundbreaking, this personal website is reflection of my attitude towards modern web development and design. Websites should be accessible to use on all platforms, and should simply just work. Modern HTML and CSS are incredibly powerful, responsive websites are now stupidly simple to build.

Technical implementation

The server files are hosted as a collection of static files in an AWS S3 bucket. All of the HTML and CSS is handwritten, but I have my own solution for generating the web pages.

In order to avoid the workload of needing updating every single file manually if I want to change how the pages are designed, I write each page's contents in a "reduced" HTML file with a small amount of additional information in the header. Then, I only maintain a handful of template HTML files which contains the common structure of most pages. A python script will then go through all the content files, find the correpsonding template file, and then inject it's content into a new file, thereby "compiling" the website package which is then deployed to S3 when it's ready to be published.

In case that explanation wasn't clear, here is the "main" template that most pages use, and here is the content file for one particular version of this webpage. It should be fairly obvious how it works (hint: right click and view page source)

Obviously existing static site generators already number in the hundreds, but isn't it always just more fun to do this stuff yourself? ;) 100 lines of python does the job and does it well-enough. A large technology stack is overkill for a static website.

Inspiration

This website was in small part inspired by this website (profanity warning), and in a much larger part inspired by its "successor".

Dark mode (rant)

Dark mode themes for websites and software are very popular, and for good reason. Unfortunately, it is often done very poorly and actually leads to worse eye strain than most light themes. This is, in my opinion, due to the fact that many designers have made the error of thinking that "dark = white text on black background" or "dark = inverted light", leading to dark themes which painfully high contrast that leave your eyes strained (and at least for me, with persisting "bars" across my vision for a few minutes) after a minute or two of reading.

What works better is very light grey on a darker (but not close to black) grey background. But I prefer a pleasant dark grey on pale blue background :)