Over-engineering: The tech behind this website
Hello world! I've finally turned these articles sitting on Are.na into a website! Here's a small peek behind the scenes of this seemingly simple, but over-engineered tool which I wrote to build it.
Initially, this blog started as some articles on an Are.na channel, but I think it's a bit of a poor reading experience. Unfortunately, there wasn't a tool that would do this out of the box for me. So I wanted to roll a different frontend for it which would allow me to tweak the readability. Luckily Are.na has an API, so I decided to make use of it to pull in all content and generate a website based on that data with a homebrew script.
For the fetching of the Are.na channel and generating the HTML I'm using Clojurescript (compiled with shadow-cljs) and handlebars (templating) which is all executed by node.js. Although Clojurescript is perhaps a bit overkill for a simple project like this, I learned from a previous website project (done in next.js+plain js) that sometimes you should pick the tool which you know best. There are luckily no runtime costs since it's all precompiled anyway.
I love static website hosts and used different services like Github Pages, Zeit, Glitch and Netlify for various projects. I started building this blog on Glitch, but ended up using Netlify for their custom domains + https and better tooling.
I've previously also used other hosted backends like Contentful, Airtable and Google Sheets instead of Are.na. I can recommend Airtable which works especially well for portfolio websites (image upload!) but unfortunately doesn't have webhooks to notify the static website host.
Anyway, here's the source code if you're interested. I still need to actually tweak the CSS of the blog to make it more readable and appealing, but it's a start. :)