HOME

TheInfoList



OR:

Discourse is a
free and open-source Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source ...
Internet forum An Internet forum, or message board, is an online discussion site where people can hold conversations in the form of posted messages. They differ from chat rooms in that messages are often longer than one line of text, and are at least tempora ...
software. Features include support for
categorization Categorization is the ability and activity of recognizing shared features or similarities between the elements of the experience of the world (such as objects, events, or ideas), organizing and classifying experience by associating them to a ...
and tagging of discussions, configurable
access control In the fields of physical security and information security, access control (AC) is the selective restriction of access to a place or other resource, while access management describes the process. The act of ''accessing'' may mean consuming ...
, live updates, expanding link previews, infinite scrolling, and real-time notifications. It allows for a high level of customizability via its plugin architecture and its theming system. It was released on August 26, 2014, by its founders,
Jeff Atwood Jeff Atwood (1970) is an American software developer, author, blogger, and entrepreneur. He co-founded the computer programming question-and-answer website Stack Overflow and co-founded Stack Exchange, which extends Stack Overflow's question ...
, Robin Ward and Sam Saffron. The client side application is written in
EmberJS Ember.js is an open-source JavaScript web framework that utilizes a component-service pattern. It allows developers to create scalable single-page web applications by incorporating common idioms, best practices, and patterns from other single-p ...
. The server side is written in
Ruby on Rails Ruby on Rails (simplified as Rails) is a server-side web application framework written in Ruby under the MIT License. Rails is a model–view–controller (MVC) framework, providing default structures for a database, a web service, and web ...
and backed by a Postgres database and Redis cache. The
source code In computing, source code, or simply code, is any collection of code, with or without comment (computer programming), comments, written using a human-readable programming language, usually as plain text. The source code of a Computer program, p ...
is distributed under the GNU General Public License version 2. Since its release, Discourse has been undergoing active development with over 40,000 commits as of March 2022.


Features


Categorization

Similar discussions can be organized under categories. Admins can create categories, add category descriptions and logos, and control access to topics in the category. Discourse provides granular control over reading and writing permissions. Discourse also supports sub-categorization or nested categories. Subcategories are categories in themselves so they can be controlled in the same manner as parent categories. The only difference is the parent-child relationship.


Tagging

Tags are a lightweight alternative to categories, but they can also be used in conjunction. Unlike the heavy walls of categories, tags are nimble, flexible and lightweight.


Topics

Conversations in Discourse are organized into topics. Users are able to create new topics or reply to existing ones. Categories and tags can be assigned to topics which makes them follow the security rules for those if applicable. A topic consists of the initial post as well as any subsequent replies to it. Replies in Discourse follow a flat chronological order as opposed to being threaded. The Discourse core developers believe that threading replies is detrimental to the health of the overall discussion. Users can interact with each post independently. They can take actions such as reply, like, bookmark, quote or flag for moderation.


Trust Levels

According to the developers, "The user trust system is a fundamental cornerstone of Discourse". The trust level is a built-in feature that helps guide the progress of new members while they learn about the community. Newly registered users are sandboxed so they cannot accidentally hurt themselves or others while they learn about the community. As they become more experienced, by participating in the community, they are granted more rights and access to more features. There are five different trust levels in Discourse; the new user trust level, the basic trust level, the member trust level, the regular trust level, and the leader trust level.


Discourse Narrative Bot

Discobot is a customizable bot whose purpose is onboarding new users, interactively, to use many of the platform's features like bookmarking a topic, oneboxing links (embedded previews), adding emojis, using mentions, basic formatting, uploading images to a reply, flagging posts and using the search function.


Personal Messages

In addition to public and private topics, users on Discourse have the ability to send personal messages to other members in the community. Users receive notifications for personal messages and can add or remove members to a message at any time. Each user has a personal inbox that contains all of their sent and received messages.


Groups

Admins can create and add members to groups in Discourse. Groups can be used to manage access to certain categories, group mentions as well as group messages. When Discourse is installed, it creates automatic groups for administrators, moderators, staff, and the various trust levels. Custom groups can set to either public or private, Users can add themselves to a group or request to be added by the group owners. Users can also be automatically added to a group during signup based on their email address.


Editor

Discourse features a rich-text editor, referred to as the composer. It supports plain-text,
markdown Markdown is a lightweight markup language for creating formatted text using a plain-text editor. John Gruber and Aaron Swartz created Markdown in 2004 as a markup language that is appealing to human readers in its source code form. Markdown i ...
, and
HTML The HyperText Markup Language or HTML is the standard markup language for documents designed to be displayed in a web browser. It can be assisted by technologies such as Cascading Style Sheets (CSS) and scripting languages such as JavaScri ...
. The composer features a toolbar which includes formatting, quoting and upload buttons. The preview panel in the composer allows users to see a live preview of the post. It supports drag and drop image and file uploads. The composer supports OpenGraph and
oEmbed oEmbed is an open format designed to allow embedding content from a website into another page. The specification was created by Cal Henderson, Leah Culver, Mike Malone, and Richard Crowley in 2008. It is used by companies like Twitter to make ...
. URLs from external websites that support those standards will automatically expand to provide a summary of the URL. One of the key features of the composer is its ability to save drafts prior to publishing them. Certain actions in the composer are triggered based on user input. The "@" character creates a panel for mentioning other users. The "#" character creates a similar panel for categories and tags. The composer also features configurable and dismiss-able JIT educational panels with the goal of promoting civilized discussion.


