Mike Owens


Renaissance Hacker Extraordinaire (look at the ego on this one)

Filespanker LLC

February 19

Outsourcing discussion

I’m working on a site that needs to have a discussion area on each page. The project isn’t about comments, so I don’t feel bad farming it out. Sorta how I don’t write log-analyzing code anymore.

Creating yet-another “comments” table would drive me crazy. Moderation. RSS. Nested sets. OpenID. All things I don’t want to have to deal with.

I think I saw Jef Poskanzer’s implementation first, a few years ago. Now there’s a half-dozen serious options.

All of these involve pasting a Javascript snippet into your page. When evaluated, it expands into a normal comment display list and a form. I don’t like the idea of the comments not being available to visitors without Javascript, but I’ll get to that in a minute.

After trying each and every one of these, here are my impressions:

Disqus

Pros

  • These guys seem the most open.
  • They have a REST API you can use to fetch all your comments.
  • On their developer boards, you’ll see a random guy saying “I need to do $this”, and a few hours later, a Disqus guy will pop up and say “I’ve added the $whatever configuration option, tell me if it works for you.”
  • All of the comments on your site are actually integrated into a proper forum. If you take the time to visit it, you’ll see a thread for each page which is disqus-enabled.
  • RSS support.

Cons

  • Actually submitting a comment in Safari 3 just spins forever.
  • No OpenID support. Not amazingly important yet, but it’d be nice.
  • The imported comment “weblet” is heavy. They even pull in Google Analytics. While developing my site, I have a fast page-refresh rate, and I got fed up watching the Analytics script spin around for 3 seconds in Firebug.
  • Speaking of Firebug, I was turned off by having to sift through all the random CSS and Javascript errors Disqus threw up to my console when included. I’m a developer, I need to use that space for my errors.
  • Email required for all posters. Not a deal-breaker, but I’d like to be able to turn it off.
  • On submit, it redirects back to your page with some variables filled in the query string. It looks weird having all that crap in one of My beautiful, REST-ish URLs. It also interfered with parameters my application was using. All the other services submit out-of-band, AJAX-style.

    I got around this by wrapping the form in an iframe. This opened another can of worms, which I spent 4 hours testing in every browser.

I think with the attitude they have, they’ll be successful. Disqus will probably be the best option after a few months of technical refinement.

Intense Debate

Pros

  • RSS
  • OpenID support (seems a bit beta)
  • Out-of-band AJAX-style submission
  • Smaller “weblet” footprint, loads pretty fast.
  • No errors cluttering up my Firebug console.
  • “Export Comments to XML”

Cons

  • “Export Comments to XML” is broken, returns empty document.
  • None of that cool auto-forum stuff, or even a plain HTML page I can point to that contain all the comments.
  • Occasionally just doesn’t work: undefined reference to showReply, etc. Fixed with a reload.

I also tried the JSKit comment widget. JSKit makes you confirm that you own a site by creating a file under the domain, or inserting a special tag in the source of the main page. My site is sitting on my local network, and not available to the internet at large yet, so that was a no-go.

Right now I’m developing with Intense Debate, on the assumption that they’ll improve in the next month or so. The Safari bug was a deal-breaker for Disqus, but if they were to start marking off the cons in my list above, it’d be a no-contest decision.