I'm finished my new blog engine! (build vs buy)

Yay! Finally I’ve finished all the basic functionality for my new blog scripts after months trying to find development time between visiting Australia, moving house, building Ikea furniture and showing my parents around London. Hopefully I’ll get it live sometime between now and the end of the month. The best part for me is that I can now start working on some of the really interesting features that I’ve wanted to implement for ages but didn’t want to write for my PHP blog when I knew I wanted to migrate to ASP.NET.

One of the interesting things I thought about when starting on this was considering the trade offs between building my own blog scripts and using something prebuilt like das blog or .Text. The advantages of using something prebuilt are pretty clear. I’d get a lot of functionality out of the box that would take me a long time to code myself. I’d get a lot of extra features that my own scripts will probably never have. I also would have been able to do the migration pretty much straight away and would get functionality upgrades without having to do any extra work myself.

Despite this I decided to build my own instead for two reasons. The first was because I really wanted to build something using ASP.NET 2.0. It’s a new version of my primary development platform. I’m excited to try out the new features and want to get some experience with it on a project where I can explore as much as I like. I’m also in the process of doing the latest version of the Microsoft exams and it gives me somewhere I can apply the things I’m learning. It’s also good practice for me because I’m building something that I’m going to have to maintain myself over at least a couple of years.

The other reason I decided to build was because the stuff that’s available doesn’t quite fit what I want to do with my site. I want to do something quite different from just having a standard news format blog. I want to build a website (not just a blog) where the bits link together with navigation that a new user can use to quite easily find things that interest them. Sometimes I feel that while the blog format is a step forward for the people who own the content, it sometimes can be a step back for the some of the site visitors who aren’t regular readers because the content is a lot less structured and navigation between articles get a lot less attention than it does on a really good classic site.

For me the most important part lacking from the prebuilt scripts was the idea of having content sections that weren’t in blog format that could still be given relationships to both the blog content and any of the other content on the site. By relationships I mean something that keeps with the idea of hyperlinks being simple and non-hierarchical. Rather than just doing simple one-way linking relationships I want to try out some more interesting types of relationships starting with the standard blog content relationships like categories and tags and then move into some more experimental things.

I guess I could have found an open source ASP.NET blog to use as a starting point, but the blog aspect is one of the least difficult part so I thought it would be better to start from scratch and design the code so that it will be easy to take it into the direction I want to go in the future.

I also wasn’t in rush since I already had an old PHP framework that was adapted from libraries of code I created for my first dynamic website. It’s been holding up my plans for renewal and improvement a bit, but the old stuff still does the job adequately. :)

It’s all about trade-offs really. I don’t think there’s much argument that if you buy something custom made you’re more likely to get something that fits your requirements perfectly. I guess the important questions are whether you’re willing to pay for that and whether having the custom made is going to really give you much of a benefit in the long run.

I already belong to the “writes their own CMS” club anyway. ;)

Posted on 11 Oct 06 by Helen Emerson (last updated on 11 Oct 06).
Filed under Web development