Public blog on SharePoint
October 24, 2012
For nearly 5 years now, I've been struggling with different blog engines
(something always is not quite right, you know), and I always catch myself on
thought: omg, this would be so easy to fix if it was SharePoint...
That is not a surprise, you see, I'm neither Blogspot MVP nor WordPress MVP,
I'm SharePoint MVP after all :)
But have you seen blogs running on SharePoint? To be honest, this "cool"
OOTB blog site template of theirs is nothing close to what you need for a
public blog. And also, it's just ugly, if you will.
And if you glance over SharePoint top blogs, it seems almost noone chooses
SharePoint as the engine. For example, list of my favorite SharePoint
people:
... etc. (sorry if somebody is missing, actually I read you all guys :))
Probably it's ok, you know, you pick the right tool for a particular
action. But...
But last weekend, lazily digging Office365 and at the same time thinking
about where to put my English blog at last, almost unconsciously I started
to shape SharePoint into a blog. Without any blog site template.
By the way, are you aware of what you're looking at right now? :) You're
looking at an aspx page which resides in SharePoint library. And if you
glance to the right, under the "Blog archive" title, there is a
DataFormWebPart with grouping... Based on
idea by Christian Stahl.
Only ONE day with SPD, and one more day for moving the old content from
WordPress. Can you believe this? ONE day for creating a "blog engine" on
SharePoint. Purely no-code solution. Works in Office365.
And the most important part, this blog satisfies me all over.
I'm just like a happy puppy here, really :) Ok, not that much, yet anyway
smiling from ear to ear for two days already :)
It was really quite easy, once you know what you really want to get.
Two nested masterpages, one document library, one separate aspx page for
showing all the posts. Three DFWPs, built in 10 minutes each, mostly using
SPD design view. That's all guys!
This is the library:

I use Title, Preview and PublishDate fields when displaying the posts on
default.aspx using DataFormWebPart. DataFormWebPart was created in 10
minutes: it just shows a library contents, plus some basic styling.
Now about master pages...
One masterpage is primary and it is used for default.aspx page, and the
second is nested and is used for articles, basically it adds comment form and social
buttons below the article, and also displays the title. Yes, article title
is stored in Title property of the document, not in the document itself. No
data duplication!
Since I'm using only DataFormWebParts for displaying content from lists and
libraries on the public part of the site, actually I don't need most of
SharePoint features there. So I just removed them from masterpage :) (and probably I can
polish off even more things). As a result, I've got a responsive and flexible
cross-browser design, mobile-enabled. For example, this is how it shows on my Android
tablet:

The "backend" of the site still uses standard SharePoint masterpage, so no
problems there.
Comments are external, I use Disqus for
them. And I recommend to use Disqus even if you run your blog on WordPress,
Blogger or something else, because Disqus rocks and that is not an
understatement! It's really powerfull and handy - both for administrators
and users, for example it can pull twitter discussions related to your post
into the comment area, and so forth.
And yes, now I write posts in SharePoint Designer! :)

Actually this visual HTML editor is quite a good one. It won't yield any
needless extra
markup, it checks the spelling, and so on. SPD ribbon hosts a very relevant set of
actions for formatting:

All is here, this is exactly what you need to write a good blog post.
Btw, SharePoint Designer supports inserting images from clipboard (wow!).
The only thing missing here is obviously syntax highlighter for programming
languages, but this part is tricky everywhere, and nothing changes in SPD.
Summary
I've got a great experience, storm of emotions and a good blog. I wish you
the same! Don't hesitate to drop comments if you have any questions ;)