Evolution of my Blog

Chapter 1

Back in 2021, I wrote my very first blog. I posted it on dev.to because it was the hottest tech blogging platform at that time. Well, I soon realized the need to build my own blogging platform because of how less customizable these third-party platforms are.

I had just one simple requirement at that time. The platform should be able to parse Markdown. Inspired from this video, I decided to build the site using Hugo with the Coder theme. It was indeed a lot more flexible and customizable compared to dev.to or Medium. I used this site for some months or a year probably, and soon realized it’s shortcomings as well.

It wasn’t customizable enough. Sure, you can change the theme, colors, fonts, styles etc to whatever you liked, but, in the end, all of it was static. To be honest, I was kind of intrigued (and inspired) by this blog. To implement something of this sort in my own blog, I would have to write a lot of custom code and logic which is not at all sustainable in the long run. What I need are reusable components.

Chapter 2

I decided that building my own site from scratch instead of relying on pre-made solutions is probably the best way forward. And so I began, building my site in Next.JS. It did solve a lot of problems with the previous workflow, but over the next few years, I got tired of Next.JS drastically changing their entire ecosystem with every version change (Page Router to App Router, Server Side Rendering, Server Actions and what not). Honestly, I don’t even consider Next.JS to be stable enough for any long term project with the amount of breaking changes they introduce every year. So it was time to migrate away from my Next.JS site to something better.

Chapter 3

One thing I realized when I moved from my static site to Next.JS was how slow the site had become. Not just in the frontend, but it took Next.JS 7-10 business days (pun intended), to start the dev server. Basically, I had to sacrifice the workflow for a gain in customizability and flexibility. So, I decided to find some other solution. I also didn’t want to give up on the customizability aspect of the site. So I decided to build my new site with Svelte. It was fast, reliable and easier to maintain. It was my favourite for a long period of time. But all of my attempts had a flaw, which I was constantly ignoring all these time.

I didn’t have dashboard to post my blogs. Everytime, I wanted to post something, I would need to open my editor on my local machine, write the post, push it to Github and wait for the build to complete. Migration was a pain. In all my previous attempts, I would have to manually copy and paste all the blog posts from one to another, often using ChatGPT to convert the formats to make it compatible. I needed a full fledged CMS through which I can publish posts from any device, which is fast, is customizable, is easy to maintain and migrate, and didn’t break with version upgrades.

Chapter 4

It’s been 3 days (as of writing this blog) since I migrated my blog to a self-hosted WordPress site. I can’t say much about this because I haven’t tried it long enough but it does seem to dramatically increase the publishing experience compared to my previous attempts. A bit more about the setup, I decided to go for a KVM2 VPS on Hostinger. The specifications are kind-of an overkill to run just a single WordPress site and yes, I also don’t intend to pay ₹18,000 per year to run just a single site. I decided to install Dokploy which essentially converts your VPS to a personal PaaS. You can install anything on your server through Dokploy’s interface without having to manage traffic distribution (since it’s built into Dokploy through Traefik). Additionally, you get logging, metrics and user management. With this setup, it’s just a second of effort to self host any application that you want.

In