Create Your Own Blog Engine or Use an Existing?

Today, the 14th of February, I began my blog journey that I have been thinking of doing for the last couple of months. In my first post I will be talking about the question all blog writers ask before they start a blog - “which blog engine should I use?” – and I am no exception. I spent a couple of weeks thinking and searching for the right blog engine and this is what I found.

Requirements for my blog

Before I began my research I had a set of requirements that I wanted my blog to handle. Firstly I wanted it to be written in a language I understand, so that I could easily configure it to my needs. The language I am the most comfortable with is C# in the .NET framework by Microsoft. This choice decreased the number of options I had to choose from a lot, and of course also removed the obvious choice of Wordpress which the majority of the blog sphere run.

My next requirement was to be able to easily customize the design and not have to set with the authors own design. Part of this requirement was also to have a nice and clean HTML source view (which you see through “view-source” in your browser). You may think this is totally unnecessary as the page can both look nice and be functional even with an ugly source view – but this is an obsession of mine and I still think it shows a degree of professionalism to have nicely formatted and valid HTML in your websites. This meant I had to throw away almost all of the major blog engines as they are built with ASP.NET Web Forms which has a lot of messy ID attributes, lots of script tags and large View State string lurking in the source. It should be noted though, that many of the blog engines have done a great job at correcting this, but still not enough for me! The skinning part I didn’t look into that much as the blog engines had already failed at another part of my requirements.

Following on I wanted a simple content management system (CMS) for displaying a about-page and listing projects I have created. This is covered by almost all blog engines out there, but I also wanted to be able to create my own dynamic pages (created with ASP.NET MVC) to run alongside the blog. This would most likely get messy and hard to maintain, having two different systems running in the same application.

Nice to have features

These three things was the major requirements I had, but I also had a few nice-to-have features. Like friendly URLs, support for MetaWeblog API and Windows Live Writer, OpenID login to comment and if possible written in ASP.NET MVC.

Finally making a decision

After going through several ASP.NET blog engines – more specifically Subtext, DasBlog, BlogEngine.NET and Oxite – I made the decision to abandon them all! I’m making my own blog engine and have it exactly like I want it. I might not get all the cool features like Trackbacks, Pingback and fancy admin system with statistics – but I will have something I can develop from time to time when I need new features.

Working on and off, it took about a month to create the blog with all the features mentioned above and a simple design. I also gave it a silly name – FriendlyBlog – to be able to refer to it easier. It is created with the ASP.NET MVC framework which lets me separate (most) logic from the presentation layer and have a clean source. I implemented the MetaWeblog API so that I can easily create posts with the excellent Windows Live Writer software. I’m using OpenID for comments which hopefully helps a bit against spam and yet is easy for users to use, and if it doesn’t help I can use Akismet. The blog engine also has Friendly URLs, but that can hardly be called a feature when using ASP.NET MVC, as it is too easy to get.

I’m now looking forward to using my new, shiny, blog engine to share my experience and thoughts in different technical areas.

published in ASP.NET MVC, Projects