Background
I have been failing to blog since 2014. I have had 28 posts, written between 2014 and 2016, stored in a public S3 bucket and hosted on http://tankthinks.net (no cert) for too long. I have a few ideas inspiring me. I want to publish them this year on a secure, mobile friendly, accessible site. In the process, I wouldn't mind learning a few new technologies.
The previous stack
I love Clojure. In 2014, I was not programming professionally in Clojure and was looking for excuses to create Clojure projects. The old site was built on Cryogen, a Clojure-built static site generator. This has served me well in the past 9 years. For the new site, I wanted to use a few technologies closer to current web standards.
The new Stack
Hosting
First, and perhaps easiest for me, was moving the site to a new private S3 bucket frontend by CloudFront. I used AWS ACM to create and manage a certificate that I could associate with the CloudFront distribution fronting the static site.
11ty
11ty is a flexible, simple, and fast static site generator. It supports several templating engines, including Markdown and Nunjucks, which are useful for authoring content and page templates respectively. It also gives you access to JavaScrit and all its useful packages while not requiring client-side JavaScript code. Also, it's very popular and actively maintained.
Tailwind CSS
Tailwind CSS is a utility-first CSS framework. It's actually not great for a CSS n00b like me, but it does have some benefits. Tailwind is NOT a great place for a CSS beginner because it has its own Domain-Spefic-Language (DSL) that translates to CSS. In other words, you have to learn the DSL and CSS at the same time. In return for this cost, you get to use the composible utility classes directly in HTML. This means I don't have to worry about CSS selectors, organization and re-use, or even color/size details.
This site is based on this template. It scores the magic 400 on Google Lighthouse.