Tommi's Scribbles

Refactoring complete, site is alive

Refactoring complete, site is alive
  • Published on 2023-04-30

Holy dormant website, Batman! It has been over a year since the previous update. The reason is quite simple: in addition to the small visual change you can see, a lot has happened in the background.

First change: Migration away from AWS

First change that took place was migrating the service away from AWS. This is a change most of you won't notice, but since the site is currently off any Content Delivery Networks (CDN) and the high availability provided by AWS, the load time and availability of the site might not be quite as good.

It also means I lost nice things like blocking the site from China. But I am quite sure a simple VPN would get past that anyways.

Where AWS fell short

While AWS S3 with Route53 and Cloudfront is a decent and cost effective setup, for exploratory purposes I decided to move to a different setup. The main driver was that I think AWS CodeCommit, CodeBuild, and CodePipeline aren't quite what I want both from cost, usability, and technology side.

While I could have just kept the static component, I thought it is cleaner to move along entirely. It also gives me some deeper tinkering options and technology choices, mainly allowing me to not use git.

Second change: Custom Static Site Generator (SSG)

The other driving factor for the long downtime was that instead of utilizing 11ty, I decided to roll my own static site generator (SSG). While 11ty is quite powerful, and there are probably a hundred tools to choose from, I decided on rolling my own tool.

Why roll my own static site generator

The main reason is quite simple. Like many open source projects, 11ty has started to bloat, and while for the developer of 11ty the company acquisition / sponsorship is nice, for the tool it is less so. However, that seems to be the common trend these days: roll an open source tool and hope it gets popular enough for you to monetize. All the while benefiting from free labor on the product.

I have also never liked javascript (don't get me started on TypeScript), which is what 11ty uses. While javascript (and typescript) are the hot commodity, and I do use javascript exclusively for work, it is not the technology I want to work with when I can choose.

So instead, I decided to develop something lean but flexible with a language I want. As most refactoring projects, the rework took a while. Main reason was the translating of all the content from 11ty to the new system. And obviously the rework was on the side of everything else.

The transformation is now in a stage where the system is operational. There is still work to be done in the background, but the site is now entirely generated on my new custom tool.

Conclusion

Overall, I am happy with both of the changes. While I might miss some aspects of AWS, I don't feel like I have made a downgrade. It feels more that I have switched to something that is more appropriate for my humble website.

And while the conversion from 11ty was a lot of work, I love the zero dependencies my site generator now has. Not the mention the fact I get to use Ruby instead of javascript.