← Back to weeks

Week 15 | Static site refactor

Originally, this site was built to be my lightweight place on the web. It was only supposed to hold 2 things:

  1. Information about who I am
  2. Thoughts and essays

Over the last 2 years, this site has ballooned in requirements. Now it also holds:

  1. This 52 weeks project
  2. A "Now" page
  3. My human changelog

I have a few other things I want to add, like book reviews/summaries and possibly some random stats about myself. The PHP version I had made that was largely propelled by bash scripts and json files was starting to get a little annoying to maintain. Like most products, the job to be done evolved as time went on, and the requirements expanded.

Having been loving working with Clojure recently, I decided it would be fun to re-build the PHP version with Clojure instead. It's far from beautiful, or fully taking advantage of Clojure features, but it's the first step at making it more maintainable. Over time, and I as get better writing Clojure code, I'm sure the backend to this site will nicer.

You might be wondering why I didn't choose a static site generator that already exists. Well, I want the flexibility of making my own choices of how things are laid out, and in using my own tools. Even if it's more painful, it allows me the ability to focus on my domain problems vs the domain problems the author(s) of the static generator set out to solve. It's also the perfect excuse to struggle through various important problems in programming to build up the understanding of how to solve these problems in Clojure myself.

The code to this website hasn't been open sourced before. That's largely because I've been embarrassed by how ugly the code was. Even though it's not that much better, it's still better than it was before. So, I'm making the project open source so you can take a gander if you want!

Here's the repository on GitLab: https://gitlab.com/alexcaza/alexcaza.gitlab.io