A New, New Website

October 4, 2020

I had wrist surgery just over 4 weeks ago and have had quite a bit of down-time in those 4 weeks to do a whole lot of ... nothing. It's 2020, which is objectively The Worst Year in all aspects. If we weren't living in the middle of a global pandemic, I'd be able to do more out and about in the world, but that's not the case. So I'm at home, catching up on my reading backlog, and — oh, I guess I rebuilt my website.

Why would you do this to yourself?

That's a great question. Fundamentally, the previous version of my site was broken. I'd used it as a light playground for trying some accessibility improvements, breaking several things along the way. The markup structure abused the appropriate heading structures, there were several color contrast issues, so I decided it was best to refactor it.

The worst part about needing to rebuild the old site was that I didn't feel like I could just remediate the issues and move on. I built the previous version to run on Jekyll and I honestly did not want to fuck with setting up my development environment again. I spent so much time on the last version dealing with environment and build issues that, truth be told, were a waste of my time to fight with. So instead of using anything fancy, I decided to simplify and run with straight HTML and CSS as much as possible.

Redoing the site also afforded me the opportunity to slowly begin using a keyboard and mouse again. Recovering from this surgery has been a much slower process than I anticipated (chalk that up to incorrectly managing my expectations) and by doing a little bit at a time and taking breaks throughout the day, I have been slowly easing back into computer usage. It also gave me the opportunity to experiment with voice-to-text computer usage, which was a great feature to try using.

Most importantly, though, I've missed writing. With all of the reading I've been doing specifically about the history and ethics of technology and the sharp focus a global pandemic has brought to my life, I've recognized that it is mission-critical to own and self-host anything I write. So I set out to update my site with the following goals in mind:

  1. Focus on the people.
  2. Keep it lean.
  3. Ship it quickly.

1. Focus on the people.

It feels like designers and technologists have lost their way focusing on the users at the expense of humanity. It is for this reason that I think the accessiblity of digital spaces is especially poor, and I wanted to use the build and end result of my site as an opportunity to practice what I preach and put the people who will consume my content first.

Accessibility

If you've participated in one of my accessibility talks or trainings, you'll know that the first thing emphasized in one of those forums is semantics. Separate style from structure, code in the appropriate reading order, use semantic HTML5... the list goes on. So I did exactly that.

I began the rebuild with no idea what it would look like with the final CSS applied. I didn't design any comps or think about the design beforehand. I just started writing content using semantic markup. Once I had all of the structure in place, I started thinking about what the presentation layer would look like and went from there, leveraging a color palette that meets a minimum of AA conformance standards. With just a cursory review in Axe and a keyboard-only run-through, I think the site is looking good and it is certainly much better than the previous version!

Privacy

The previous version of my site included Google Analytics tracking, which I have completely removed from this new version and have not included any other kind of tracking. Site analytics has its value, but not on this site. I mainly used it to see if any potential employers were reviewing my site when I was applying for jobs, and that is not in any way enough value to warrant tracking user data and behavior without their consent. Instead of creating an opt-in experience, I removed it altogether. I might consider a privacy-focused, GDPR-compliant version of site analytics tools in the future such as Fathom or Simple Analytics, but for now, no analytics allows me to meet goals 1 and 3.

2. Keep it lean.

I mentioned previously that one of the things I just did not want to deal with was configuring and maintaining a development environment. I just want to be able to publish accessible content quickly and without issue, so I made a few technical decisions with this site that were very different from the previous version.

Basic HTML and CSS. Nothing fancy.

Most of the stuff I used for my previous site's build was unnecessary. I really only need to be able to throw up some HTML in the browser and call it a day, so that's what I did. I did quite a bit of research into IDEs that would allow me to leverage some of the niceties of modern web development, such as preprocessed CSS, and I ultimately landed on using CodePen Projects.

CodePen Projects was honestly the perfect tool for the job here. I started writing the site instantly without having to fuck with any of the bullshit that is modern web development. I used SCSS, leveraged some Nunjucks templating and got the site up and running by downloading the exported flat files and dropping the new site in place via FTP. It really was that easy and it didn't need to be any more complicated. I have a new site up, it's accessible and I can easily publish new content. In fact, I'm writing this very content in CodePen and it's great.

3. Ship it quickly.

With the way my previous site was built, there were several impediments to being able to quickly and easily deploy new content. Given the limitations with my dominant hand, I was able to slowly rework the site over a period of 2 weeks and deployed the new, MVP version in 5 minutes via FTP. It's been years since I've published new content on my personal site, and with the refactor, I'm already easily publishing new content.

This version of my site is certainly an MVP, but it's an MVP that is Minimum Viable for People. It's accessible, acceptably performant and usable. There are a few design patterns that I'm not aesthetically thrilled with that I want to improve, along with accessibility improvements that need to be made (reduced-motion support specifically for the home background animation being one of them), but I wanted to release the new version as quickly as I could so people had a more accessible version of my site to consume. I can't wait to start writing again!