Why Build Another Blog Platform?

Anyone who has gone through web development tutorials in the last decade will have surely come across a "series" wherein the author details how to build a blogging platform as a means of introducing you to the particular language/framework/whatever in question. These types of tutorials are ubiquitous, and often with good reason. The business logic behind a blog platform is relatively simple, and nearly all modern web users will be familiar with the basic functionality and requirements behind it. In addition, blog platforms provide a wide overview of commonly utilized components for web apps. While your ultimate goal may not be to build a blog, there is a good chance that your projects will need to connect to a database, provide dynamic content, authenticate users, and so forth. Walking readers through these steps with the focus of a blog makes a lot of sense. Even if I occasionally grow tired of seeing so many of these types of tutorials, I don't really find any harm in them. Instead I have a bigger question to ask.

Why are there so few blogging platforms actually in use?

Looking at a big picture perspective, Wordpress hosts between 15 and 25% of all websites (numbers vary from different reporting metrics). Which represents somewhere in the neighborhood of 60% of CMS platforms in place. Joomla and Drupal make up another ~5% of all websites, with ~15% of CMS usage. Anecdotally, I first started realizing this while perusing a handful of blogs run by developers. Surely a large percentage of those numbers are indicative of sites which are run by individuals without the knowledge or desire to work directly with the code. Such systems provide an accessible means for creating a simple site. Yet, looking only at developer blogs, these statistics seem to be relatively unchanged. I should note that I did not do a proper study of this to provide actual numbers to compare against, but a quick survey bore out similar results.

So if developers have the knowledge and means to create their own blog platforms, and chances are good that they have built at least small scale stubs of blog functionality throughout their career, why do so many of us still revert to using the big platforms? It seems simple to just say that those systems are easier. You can spin up a new instance in minutes, download some prebuilt themes and plugins, and be off to blogging while hardly thinking about it. But in many ways I feel that this is antithetical to a developer mindset. If you have no desire to get down and dirty in the code, to find out why things work the way they do, and how you can make them work better...well then why do you want to be a developer? (If your answer to this is "money", be prepared for a rough career)

Now would probably be a prudent time to mention that I was myself using Wordpress on this site for quite some time. I had plenty of excuses: it already worked fine, I didn't have the time, a general "why bother?" attitude. The realization came to me as I ran up against limitations in the system, primarily in wanting to format pages in particular ways, and to inject more customized Javascript and CSS on individual pages to provide specific examples. Any time I did this, it felt like a hacky solution. I needed to have my custom code usurp the formatting in place, which is really just designed to handle text with some basic styling. I finally thought to myself: I am perfectly capable of creating an HTML page all by myself; why am I relying on a system to translate styled text into HTML for me?

My focus then became clear. I didn't want a blogging platform, or a CMS, or a rich text editor, or any of that stuff. I wanted to write HTML pages. And I wanted those pages to include only the functionality I actually needed. All the extra overhead that allowed non-developers to operate a site had no meaning to me as a user. They were just obstacles.

So I threw it all out and started over. If you're reading this, I guess that means it worked. Though if I have bugs, I suppose you should let me know in the comments. It wouldn't be a developer's side project without a few bugs.

Sidenote: It should probably be stated that, while I make some sweeping generalizations up there, this has more to do with my own needs and desires than any real mandates (not that I am in a position to make such mandates). I absolutely encourage any bloggers who have the knowledge and capability to consider whether a similar custom development path makes sense for them, but I also understand that there are a million reasons why it would not. I do not in any way deride or condemn the decision to use any of the popular platforms. I include this sidenote primarily because there are far too many people out there making negative statements about such platforms, and of those who decide to use them. To anyone promoting that negativity: cut it out. Seriously.