There should be two main extensions here, possibly creating two gems, they may even be two repos. One for blogs and one for project sites. The blog extension would have everything you need to blog, out of the box: Tags, Clouds, News, etc. The project extension would have things like identity, github, issue tracker, etc.