Blog

New site design, less bloat

Introduction

Recently I've been on a minimalist kick and I've been cutting out things in my life to make everything simpler. While I've been mostly focusing on physical things I've also taken the axe to some parts of my digital life.

One of thing I recently did was terminate my LinkedIn account. Primarily, this was because the way I used LinkedIn didn't bring a lot of value to me. I basically only used it as a digital posting of my resume. I didn't take advantage of any of the "social" features except to accept/ignore friend requests. The one time I did try to use the social features was when I was looking for a job and attempted to contact the HR representatives behind the job postings. Ultimately it was fruitless and most of my messages either got ignored or I got delegated to a different person...who then also ignored my messages.

So I thought to myself, was LinkedIn providing me any value that email and a simple resume/portfolio site couldn't? Was it worth it to relinquish my personal information to LinkedIn for its feature set? For me the answers were no, so I dove back into ralphminderhoud.com...4 years after the last time I touched it!

There's been a lot of online discussion about the "bloat" of the modern internet and it has really resonated with me. Feels like everyday the front-end stack gets more complicated with new frameworks or new tools. I run uBlock and uMatrix in my browser and it has really revealed to me how many sites make tens if not hundreds of requests per page load...the worst offenders usually being the ones with the least dynamic content! Dan Luu's article presents some interesting ideas and explores the issue of bloat at a technical level and despite these sites being parodies they speak a lot of truth: Motherfucking website, Better Motherfucking website and The Best Motherfucking website.

Objectives

So my plan was to refresh my personal website with these goals:

  • Remove all bloat and make it as lightweight as possible
  • Display my resume/projects
  • Make it easy to update

Strategy

Here is how I achieved those goals:

Step 1: I continue to use Pelican to generate a static website. You can't get simpler/faster than a static website.

Step 2: I removed all excess stylesheets,javascript and anything else that added bloat or made extra external requests. Here is a list of the things I cut out:

  • Bootstrap css/js
  • Disqus comments
  • Google Analytics
  • Google fonts
  • Github syntax highlighting css
  • Social icon set

Step 3: I re-wrote the base theme from scratch to be as minimal as possible. It's not to everyone's taste but I prefer the simpler pages with less noise and more content.

Step 4: I now deploy to gitlab-pages instead of my personal server. The main driving point is that it saves me from having to do the work of tinkering with nginx/deploy scripts. The less "stuff" I have to manage myself on my systems the better -- part of the minimalist strategy. I was planning to deploy to github-pages originally but I found the requirements too annoying. To deploy a 'user' page to github you have to create a repository with the HTML content at the top level. This means I would have to maintain two repositories, one for the code and one for the output OR do something janky like output the HTML at the root of my source tree. I discovered Gitlab's pages and it's SOOOO much better. I just push my repository with an additional configuration file for their continuous integration system and it builds/publishes my project automatically for me.

Conclusion

Using the blog post index page for the data, I was able to reduce my website from 19 requests and 278.50 KB to 3 requests and 7.58 KB. In terms of pure numbers, that's just from small to smaller but on a relative level thats more than 3x less requests and more than 36x smaller!

Overall I think the project was successful: less physical bytes to deliver my content and less mental bytes to publish it!