A new look

Monday 14 October 2024 at 23:55 CEST

About a year and a half ago, I stopped writing.

Not because I didn't want to write. I just didn't have a place where I enjoyed writing. My blog felt old and grey. I wanted something shinier.

And so I vowed to start a new one.

Turns out I had to get laid off first.

In which our hero wanders about in the forest for a bit too long

At the end of August, I got the unwelcome news that my services would no longer be required at $COMPANY.

This came as a bit of a shock, especially as I was scheduled to go on holiday the next day.

So, after being unceremoniously "deactivated" and losing access to all the various services, I went and told my partner the news (I was a fully-remote worker), made some breakfast for everyone, and then decided to not think about this until I'd had my holiday.

I did a German test (A2, a.k.a. "Tourist German"), which I recently found out I did very well in, despite not being able to actually have a conversation in German, then we went on holiday for a week. When we returned, I decided I wanted a new website, and now I had the time to make it happen.

And so, in a vague return to the point, I got started.

The hero dreams of a simpler time

I knew I wanted a few things for my new site.

I wasn't about to give up on all the old posts, on my old domain, monospacedmonologues.com (which redirects here now). I like some of them a lot. They were to stay. But… with caveats.

The "IndieWeb" has been ringing in my ears for a while now, and it was time to make it happen.

My previous blog was deployed to AWS S3, distributed globally with CloudFront. It loaded its fonts from one domain, JavaScript from another domain, and sent analytics to a third. Such was the world ten years ago, in which this was not just normal, but encouraged.

This new site was to do none of that. Instead, it would be deployed to a little computer on my desk, which would serve all the content itself, avoid directing users to any third-parties for assets or code, and completely refrain from tracking anything about anyone.

In short: this new Web looks a lot like the Web did 20 years ago, when Facebook was a dorm-room project and DoubleClick hadn't yet reverse-acquired Google.

Our hero almost falls to their doom

I started with a brief description of myself for anyone who might be interested in employing me, which you can now find on the about me page.

I wrote some HTML and CSS. I picked out a colour theme, Catppuccin, and a typeface, Space Grotesk, both of which I fell in love with immediately.

And then I started thinking about the blog posts. They were all written in Markdown, with custom Hugo shortcodes scattered everywhere.

Markdown was alright. I got Pandoc running (via the Shake build tool). But I had to do something about those custom shortcodes. I could just inline some of them, but not others. And then I discovered WebC, a templating language built on top of Web Components. It seemed perfect! I could have the Markdown processor just spit out the tags, and then process them further as Web Components.

Cue a week of misery, as the yak stack grew ever larger. I needed custom Markdown behaviour, which meant I couldn't use Pandoc and instead needed to use a JavaScript-based Markdown processor, which meant that I had to call a program rather than a function, which meant it was too slow, so I had to find ways to make a single program invocation compile multiple Markdown files, which… you get the idea.

If I hadn't gotten fed up and thrown it all out, I would probably have abandoned this project by now, and my blog would still be inert.

Faced with insurmountable odds, our hero is enlightened

What was the point here? Why was I trying to make a build tool do all the random things I needed for my website?

I'd been burned by Hugo, but that didn't mean I couldn't use a static site generator, I just needed a lighter one. So I checked out Eleventy, and it seemed decent. Most importantly, it didn't want to tell me how to do anything; I was able to override just about any behaviour that I wanted. It checked the boxes, mostly.

Sure, I'd prefer to write my own, but that wasn't the goal. I just wanted a website I could work with.

The hero slays the dragon or rescues the princess or whatever

There's no dragon. It's just me and my inner demons.

It wasn't easy. It took work. But when I stopped trying to make a program and just focused on the website, I was able to check things off. I got the blog posts building (even the ones with maths). I rewrote the CodePen embeds so the code is local (using CodePen Prefill Embeds, which are very cool), and they only load on demand. I picked a couple more fonts for code and the headers. I made some CSS tweaks.

It's not done, but it's shipped. That's OK; it'll never be done.

And now I have a website that I love. It looks great, in my humble opinion. I can type some stuff, commit, and type ./deploy.nu, and it'll be updated on my server about 30 seconds later. I did it from the train over my phone's data connection yesterday, and it worked.

I'll write some more about the technical stuff later. For now, I just had to get this off my chest. (And make sure I write at least one post this year.)

When I'm working on my own, I find it hard to keep myself focused on the goal. I'm really proud of myself that this time, I managed to walk away from the yaks.


If you enjoyed this post, you can subscribe to this blog using Atom.

Maybe you have something to say. You can email me or toot at me. I love feedback. I also love gigantic compliments, so please send those too.

Please feel free to share this on any and all good social networks.

This article is licensed under the Creative Commons Attribution 4.0 International Public License (CC-BY-4.0).