Discourse releases version 1.0
Since early 2013, the Discourse project has been developing a modern commenting-and-discussion system intended to be plugged in to a wide variety of web-based content-management systems (CMSes). Although the code has been available for outsiders to experiment with or even use on production sites for quite some time, the project only officially released version 1.0 on August 26.
The project's goals are to develop a free-software web-based discussion system that implements features expected by readers, but which were not available in the commenting systems of existing open-source CMSes. For example, Discourse supports "infinite scrolling," in which additional comments are loaded on the page as the user scrolls downward. There are also features to condense long discussion threads, to allow users to rate individual comments (with "likes"), methods to hide text in a comment (for protecting "spoilers"), to enable comment moderation, and to send users real-time notifications about replies.
A lot of attention has also been paid to the actual comment-editing process; the editor pops up as an overlay on top of the page, and it supports several text-markup languages (e.g., HTML, Markdown, BBCode). Drafts of users' comments are automatically saved as they edit, and there are handlers for image upload, emoji, and automatic URL embedding.
Discourse is also designed to integrate with popular outside services. Although it has a built-in login system, it also supports OAuth2 (which is used by Google) as well as logins through several prominent social-media services (e.g., Twitter and Facebook). Similarly, it supports both local user-account avatars and those from remote services. It can be hooked into various commercial content-delivery networks (CDNs) for increased access speed. In addition, Discourse can be deployed in a mailing-list emulation mode, in which all messages on a topic can be relayed to users via email, and email replies are also visible as posts.
By any account, that is a hefty set of features. Even looking only at the fundamentals, Discourse is an attempt to provide a single codebase that fills several distinctly different roles: a full-featured discussion forum (like one might see deployed with phpBB), a commenting system for use on blog posts or individual articles, and even a mailing list (and its accompanying web archive). "Do all the things and do them well," after all, is not the Unix philosophy—often with good reason.
Adoption and deployment
Nevertheless, thus far, Discourse appears to have amassed quite a sizable following. The project has made considerable headway in a relatively short time, in part by working with several high-traffic partner sites (such as Boing Boing and Ubuntu's discussion forum) that provided real-world testing as development continued. During that process, however, the main Discourse site actively warned users against installing Discourse, due to its pre-release nature. Those warnings have vanished with the arrival of the 1.0 release, of course.
But it is probably worth noting that the major "partner" sites that helped Discourse during its pre-release development phase seem to focus on the standalone web-forum deployment scenario. Similarly, the full-forum approach is used by Discourse's own discussion site, meta.discourse.org, and if the discussions on meta are any guide, it seems to be the preferred use case of most Discourse users.
The blog-commenting engine use case can most easily be explored via the official Discourse plugin for Wordpress. Interestingly enough, the WordPress plugin page points visitors to the site How-To Geek in order to see the plugin in action, although How-To Geek's site seems to run an essentially standalone web forum for its discussions. If there are any sites that have deployed Discourse in mailing-list mode, they are not easy to locate.
Hopefully this disparity will change, now that the 1.0 release is out the door and interested parties are being encouraged to take it for a spin. The only officially supported installation method is via a Docker container, although there are guides available for a number of other deployment scenarios. Alternatively, the Discourse project offers a hosting option, the revenue from which goes to support development.
Discourse is built with Ruby on Rails—which, according to the documentation, is the main justification for requiring Docker deployment: correctly configuring the necessary Rails stack otherwise is, evidently, difficult. It also uses PostgreSQL 9.1 (or later) and the Redis storage system. The hardware requirements include a dual-core CPU and 1GB of available RAM (though 2GB are recommended). The code itself is hosted at GitHub, and is released under GPLv2.
A nice touch for sites with existing communities is that Discourse includes several utilities for importing existing user and comment databases from several other forum packages (including vBulletin, phpBB, Drupal, and BBpress). Here again, though, the project's attention seems to be centered squarely on the discussion-forum use case; when a user asked recently about importing messages from Mailman, the answer was that it should not be attempted at all. There are also periodically questions about how to integrate Discourse with other web frameworks, such as those built with PHP; the current state of affairs seems to be that it is possible, but requires considerable work.
That is not to suggest that Discourse is falling short of its goals, of course. Rather, the salient point is that Discourse 1.0 can already deliver a demonstrably beautiful and feature-rich discussion site—but the broader goal of bringing the same level of features and aesthetics to other discussion systems is still an ongoing process. The Discourse interface is undeniably pretty to look at it, and it does an admirable job of presenting posts, activity statistics, and metadata in a clean and easy-to-find manner. But integration with other packages will be a trickier task—especially if Discourse wants to preserve its aesthetics and features when welded to other software.
But world domination is not necessary to declare Discourse a
success. There will always be users and sites who prefer other
frameworks for one reason or another. Infinite scrolling, for example,
can be an obstacle to in-page text searching, while others may simply
find Discourse's heavy reliance on JavaScript to be a negative. But, when viewed in
conjunction with other recent advances in free-software discussion
software—like Mailman's Hyperkitty interface, it is undeniable
that the free software community is pushing the bar forward when it
comes to conducting its conversations online.
