Disqus vs Drupal Comments

Posted on 12/03/2016

TL;DR: use Disqus for simple comments without sensitive information. Drupal comments for everything else.

Comments are something we expect on any website that publishes articles or blog posts. Because of increasing number of sites we visit every day, certain projects are trying to change the way discussions are lead on the Internet. Disqus is one of the biggest attempts to consolidate and standardize communication on websites.

I will explain the full differences between Disqus and Comment module shipped with Drupal core. However, most of the points will be applicable for WordPress, other CMSs and even custom solutions.

This article will provide you with enough information so you can understand which option is the best for you. The points will be structured in the main categories you need to consider.

General information

You first need to know that Disqus comments are meant for open discussions. They aim at allowing the users to comment seamlessly, without logging in or leaving contact separately on each website. This way, Disqus provides unified comment workflows and becomes a central hub from where you can follow up on what others replied to you.

That said, Drupal comments (or whichever else you use), can be whatever you want to make from them. You can add fields, change the layout, add custom workflows, approval rules, integrate them with other services, and so on. You almost have no limitations in this respect, but this implies several things I will mention below.

Storage

The obvious difference between Disqus and Drupal comment system is the place where the actual comments are stored.

Disqus is a hosted solution. This means that the comments are stored on Disqus' servers, and not in your database. That's all. You can run Disqus powered comments even on a static HTML website. It works with any server-side technology and any server stack.

Because Disqus stores comments on their servers, any information you would consider sensitive is not suitable for Disqus. Not only you will not have the data on your server, but it will also be available to other people.

Drupal will store the comments in your database, which will take some space on your server. For most sites, this is not a concern; however, high traffic news websites, such as CNBC, will use Disqus because they will not have to worry about storing and managing hundreds of thousands of comments on their end. Storing them somewhere else reduces the stress on their own servers and leaves their developers working on other parts of the infrastructure.

Setting up and flexibility

Setting up Disqus comments is very straighforward. There are two ways you can do this: using the Disqus contributed module for Drupal, or simply by adding the universal code wherever you want comments to appear.

The downside is that Disqus comments offer very little flexibility. In Drupal 8 version of the contrib module, Disqus comments are provided as a field, meaning that you can attach them to any entity in your website. This gives you some additional options, such as comments for user profiles, but you still cannot change the structure or template of each comment.

On the other hand, Drupal comments provide ultimate flexibility, but will usually require more setup. You will need to style the comments for mobile devices and desktops, configure administrative workflows, set permissions for visitors and editors, deal with spam and so on.

If you need anything other than plain comments for blog posts, this flexibility will likely be the deciding factor.

Integration with third party services

Disqus allows users to login using their Disqus, Facebook, Twitter or Google account. On top of that, if you are logged in to Disqus, you will immediately be ready to post on any Disqus-enabled website.
For posters, this also means that they won't leave their email address on your website or go through a registration process.

With Drupal, you have to either allow anonymous users to enter their personal information and then comment, or force them to register. You can also let visitors login with third-party accounts (e.g. Facebook or Twitter login), but they will not be automatically logged in upon visiting your site, and their email address will still be shared with your site.

Security

Generally speaking, you will not have many worries related to Drupal security. This is of course true if you follow the best practices, update the sites regularly and know what are you doing. When it comes to comments, the only thing you will probably want to do is to fight spam. This usually means installing and configuring Captcha or Mollom, followed by something like Spamicide.

If you are building a custom application, you will have to be cautious with user input, add form validation, email notifications, and so on. If you are using a framework (most likely you will), this functionality will be available to you in some form, but it will still require written code.

With Disqus, you don't have to deal with any of these things at all. However, it's worth mentioning that with Disqus, you are injecting third party JS on every single page where you want the comments to show. While I would consider Disqus relatively safe, there have been certain issues with their security a couple of years back. You can read more about the breach here and some additional thoughts here. If Disqus' servers do get compromised, your sites and visitors are likely to be affected as well.

Additional considerations

  • Familiarity with the interface - this depends on your target audience. Significant number of websites that write about technology use Disqus. This is an advantage because users will be already familiar with how the commenting works, and most likely they will already be logged in.

  • Mobile optimization - Disqus comments will automatically be optimized for mobile devices, while with Drupal comments you will need those styles in the theme. If you are using a contrib or commercial theme, this will most likely be already provided, but in custom themes it will be an additional task.

  • Privacy - Disqus will link user comments with their profile, where you can see previous comments of that user. This probably enhances the communication, but at the same time might be too revealing for some.

  • Voting - Disqus allows users to cast votes on comments, and then reorder comments based on the feedback from other visitors.

  • Styling - you can't adjust Disqus comments and make them look similar to the rest of your site. As simple as that.

  • Workflows - Disqus provides you with basic workflows, but again, you cannot extend or adjust them. With Drupal you can have different workflows for different roles, email notifications for multiple users, as well as integration with more complex approval workflows (e.g. redirection, custom messages, etc.).

Recap

Hopefully after reading this, you will have a pretty good idea on which comment system will work the best for you, and pros/cons of each one of them.

Simple rule of thumb is to use Disqus for plain, public comments and Drupal for everything else.