Discourse (software)
Discourse is an open source Internet forum and mailing list management software application founded in 2013 by Jeff Atwood, Robin Ward, and Sam Saffron. Discourse received funding from First Round Capital and Greylock Partners. The application is written with Ember.js and Ruby on Rails. PostgreSQL serves as its back-end database management system.
From a usability perspective, Discourse breaks with existing forum software by including features recently popularized by large social networks, such as infinite scrolling, live updates, expanding links, and drag and drop attachments. However, the stated goals of the project are social rather than technical, to improve online discussion quality through improved forum software.
The source code is distributed under the GNU General Public License version2. Therefore Discourse can be self-hosted by anyone. Alternatively, hosting service can be bought from the company of the founders. As of July 2020, more than 1,500 businesses or instances have chosen this option. On May 2017, co-founder Jeff Atwood said in an interview that the company is generating approximately 120,000 dollars per month at that time. With the money the company pays salary for its full-time employees who maintain the software and develop new features which benefits those who are self-hosting the open source software, too. This is an example of an open source software business model where a company sells professional services to willing customers.
Server requirements
The officially-provided, x86_64 Linux, Docker images are the only supported method for installing Discourse in production. Discourse uses a custom "launcher" script to configure the containers, and also provide an included "docker_manager" plugin for the forum itself to allow administrators to perform updates and backups from the graphical interface.The Docker-based distribution includes the web server, database system, cache, and background processing services. The launcher script defaults to running them all on the same server, but supports running them separately. The Discourse developers do not support using Discourse with any builds of these services other than their own, but they do support using a separate web server or load balancer to run Discourse side-by-side with another website on the same domain.
Discourse requires an outgoing MTA, and does not provide one itself. Discourse recommends buying access to an outgoing MTA from reputable commercial provider, to ensure that transactional mail arrives in a forum user's inbox.
Discourse also supports, but does not require, the ability to receive email. Discourse provides an optional Docker image for an incoming-only MTA, and supports receiving email via POP3 or IMAP.
Features
Discourse is natively designed for high resolution touch devices with a built-in mobile layout and has a wide range of features available for both hosted and self-hosted sites.Users receive immediate notifications when another member replies to them directly, quotes them, mentions their name, sends a private message, or links to their post. New posts and topics appear automatically on screen in real time.
Creating or replying to a topic is done via an overlay editor which allows for uninterrupted reading, even if the user navigates to a different topic. Discourse auto-saves draft replies and topics to the server in the background to prevent the loss of a work in progress.
Topics can be pinned to the top of all topic lists, or to a single category, with a brief summary of the content. A topic can also be transformed into a banner to have it appear on top of the site. These banners can be styled to fit with the wider site aesthetic. Users can independently choose to dismiss the banner. Administrators can also add a permanent site-wide notification panel for urgent situations.
Images can be uploaded, drag and dropped, or pasted. Large images are automatically thumbnailed and lightboxed. Enabled via a site setting, any remotely hotlinked images can be downloaded to preserve the topic.
Discourse supports OpenGraph and oEmbed. URLs from external websites which support this technology will automatically expand to provide a summary of the URL.
Long topics can be condensed with the "Summarize" button, so that users can view the most interesting and popular posts in the discussion.
Discourse also empowers communities to crowdsource moderation through a flagging system which automatically hides inappropriate posts until they can be reviewed by a staff member.
Discourse narrative bot
Discobot is a customizable bot whose purpose is to teach new users, interactively, to use many of the platform's features like bookmarking a topic, oneboxing links, add emoji, name mentions, very simple formatting, adding a picture to a reply, flagging posts and how to use the search function.Tags
Discourse provides tagging functionality. When users create topics they can optionally attach tags. Users can tag topics with one or more tags, auto watch tags as desired, list all tags and filter topics by tag. Site administrators can decide whether or not to allow users to create new tags, who can create new tags, which tags can be used in a category and also create groups tag.Groups
Groups perform several functions in the software aside from simply grouping users together for manual inspection. The "primary group" of a user can be visually advertised on every post they make through CSS styling rules, and groups are the only mechanism to set posting or viewing permissions on categories.When Discourse is installed it creates "automatic" groups, made up of administrators, moderators, staff, and various trust levels for users.
Custom groups can be made private or public, and can allow for users to add themselves or send the group owner a request to be added. Users can be also added to a group when first registering, via email domain matches or a crafted invitation link.
As a concrete example, a forum for a popular online game could create a group for employees of the company that make the game, and use the "primary group" functionality to style their posts so the users are recognized as officials. The EVE Online forums use this prominently.