What is Disqus?

It’s a platform which lets you copy paste a javascript snippet into any webpage to add a comments section.

Some noteworthy features of Disqus:

  • If you have a Disqus account, you can comment on any website that uses Disqus.

  • Email notifications with the ability to reply to a comment directly from your email client.

  • Analytics and moderation tools.

  • Spam filters

  • User profiles and ability to follow users

  • Social network login

What are some of the problems with Disqus?

  • Privacy : Disqus makes 100 odd requests and sends tracking data to 20 odd domains according to this blog post.

  • Bloated : As a result of sending tracking data to their advertising partners, page requests that could be completed in 2 http request (one for loading the comment script and another request for retrieving all comments), require 100+ http requests and take between 2 and 10 seconds to load.

  • Ads : Disqus forces websites on the free plan to display ads, the “Mom makes $4000 working from home” variety…and six of those with pictures to accompany them. This was the case when I checked a few months ago, I’ve since blocked the domain, so if anything has changed let me know in the comments below.

  • Not open source : This might not be an issue for most people, put I prefer products with open source code bases.

Why are you building a Disqus alternative?

  • The current state of adding hosted comments is either to use ad supported Disqus or an open source self hosted option which doesn’t work as well as Disqus for the core use case of comments and requires a separate login for each site. I think there’s a happy middleground for a SaaS without ads/tracking scripts, an open source code base and having a Disqus like single login for all sites using it.

  • I used to receive comments on my blog posts when I had Disqus enabled, so I need a commenting engine for my blog which does not have the above mentioned issues.

  • Since there seems to be a lot of demand for a true Disqus alternative, based on the posts in forums and social media, I think a small portion of those users will be ready to pay for a SaaS.

  • Even if I don’t manage to turn it into a SaaS, the learning aspect of building out a commenting platform is exciting.

The user experience

Here’s the flow that I plan to implement:

  1. User signs up for an account.

  2. Adds a domain and verifies ownership by adding a TXT record in their DNS settings.

  3. Adds a javascript snippet to website to enable the comments section.

  4. Pays $xx/month to subscribe to a plan.

Pricing

  1. $20/month/domain upto 100,000 page views

  2. $300/month/domain upto 1,000,000 page views + priority support

  3. Custom pricing for websites with higher requirements

(Technical) questions/challenges

  1. I recently built a site with a comments section (a blogging platform for developers) and realized that representing the hierarchical nature of comments, traversing the comments tree and querying whether a user voted on a comment can be extremely expensive in terms of the number of database hits. I came across a neat django package django-mptt to represent the hierarchical relationship of comments using a Modified Preorder Traversal Tree. Long story short, most queries can be performed with 2 database queries to gather all the information required to display the comments section.

  2. Loading comments from a third party domain (cross origin) introduces certain challenges. The ways to retrieve data from a domain other than the website itself are :

    Disqus uses sandboxed iframes to display the comments section. This is an area I am still looking into and I am still exploring both the options along with the security implications of choosing one over the other. If you have any thoughts on this topic, let me know either via email or twitter.

  3. Free plan : this is something that I just can’t decide. I am considering providing a heavily limited free plan for websites with low traffic (less than 10,000 page views a month). To clarify, by heavily limited, I mean the number of websites on the free plan will be restricted, but the feature set will not be restricted.

  4. Spam : For the initial version, the only anti-spam measure will be restricting the number of comments per account in a given timeframe. Eg- 10 comments per hour.

Misc

  • Comments will be written in markdown.

  • No social login options will be available.

Since I already built a comments section with voting in my previous project, the main challenge is going to be to figure out how to securely make cross origin requests and take measures to prevent the host website from having access to the cookies.

I don’t have an email list, but if you want to keep up with the developments regarding this project, you can follow me on twitter. I would love to hear your thoughts on this project either from a technical perspective or as a potential customer.