Discourse (software)

Last updated
Discourse
Developer(s) Civilized Discourse Construction Kit, Inc.
Initial releaseAugust 26, 2014(9 years ago) (2014-08-26) [1]
Stable release
3.1.4 [2]   OOjs UI icon edit-ltr-progressive.svg / 8 January 2024
Repository
Written in Ruby, JavaScript
Operating system Linux
Available inAlbanian, Arabic, Bosnian, Chinese, Czech, Danish, Dutch, English, Estonian, Finnish, French, Galician, German, Greek, Hebrew, Indonesian, Italian, Japanese, Korean, Norwegian, Persian, Polish, Portuguese, Romanian, Russian, Slovak, Spanish, Swedish, Telugu, Turkish, Ukrainian, Urdu, Vietnamese
Type
License GNU GPL version 2 (or later)
Website www.discourse.org OOjs UI icon edit-ltr-progressive.svg

Discourse is an open source Internet forum system. Features include threading, categorization and tagging of discussions, configurable access control, live updates, expanding link previews, infinite scrolling, and real-time notifications. It is customizable via its plugin architecture and its theming system.

Contents

Discourse was released on August 26, 2014, by its founders Jeff Atwood, Robin Ward, and Sam Saffron.

The client side application is written in EmberJS. The server side is written in Ruby on Rails and backed by a Postgres database and Redis cache. The source code is distributed under the GNU General Public License version 2.

The default homepage in Discourse Discourse-homepage.png
The default homepage in Discourse

As of June 2023, Discourse had 49,000 commits.[ citation needed ]

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 read/write 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.

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.[ citation needed ] Users can interact with each post independently. They can take actions such as reply, like, bookmark, quote or flag for moderation.

Trust levels

The user trust system is a "fundamental cornerstone of Discourse". [3] Discourse's trust levels sandbox new users so that they cannot accidentally hurt themselves or other users, while granting experienced users more rights over time so that they can help maintain and moderate the community.

The five trust levels are New, Basic, Member, Regular, and Leader.

As users become more experienced, their trust level is raised, granting more rights and access to more features.

Discourse narrative bot

Discobot is a customizable bot that introduces new users to many of the platform's features like bookmarking a topic, embedded link previews ("oneboxing"), emojis, mentions, basic formatting, uploading images, flagging posts, and searching.

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 groups and add members to them. Groups can be used to manage access to certain categories, and for group mentions and group messages.

When Discourse is installed, it creates automatic groups for administrators, moderators, staff, and the five 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 Editor (Composer) Discourse Editor (Composer).png
Discourse Editor (Composer)

Discourse features a rich-text editor (the "composer"). It supports plain text, markdown, and HTML. 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. 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 brings up a panel for mentioning other users. The "#" character brings up a similar panel for categories and tags. The composer also features configurable JIT educational panels with the goal of promoting civilized discussion.

Admin interface

The administration dashboard's settings section allows control of appearance and behavior of the software, including fields for information about the community.

The dashboard also provides an overview of the health of the community, via charts showing signup numbers and other health metrics.

The localization section allows admins to change any text used in the interface.

User directory

The "Users" page in Discourse serves as a leader-board with search functionality. 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

The Discourse team maintains a list of both official and community contributed plugins on the official support forum.

Discourse Air Theme Discourse Air Theme.png
Discourse Air Theme

Themes

The Discourse theme system allows admins to 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 has a REST API. The developers maintain a getting-started guide on the support forum as well as documentation for the API endpoints.

Security

The developers welcome peer audits of the open source code and encourage reporting security issues. They maintain a vulnerability disclosure program at Hacker One.

DiscourseHub

DiscourseHub is the official, open source Discourse application for Android 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, 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 and Unicorn), database system (PostgreSQL), cache (Redis), and background processing services (Sidekiq).

Discourse requires an outgoing MTA.

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.

History

Co-founder Jeff Atwood announced in 2013 that Civilized Discourse Construction Kit, Inc. had obtained initial venture capital funding from First Round, Greylock, and SV Angel [4]

In May 2017, he said in an interview that the company was generating approximately $120,000 per month. [5] 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.

In August 2021, Civilized Discourse Construction Kit announced it had secured US$20 million in Series A Investment by Pace Capital and First Round Capital.

On February 1, 2023, Jeff Atwood stepped down as CEO and assumed the role of Executive Chairman. He was succeeded by Sam Saffron and Sarah Hawk. [6]

Development and support

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

See also

Related Research Articles

PHP-Nuke is a web-based automated news publishing and content management system based on PHP and MySQL originally written by Francisco Burzi. The system is controlled using a web-based user interface. PHP-Nuke was originally a fork of the Thatware news portal system by David Norman.

<span class="mw-page-title-main">Pidgin (software)</span> Open-source multi-platform instant messaging client

Pidgin is a free and open-source multi-platform instant messaging client, based on a library named libpurple that has support for many instant messaging protocols, allowing the user to simultaneously log in to various services from a single application, with a single interface for both popular and obsolete protocols, thus avoiding the hassle of having to deal with new software for each device and protocol.

phpBB Free and open-source Internet forum package written in PHP

phpBB is an Internet forum package written in the PHP scripting language. The name "phpBB" is an abbreviation of PHP Bulletin Board. Available under the GNU General Public License, phpBB is free and open-source.

<span class="mw-page-title-main">Internet forum</span> Online discussion site

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 temporarily archived. Also, depending on the access level of a user or the forum set-up, a posted message might need to be approved by a moderator before it becomes publicly visible.

