Why I created my own blogging engine

Yep. I wrote a blogging engine, and this is the very first post it is serving.

It goes without saying that I'm standing on the shoulders of giants: the hosting platform, the web framework, and many other smaller libraries and services that are powering your reading experience right now, were not written by me. So it's not really a big deal, what I did.
That said, stitching these disparate pieces together, with code, to create something that does a non-trivial amount of work in addition to what the pieces individually do, definitely took some effort.

So why did I do it?

The answer to this question is made up of three parts…

To write

I like writing as an activity, although I'm not sure as to the reason. I guess it feels nice to have your thoughts out of your head, and let them become tangible threads that can be examined and pulled at and stored, instead of the ephemeral clouds they otherwise are. I also feel that sharing such thoughts, within reason, is an important exercise.

Along those lines, I used to have two blogs on WordPress.com, but I stopped blogging over 3 years ago (my technical blog from that time still lives, albeit dormant). Of late, enough of this inclination to write had returned to warrant taking some steps.

What steps could those be?

To own

In all seriousness, I could have gone back to blogging on WordPress.com – familiar, trustworthy as far as services go, free of cost, and highly configurable. And there are other very well designed and/or functionally rich services as well – Blogger, Tumblr, Medium, Svbtle and Ghost being the notable ones.

However, all of these felt a bit 'distant'. It was a hazy combination of my desire for aesthetic configurability and familiarity with the underpinnings of the engine, combined with a bit of the plain old 'someone else built/owns/runs it'.

But I realized that this was a highly subjective opinion, and I still wasn't convinced. That's where the final reason came in.

To tinker

I happen to be a programmer.

I was looking for a project to play with, at about the same time as the itch to write was resurfacing. So, in theory, and depending on how much effort I was willing to put in, my thoughts could have a 'home' that I had more ownership over – having been created by me in the first place – than the services listed earlier. And I would have the freedom to tweak it, poke it, and break it at will.

And that's how I arrived at the decision of creating this engine.

But wait, couldn't I have…

At this point, you might argue that there are at least two other courses of action that would've worked:

  1. Use separate avenues for writing and tinkering
    This was perfectly acceptable, but I preferred working on a project that would be personally meaningful and enjoyable, while also being somewhat challenging at my level of proficiency. Creating a blogging engine fit all these criteria.
  2. Use an open source blogging platform
    I'll concede here. There's an arguable fault with what I did: I blatantly reinvented a wheel that has been perfected, in a lot of different ways, by people a lot more talented than me, after having a lot more time spent on it than I'll ever spend on this engine. More importantly, many variations of this 'wheel' are open source and fit for tinkering – WordPress (the software), Ghost (the application), Jekyll (static site generator), and a ton of other great alternatives.
    What's my excuse then? There are two, actually:
    • The petty one is that this particular engine is mine – custom-made, with love, from the ground up (not technically from the ground up, but you get the idea). Hence, using it is a joy in and of itself, regardless of my ability to tinker with it. It's basically my baby.
    • The (slightly) more logical one is that I really wanted to do this. At the time I started coding, this was going to be the biggest project I had created by myself. And by the time I got something usable running, it had grown in scope even more. Notwithstanding the fact that, objectively, it's not a very complex piece of software, I'd argue that I learnt a lot while creating it, which makes it worth it.

That's essentially the whole picture. I don't know how this will turn out in the long run, but for now, you're reading this post, and that means the engine is working.

A small thank you

I've been fortunate to have read and listened to many great people, both from within and outside of what might broadly be classfied as the software industry. They've all contributed to making this whole notion – of making your ideas public – seem possible and worthwhile to me, and for that I'm very grateful.
Three of my personal favorites:

  • Scott Hanselman – an eloquent public speaker, teacher and an avid blogger. Him using a blogging engine he co-wrote lent weight to the proposition.
  • Paul Graham – one of the most influential essayists in the hacker community. Reading him has made me realize that ideas, whether abstract or concrete, deserve to be seen and discussed.
  • Jeff Atwood – another amazing blogger, and the co-founder of stackoverflow.com. To me, his posts often seem to link together the craft of programming and its human side.

And that's the first post on this blog.