One of the best ways to keep your skills sharp as a developer is to start your own open source project. For the last 6 months or so I have been trying to come up with ideas on what kind of application I want to build. Since I enjoy blogging so much I decided that I will build my own blogging platform. There are a lot of good blogging platforms already available such as Wordpress, dasBlog and BlogEngine.NET. In order to make something comparative to these products will take a fair amount of time and effort. However, having a pet project like this is fun and I am really looking forward to working on it.
The WeBlog (pronounced We Blog) project is hosted on codeplex. I have already checked in some code and things are starting to take shape even though it is still early in the process. If you want to compile the code you will need need Visual Studio 2010. I figured there is no point starting a project on old technology so I went for the latest and greatest technology with MVC 2 and the .NET Framework 4.
Initial Feature List
Here are the list of features that I want to include in the first release. Once, I start gaining some momentum I will be looking for feedback from the user community.
- Multiple Data Provider Support - Data can be stored in XML or in SQL Server. The data layer will be extensible so people can write their own providers. By having XML as an option, hosting is cheaper because you will not need to pay for a database.
- Migration from BlogEngine.NET will be included in the first release. This is for selfish reasons :-)
- Theme support – The goal is to make theme development a relatively simple task so I can get people in the community to develop new ones.
- Full syndication support – RSS and Atom
- Social networking support. Will start with twitter first. If time permits I will work on a mechanism to find tweets related to a post and add them to the comments section (a.k.a. Tweetbacks).
- Anti-Spam features - Comments will use the ReCaptcha and Askimet to block spam comments. Comment moderation will be included.
- Gravatar support.
- Trackbacks and Pingbacks.
- Windows Live Writer Support – A must have, can't write posts without it!
Why Build Another Blogging Engine
First of all, there are a lot of different technologies and skills required to build a successful blog engine. Even if the project fails to gain popularity it will still be a good learning experience. The goal, is to build a new blogging platform that can be used as a showcase for modern .NET programming technologies.
Secondly, most of the developers that I admire have built or worked on a blog platform. The list includes Scott Hanselman (dasBlog) , Phil Haack (Subtext) and Rob Conery (see the video series on TekPub Build Your Own Blog—Rails ).
Thirdly, I really enjoy blogging. Its a way to give back to the community and share ideas and solutions with other developers. Unfortunately, It's not always easy to come up with ideas to write articles about. This project should provide me with plenty of content for the months (and possibly years) to come. As a side effect I will be building my very own blogging platform!