Continually Rebuilding (This Blog)


This blog has been migrated a whole lotta times. I made the first iteration on WordPress in June 2017 after a trip to India. At that point in my life, I was staunchly religious, and I had a personal relationship with Dr. Pranav Pandya of All World Gayatri Pariwar; in India that summer, he told me I should start writing a blog, and me being obedient to a fault at that point, went ahead and did what I was instructed. I didn’t have a particularly good reason to pick WordPress, I was comfortable with Java and Python at the time, but was fairly green when it came to HTML and CSS. So I scoured Reddit comments to find the go-to recommendation for how to build a blog that I could host on my own domain. And the most common recommendation was to use WordPress.

The following year I tried migrating over to Jekyll. I liked how WordPress let me pick a simple theme, and then only worry about writing posts. Through the magic of its internal plumbing, the post would appear after I hit “Publish”. But I wanted something even more simple. I’d recently learned about the Jamstack and static site generators. I’d always been interested in Ruby on Rails, but never used it, so I picked Jekyll because it was written with Rails. Plus hosting the blog seemed pretty straightforward with Git!@# Pages. Not to mention, I only had two posts published at the time, so copying them over to Markdown was easy. Unfortunately I wasn’t a fan of not having a web interface to write with, so I moved back to WordPress.

In 2019 I fell in love with the Go programming language and its simplicity. I forget if it was later that year, or 2020, but I tried migrating again. By then I had 9 posts, but it was still small enough to copy everything over to Markdown again. This time around I picked Hugo because it was written in Go. Was it the best reasoning? Probably not, but at least it built quickly. This time around I got frustrated how Hugo handled themes, but I already had all my content in Markdown, so I decided to go with Eleventy and forgot about making it look pretty.

And of course after finally migrating off WordPress, I stopped writing for my blog. Then right before Christmas in 2021, I decided to revive it. I thought that not having a web interface to easily write with was introducing too much friction, but I didn’t want to go back to WordPress again, so I scrapped what I had with Eleventy, and moved everything over to Ghost. In 2022 I took the DVA-C01 (AWS Certified Developer - Associate Certification) and CKAD (Certified Kubernetes Application Developer) exams. I also started teaching part time that year, and had material I wanted to make easily available to my students. Ghost’s CMS made it pretty easy for me to write up my notes in Markdown, then copy/paste them into a post, and hit publish.

2023 I drank the LLM fruit-flavored-drink, and thought it would let me write even faster. And I quickly filled my blog with what I’d now call slop. Unfortunately it also killed what I loved about writing. I’d craft a prompt, give it a rough format, and then edit. None of it really sounded like me, or wrote the way I did. It just produced a lot of volume very quickly.

I continued to use Ghost till 2024. By now the honeymoon period with LLMs had ended, especially after quickly running into the limits of the tools that everyone kept insisting could write my application code for me. This time around, I became fascinated with Astro. There was something about a JavaScript meta-framework that let you bring your own JS framework if you wanted, but by default shipped no JS to the client. That, for lack of a better phrase, was incredibly cool. Unfortunately despite letting me import my posts in Markdown, Ghost made it pretty hard to export in the same format. I made a couple attempts at trying to write a Python script to take the export.json that Ghost gave me, and extract the individual posts in Markdown from it. Eventually, I’d wasted several hours trying to automate the process, so I ate my pride as an engineer and copied/pasted all 110 posts. I’m not sure why I thought I needed to save the LLM generated posts, but for whatever reason I did. I then wrote two new posts that year. One about SQLite, because I’d learned just how much more performant it had become since I last used it in undergrad. And another retelling the story of how I went from failing out of my original pre-med track, into somehow becoming a software engineer.

Now we’re at 2025. And you can pretty clearly see that this is the 3rd post. I decided this blog has been migrated enough that it’s probably time for a reboot. I like my current tech stack, I started with the default Astro blog starter, and replaced all the traditional CSS with Tailwind. Why? Because after multiple years of writing Java, I appreciate being able to have my templating and styling co-located instead of jumping through a bunch of files and folders. I did not, however, like the volume of posts I had. I like to write and that was not the signal I was getting reading through them. The signal I did get was I liked to post content. So I scrapped everything but the two most recent posts. Time to see if I stick with Astro or migrate again.