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.