I’ve been blogging since 2000. That’s a long time in internet years. I’ve blogged about college life on Livejournal, about Soccer Refereeing on Blogspot, and about personal and computer topics at my old Gaming Clan’s site, and most recently, here.
I’ve used Movable Type, WordPress, TypePad, Livejournal, and BlogEngine.NET. They have one thing in common: They all miss the target, accurately.
That’s not to say they’re bad, but none of them are great, either.
Or, as Winston Churchill might put it:
It has been said that WordPress is the worst form of blog engine except all the others that have been tried.
Cal Henderson (of Flickr fame) gave a keynote “Why I hate Django” at DjangoCon 2008, which is well worth a watch for many reasons. In one bit he asked how many of the audience were working on blogging engines. So many people put their hands up in fact that of those that didn’t he asked “Why aren’t you?”
Anecdote aside, I see so many questions and answers here that relate to building blogging engines I just have to ask, since I don’t get it: why are so many people writing what surely must’ve been written countless times already? If you are writing one such engine, why are you? Because I seriously don’t get it.
I’d thought about that for a long time too, but then I saw this answer:
Honestly? I think it’s probably some combination of the following
- It still hasn’t been perfected (and amazingly, it hasn’t)
He goes on to write:
I could never shake the nagging irritation I felt when I couldn’t get TypePad to do something I wanted, however trivial. Why, again, couldn’t I search my own freaking blog? To find an old entry, I had use either the next/previous links (lame), category links (assuming I’d bothered to categorize the entry I was looking for) or even worse, the proverbial “archive” links, organized descendingly as they are by date, hoping I might get lucky and choose the right month-year combo during which I’d happened to submit the entry in question. And why couldn’t I just create a new, non-blog-oriented page containing some other kind of managed content, like my reading list, or a collection of movie reviews? Sure, I could succumb to the rigid structure of the TypePad system and simply “tag” all movie reviews as “movie-review” and dump them into the blog alongside everything else — but why should I have to do that? I was an engineer, for God’s sake — I’d done this before. A blog was just CRUD — a web app in its simplest form. Why hadn’t anyone gotten one right, after nearly a decade of requirements gathering?
Screw it, I thought. I’m going to do this myself. Again.
Indeed, I feel the same way about BlogEngine.NET (that’s what powers this blog). In no particular order:
- Tattered Blog Layout (seriously, have you seen the front page of my blog?)
- Posting Code is a nightmare.
- WYSIWYG editor is so 2000 and late.
- I can’t publish entries ahead of time without mental and physical gymnastics
- No mechanism to delete drafts
- The user experience is annoying at best.
- Oh, and passwords? Stored in plaintext.
Experiencing Stack Overflow’s handling of posting content was my lightbulb moment. Until that point I never thought it could be better for us. It is:
It’s almost as if Stack Overflow was meant to be a blog:
Leave the blog part, and you have what I want out of my blog engine.
- Easy to post using Markdown
- Live Preview
- Posts and Comments should be able to be voted on
- No nesting of comments
- Clean, uncluttered UI
- Post Scheduling
- Open ID authentication
- Invisible Rate limits
- RESTful URLs
- Adding Non-Blog content as easy as adding Blog content
A Blog engine should make it easy to blog. It should be even easier than easy; it should be a joy to blog.
I asked Jeff Atwood in an email whether or not the Stack Overflow team was going to branch out their source code and take this type of project on (since many of the underpinnings are already there). He declined, so I’m going to do it.
Wish me luck.