Admin Interface

Discourse includes a feature-rich administration dashboard. It has various sections that allow admins to tweak many features in the software. The settings section includes a wide variety of controls which can be used to modify the display options and behavior of the software. It also includes easy-to-configure fields for meta information about the community. The admin dashboard provides an overview of the health of the community. It displays charts that indicate trends in the number of signups alongside other community health metrics. Theres is also a dedicated section where admins can examine certain metrics over a specific period of time. The localization section allows admins to change any text used in the interface to their liking.


User Directory

The "Users" page in Discourse serves as a leader-board with search functionality where a quick overview of members' activity is displayed. It includes statistics such as posts created, posts read, likes received and days visited for a given time frame. Users can be sorted according to any of those metrics. Admins can optionally add more metrics.  


Plugins

Discourse is extendable via plugins. Plugins create the ability to modify both the server and client sides of the application. Some examples of plugins include * Discourse Math which adds support for math rendering. * Chat integrations, which integrates Discourse with popular chat platforms. * BBCode which adds support for BBtags. The discourse team maintains a list of both official and community contributed plugins on the official support forum.


Themes

The Discourse theme system allows admins to fully customize the client side application. Themes can modify the layout of pages, add new functionality and add additional styles to any element in the interface.


API

Discourse is backed by a full REST API. The developers maintain a starting guide on the support forum as well as documentation for the API endpoints.


Security

The developers welcome peer audits of the
open source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
code and encourage reporting security issues. They maintain a vulnerability disclosure program at Hacker One.


DiscourseHub

DiscourseHub is the official,
open source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
Discourse application for
Android Android may refer to: Science and technology * Android (robot), a humanoid robot or synthetic organism designed to imitate a human * Android (operating system), Google's mobile operating system ** Bugdroid, a Google mascot sometimes referred to ...
and iOS devices. It allows users to keep track of new and unread posts and notifications across multiple Discourse sites. Real-time push notifications are native for officially hosted Discourse forums.


Server Requirements

The officially-provided, x86 64
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which i ...
, Docker images are the supported method for installing Discourse. Discourse uses a custom "launcher" script to configure the containers. The Docker-based distribution includes the web server (which is based on
nginx Nginx (pronounced "engine x" ) is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache. The software was created by Igor Sysoev and publicly released in 2004. Nginx is free and open-source software ...
and
Unicorn The unicorn is a legendary creature that has been described since Classical antiquity, antiquity as a beast with a single large, pointed, spiraling horn (anatomy), horn projecting from its forehead. In European literature and art, the unicor ...
), database system (
PostgreSQL PostgreSQL (, ), also known as Postgres, is a free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance. It was originally named POSTGRES, referring to its origins as a successor to the In ...
), cache ( Redis), and background processing services ( Sidekiq). Discourse requires an outgoing MTA and does not provide one itself. 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 In computing, the Post Office Protocol (POP) is an application-layer Internet standard protocol used by e-mail clients to retrieve e-mail from a mail server. POP version 3 (POP3) is the version in common use, and along with IMAP the most comm ...
or
IMAP In computing, the Internet Message Access Protocol (IMAP) is an Internet standard protocol used by email clients to retrieve email messages from a mail server over a TCP/IP connection. IMAP is defined by . IMAP was designed with the goal of pe ...
.


History

Co-founder Jeff Atwood announced in 2013 that Civilized Discourse Construction Kit, Inc. had obtained initial venture capital funding from
First Round First or 1st is the ordinal form of the number one (#1). First or 1st may also refer to: * World record, specifically the first instance of a particular achievement Arts and media Music * 1$T, American rapper, singer-songwriter, DJ, and rec ...
,
Greylock Greylock may refer to: *Gray Lock or Greylock, a Western Abenaki Missisquoi chief *Greylock Capital Management, an asset management firm *Greylock Partners, a venture capital firm *Camp Greylock, a summer camp in Becket, Massachusetts *Mount Greylo ...
, and
SV Angel Ronald Crawford Conway (born March 9, 1951) is an American venture capitalist and philanthropist. He has been described as one of Silicon Valley's "super angels". Early career Conway graduated from San Jose State University with a bachelor's de ...
In May 2017, he said in an interview that the company was generating approximately $120,000 per month. With the money, the company pays salaries for its full-time employees who maintain the software and develop new features. This is an example of an open source software business model where a company sells professional services to willing customers. As of March 2022, the developers shared that more than 3000 businesses or instances have chosen the official Discourse hosting which CDCK provides as
Software as a service Software as a service (SaaS ) is a software licensing and delivery model in which software is licensed on a subscription basis and is centrally hosted. SaaS is also known as "on-demand software" and Web-based/Web-hosted software. SaaS is co ...
. In August 2021, Civilized Discourse Construction Kit announced it had secured US$20 million in
Series A A series A round (also known as series A financing or series A investment) is the name typically given to a company's first significant round of venture capital financing. The name refers to the class of preferred stock sold to investors in exchan ...
Investment by Pace Capital and First Round Capital.


Development and Support

The Discourse project is developed and maintained by the developers at Civilized Discourse Construction Kit, Inc. (CDCK).


See also

* Comparison of Internet forum software * List of blog comment hosting services * List of mailing list software


References


External links

*
Official API documentation

Official discussion forum
* {{github, discourse/discourse, Discourse Internet forum software Free Internet forum software Free software programmed in Ruby Free mailing list software Mailing list software for Linux