I decided to redesign my personal website from scratch (you're looking at the new one) and this first post is a little explanation as to why. I'll first go over some of the technical reasons, and then follow it up with the more aspirational.
Purely from a learning point-of-view, it's fun to learn new technologies and experiment with them! The website I've been running for most of 2020 was itself a React.js redesign of my 2019 website (static HTML and CSS).
I needed to learn React this year for some projects, so practicing it on my own website seemed a fun way to personalize my learning. This was not a bad idea, I learned a lot about React, those projects went well (or nowhere), and my website worked just fine.
The problem was React was not the best tool for the job. For a website that hosted an About page, a Portfolio of projects, and a list of books I've read, it had a pretty long build time! It's a classic case of seeing every problem as a nail when holding a hammer. I'm not saying there's anything wrong with using React for a simple website, but it should be dependant on the use-case. I don't think I'd hear much pushback if I suggested "We probably don't need Electron for our company's portfolio page!"
I ended up switching to 11ty for the current incarnation of the site (at the time of writing). I don't have much to say about why and I can't claim to have done much research on the subject before deciding, but what I can say is that my build times are shorter! I also enjoy the simplicity of writing posts in markdown, although I'm still getting used to the syntax Shopify Liquid is... interesting).
Another switch worth noting is the switch from Firebase to Netlify for hosting. I'd argue this is probably the better example of my previous point about the hammer and nails. Firebase was definitely overkill for my website, and the fact that I can now have new builds deployed with a simple push to the main branch is exciting! I could have automated deployment with Firebase using Github Actions, but I enjoy the reduced friction and boilerplate that Netflify comes with. Connecting the site to my repo and having it build 11ty without any config was a magical setup experience.
The UI for this site was my best attempt at stealing the wonderful design of Aaron Shekey's personal site, who I recommend everyone check out! (Update April 2021: His website no longer looks like the one that I drew inspiration from, but still check him out!)
I didn't mention another big reason for switching the website technology, which was to support friction-less blogging. One of my goals going forward is to write a little more publically; about my learnings, my thoughts (I'll try and refrain from inflicting my views upon the world too much) and my goals. I see this website redesign as my public commitment to writing and putting myself out there more.
This first post should serve as a sort of template of what the writing on this site may look like, a mix of personal and technical anecdotes, roughly in the same ratio (all subject to change!). I'm not a technical authority by any means, so I won't pretend to be. These posts are more like a public journal for myself, which others may or may not find useful. Even if nobody reads them, I think I'll get value from writing them. Beyond practicing writing, these posts serve as little note-to-selfs for me to look back to (now I'll hopefully avoid unnecessarily switching back to React for this site a year from now!).
I chose to put this writing on my own static website, as opposed to a Medium blog or something, because I like the idea of decentralizing the internet, and operating outside the walled gardens of big social media companies. On this site there is no content moderation (not that I'll be sharing anything controversial 😅) and no ads!