Disqus
is webwide discussion — Saturday, 13th December, 2008
Disqus is a free service powering conversations on thousands of websites and used by millions of people every month. This week I spoke to Danial Ha, one of the founders, about their project and why they chose to use Django.
Vital Stats
- Two months from starting to private beta, two more to public release
- 60,000+ publishers
- Over 90 million monthly page views to 20 million unique visitors
- Strong use of Django's caching and reverse-proxying mechanisms to manage loads
The Down-Low
Disqus, with the tagline webwide discussion, is a web service that provides, manages and enhances the comments on websites, including blogs, newspapers and other applications. It's built with both publishers and commenters in mind, and links comments on different websites together to try and help avoid the disjointed conversation that often occurs in blog comments.
Disqus was started by Daniel Ha and Jason Yan in mid 2007, with the aim to improve comments on websites everywhere. Using seed funding from Y Combinator, Daniel and Jason turned their idea into a reality.
Daniel says that publishers like the Disqus system as it creates visitor engagement and generates exposure to a larger audience, whilst commenters like the system because commenting is made easier and they gain control over the comments they leave.
Starting in June 2007, Daniel and Jason pulled the best pieces out of a number of their other projects to put together the comment-based service that we know today, with a private beta available in August. With Jason working on the back-end code and Daniel focusing on the user interface, it took the two of them just two months to reach private beta.
After a number of code iterations, the public launch occurred in October 2007 and today is being used by over 35,000 publishers to manage millions of comments by over half a million different people. The service allows a publisher to embed a snippet of Javascript on their webpage to get full commenting functionality, and a web-based forum is provided under a disqus.com subdomain. Full moderation and comment administration functionality is thrown in for free.
Disqus is powered by Django, and when asked why Daniel's response as built upon one sentence: "We wanted to work with Python.".
Rapid web development was the key factor in selecting a framework, even though the team hadn't quite fleshed out the functionality of Disqus at that time. They looked at Ruby on Rails, but knowing and loving Python caused them to look at the world of Python web frameworks. The first framework they tried out was Django, and it was everything they wanted in a single package from it's design and philosophy to it's presentation.
After a few sample applications were tried out, the decision was made to use Django.
Some of Django's core functionality turned out to be the most useful to Jason and Daniel, including the URL mapping, template system, caching framework and ORM. "There are lots of built-in shortcuts and utilities helping us along." says Daniel of this functionality.
Due to the modular design of Django, there weren't many roadblocks that were encountered. Jason's view on Django's shortcomings is simple: "It's easy to do things our own way when necessary."
The development of Disqus was done on a copy of the Django source code tree rather than restricting themselves to an older release. Whilst not yet using Django 1.0, the copy of Django that Disqus use contains a number of patches, many of which have since made it into the core Django distribution.
To ease deployment, the Django source code is stored inside the Disqus code repository so it's deployed alongside the application code. Other than Django, "tons" of open source code is being used to power the site including Linux, PostgreSQL, Apache, Memcached, nginx and many python libraries. Since launch some scaling technologies have been implemented to deal with the 3 million page views a day, including caching and an Nginx reverse-proxy to multiple web servers.
Jason and Daniel are currently in the process of moving Disqus to a multi-database configuration to increase the ability for the website to scale as growth continues. They're also expanding the team to improve their service.
Overall, Daniel described the development process with Django at it's core as "Rapid, rewarding, and very educational" - a great set of attributes for Django, known as the web framework for perfectionists with deadlines.
*A big thank-you to Daniel Ha from Disqus for spending time answering my questions for this weeks Django Site of the Week. You can visit the Disqus website at disqus.com
Thanks
Special thanks go to Daniel Ha for this interview.
Disqus can be visited at http://disqus.com/. It is also listed at DjangoSites.org.
Disqus Homepage
Thread Listing
Threaded Comments
Moderation
Posted by vernomcrp
3:20 p.m. on Tuesday, 23rd December, 2008
yr idea's cools! :)