User:Notriddle/sandbox/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, oneboxing, 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 October 2017, more than 700 businesses or instances have chosen this option. On May 2017, Jeff Atwood - one of the founders - told 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 (which is based on nginx and Unicorn), database system (PostgreSQL), cache (Redis), and background processing services (Sidekiq). The launcher script defaults to running them all on the same server, but supports running them separately. Discourse does not support using Discourse with any of these services other than the versions provided by their images, 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
When Discourse is installed it creates automatic groups, with different permissions, useful for site management as administrators, moderators, staff (administrators and moderators), and various trust levels for users. Discourse also allows the creation of custom groups. These groups are highly customizable and can be made private or public. Depending on the selected settings, groups can be visible to all or only to group members, users can join and leave the group freely or send a request to be added to the group owner. Users can be also added to a group by invitation or automatically added using an email domain that matches one in the allowed list.

Discourse APP
Discourse APP is an official open source react native application for Android and iOS devices. It was released in November 2016 and 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. In October 2017, an unofficial app was released, allowing self-hosted Discourse forums to create their own brand app and deploy it on the Google Play and App Store marketplace. The app is developed by pmusaraj who is a long term Discourse user and a plugin author.