A discussion group is a group of individuals, typically who share a similar interest, who gather either formally or informally to discuss ideas, solve problems, or make comments. Common methods of conversing including meeting in person, conducting conference calls, using text messaging, or using a website such as an Internet forum. People respond, add comments, and make posts on such forums, as well as on established mailing lists, in news groups, or in IRC channels. Other group members could choose to respond by posting text or image.

<span class="mw-page-title-main">Psi (instant messaging client)</span> Instant messaging client

Psi is a free instant messaging client for the XMPP protocol which uses the Qt toolkit. It runs on Linux, Windows, macOS and OS/2.

This article outlines the general features commonly found in various Internet forum software packages. It highlights major features that the manager of a forum might want and should expect to be commonly available in different forum software. These comparisons do not include remotely hosted services which use their own proprietary software, rather than offering a package for download which webmasters can host by themselves.

The following tables compare general and technical information for many wiki software packages.

<span class="mw-page-title-main">Mantis Bug Tracker</span> Bug tracking system

Mantis Bug Tracker is a free and open source, web-based bug tracking system. The most common use of MantisBT is to track software defects. However, MantisBT is often configured by users to serve as a more generic issue tracking system and project management tool.

<span class="mw-page-title-main">Markdown</span> Plain text markup language

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 intended to be easy to read in its source code form. Markdown is widely used for blogging and instant messaging, and also used elsewhere in online forums, collaborative software, documentation pages, and readme files.

NoScript is a free and open-source extension for Firefox- and Chromium-based web browsers, written and maintained by Giorgio Maone, a software developer and member of the Mozilla Security Group.

<span class="mw-page-title-main">HackThisSite</span> Organization

HackThisSite.org, commonly referred to as HTS, is an online hacking and security website founded by Jeremy Hammond. The site is maintained by members of the community after he left the organization. It aims to provide users with a way to learn and practice basic and advanced "hacking" skills through a series of challenges in a safe and legal environment. The organization has a user base of over a million, though the number of active members is believed to be much lower. The most users online at the same time was 19,950 on February 5, 2018 at 2:46 a.m.CT.

<span class="mw-page-title-main">Conversation threading</span> Grouping of related messages in digital communications

Conversation threading is a feature used by many email clients, bulletin boards, newsgroups, and Internet forums in which the software aids the user by visually grouping messages with their replies. These groups are called a conversation, topic thread, or simply a thread. A discussion forum, e-mail client or news client is said to have a "conversation view", "threaded topics" or a "threaded mode" if messages can be grouped in this manner. An email thread is also sometimes called an email chain.

<span class="mw-page-title-main">Openfire</span>

Openfire is an instant messaging (IM) and groupchat server for the Extensible Messaging and Presence Protocol (XMPP). It is written in Java and licensed under the Apache License 2.0.

<span class="mw-page-title-main">Buzztrax</span>

Buzztrax is a free software project designed to create a clone of the Buzz music composer. Its functionality is to preserve the playability of the compositions made with Buzz. Songs are made by adding virtual sound generators and effects, connecting them, recording short musical phrases and arranging them in the sequencer. For distribution, songs can be exported to common audio formats such as OGG, MP3, WAV and many others.

<span class="mw-page-title-main">JDownloader</span> Computer software

JDownloader is a download manager, written in Java, which allows automatic download of groups of files from one-click hosting sites. JDownloader supports the use of premium accounts. Some parts of the code are open-source. In December 2009 the program's website was in the top 1000 visited websites of Spain. German online magazine Chip.de designated it "newcomer of the year" in 2009, after it ranked among the top 50 most downloaded applications, with over half a million downloads in a year.

<span class="mw-page-title-main">FUDforum</span> Free Internet forum software

FUDforum is a free and open-source Internet forum software, originally produced by Advanced Internet Designs Inc., that is now maintained by the user community. The name "FUDforum" is an abbreviation of Fast Uncompromising Discussion forum. It is comparable to other forum software. FUDforum is customizable and has a large feature set relative to other forum packages.

<span class="mw-page-title-main">Jeff Atwood</span> American software developer and entrepreneur (born 1970)

Jeff Atwood 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-and-answer model to subjects other than programming. He is the owner and writer of the computer programming blog Coding Horror, focused on programming and human factors.

<span class="mw-page-title-main">Vanilla Forums</span>

Vanilla is a Canadian software company founded in 2009 in Montreal, Quebec, Canada. It is both a cloud-based (SaaS) community forum software and an open source community supported software. The company's main product is Vanilla Cloud.

Firebase Cloud Messaging (FCM), formerly known as Google Cloud Messaging (GCM), is a cross-platform cloud service for messages and notifications for Android, iOS, and web applications, which as of May 2023 can be used at no cost. Firebase Cloud Messaging allows third-party application developers to send notifications or messages from servers hosted by FCM to users of the platform or end users.

References

  1. Atwood, Jeff (2014-08-26). "Introducing Discourse 1.0". blog.discourse.org. Archived from the original on 2020-07-04. Retrieved 2020-07-04.
  2. "Release 3.1.4". 8 January 2024. Retrieved 19 January 2024.
  3. "Understanding Discourse Trust Levels". Discourse. 2018-06-25. Retrieved 2023-06-21.
  4. "Stack Exchange Co-Founder Jeff Atwood Launches Forums Startup Discourse, With Funding From First Round, Greylock, And SV Angel". TechCrunch. 6 February 2013. Retrieved 2022-03-31.[ permanent dead link ]
  5. "Jeff Atwood on Growing Discourse to $120,000/mo". Indie Hackers. Retrieved 2022-03-31.
  6. "Sam Saffron and Sarah Hawk named Discourse Co-CEOs". Discourse. 2023-01-31. Retrieved 2023-02-09.