Earlier this week I announced that I was going to start working on cwBlog, my attempt at creating a full-featured blogging application. Reactions to this announcement were divided, but that was to be expected. Although some comments were supportive, others questionned the fact that I was planning on starting from scratch, rather than helping out on existing applications. You see, the reason why I decided to start this project is to see what I can do with what I currently know. See it as an exploration, of sorts. At this point, I don't even know whether I'll be able to finish the project... However, what I do know is that I'm planning on learning every step of the way!

The main aspect of the experience is creating an application that is as Object-Oriented as possible. You can say that I've been inspired by Ben's series on OOPhoto (first post). I've been trying to apply some of these concepts within some of my projects at work, but without a blank slate it gets... difficult. With cwBlog, however, I can finally start from scratch. Some great suggestions I've had on my previous post recommended I rely on a plug-in system for some of the core functionality. This would allow end-users and developers to modify some aspects of the application without affecting other features.

Taking this idea even further, I was thinking that the best solution would be to start out with a basic skeleton, with reserved holders for basic functionality: login, posting, administration, etc. This way, everything (except the skeleton) would be a plug-in, making the application fully customizable. A developper could decide that the included posting plug-in doesn't meet his requirements, and create a different version. He could then make it available online for other users to download and plug into their local version of cwBlog. Ideally, the actual wiring of plug-ins would be made through the admin menu, but whether or not I'll be able to do that remains to be seen...