Welcome to my new blog site, Musings.
The Old Days
In an earlier version of my blog site, a long time ago, I had coded the entire thing using bare HTML, CSS, and a bit of JS. I liked to have simple static HTML pages that loaded quickly and be fulfilled by the fact that I had built and maintained it from scratch.
I started my career as an iOS developer on Swift. Since then, after having founded Labyrinth and a few other companies, leading a tech team that ended up building over 20 products and solutions, I have been working with many programming languages. I’d like to now think that I’m a bit of a programming polyglot. Of course, I’m not an expert in most languages. I can read, understand, find flaws in logic, and even put together something that works and solves a problem in many languages in a few days.
Given that context, developing and maintaining my blog site myself was a nice challenge and also a good way to keep myself busy in my personal time.
I even developed a bare-bones analytics service for my website on AWS using API Gateway, Lambda, and DynamoDB and called it Reasoning. I did not have a dashboard to view page counts, but a CLI tool to fetch this from DynamoDB and show different insights on blog posts views and popularity, all within in a time range. This was working great, but eventually work caught up, I wasn’t writing very much anymore, and I couldn’t maintain Reasoning.
When I got back to actively writing in 2023, I realized this: as fulfilling as it is to code the entire blog site from scratch, I was spending a non-insignificant amount of time to get a new post out as I was editing the headers and other boilerplate semi-manually. I had scripts to automatically resize images for covers, meta tag entries, open graph meta tag entries, etc. But, it was all invoked manually and still needed some thought beyond just writing a post and publishing it.
Considering that, I decided to stop building on my own site and find a simple, clean, and customizable static-site-generator.
Static Site Generator of Choice
I did some research and quickly decided on Hugo. Hugo is a static-site generator that’s built on Go. I then moved my entire blog to a site generated using Hugo over the course of a couple of days. Due to its slightly-opinionated setup, extensive availability of themes made by the community, and good customizability, it’s very easy to get a site up and running. What worked in my favor was the following. When I manually maintained my blog, I was anyway writing my posts in Markdown on Ulysses, I had a script to convert those to HTML and attach my site’s head and styling. Hugo also uses Markdown as the bare form of content that’s written on the app, which it then converts to HTML pages; far more comprehensively than I used to, of course. This meant that I could port my posts over to a Hugo site with little work.
In the last few months, I also moved away from Ulysses as my writing tool of choice to Obsidian. On top of being a free alternate, Obsidian’s power lies in its reliance on the OS’s file system to store and organize the written content, as opposed to Ulysses’s custom organization. This means, if there’s a time in the future when Obsidian is not maintained anymore or is discontinued, I would have the same access to all my written content, organized as I had on Obsidian, accessible on any other text editing app. On top of this, Obsidian has some nifty features. The graph-based navigation is great for recording and going back to a complex network of thoughts that are documented and interlinked.
I have since even moved away from using my custom analytics service to using Telemetry Deck for similar reasons and to just concentrate on writing and not the overheads. Read more about that in The Search for Privacy-Friendly Website Analysis.
Read around and write to me if you have thoughts about whatever I have put on here. I am on [email protected].