Want to take your software engineering career to the next level? Join the mailing list for career tips & advice Click here


A platform for community discussion. Free, open, simple.

Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402 (1 ratings)
Rated 5.0 out of 5
Subscribe to updates I use discourse

Statistics on discourse

Number of watchers on Github 31136
Number of open issues 19
Main language Ruby
Average time to merge a PR 1 day
Open pull requests 191+
Closed pull requests 146+
Last commit 3 months ago
Repo Created almost 8 years ago
Repo Last Updated 3 months ago
Size 308 MB
Homepage https://www.disco...
Organization / Authordiscourse
Page Updated
Do you use discourse? Leave a review!
View open issues (19)
View discourse activity
View TODOs for discourse (172)
View on github
Book a Mock Interview With Me (Silicon Valley Engineering Leader, 100s of interviews conducted)
Software engineers: It's time to get promoted. Starting NOW! Subscribe to my mailing list and I will equip you with tools, tips and actionable advice to grow in your career.
Evaluating discourse for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)
What people are saying about discourse Leave a review
It's far more up to date to today's standards than any other forum software

Discourse is the 100% open source discussion platform built for the next decade of the Internet. Use it as a:

  • mailing list
  • discussion forum
  • long-form chat room

To learn more about the philosophy and goals of the project, visit discourse.org.


Boing Boing


Browse lots more notable Discourse instances.


To get your environment setup, follow the community setup guide for your operating system.

  1. If you're on macOS, try the macOS development guide.
  2. If you're on Ubuntu, try the Ubuntu development guide.
  3. If you're on Windows, try the Windows 10 development guide.

If you're familiar with how Rails works and are comfortable setting up your own environment, you can also try out the Discourse Advanced Developer Guide, which is aimed primarily at Ubuntu and macOS environments.

Before you get started, ensure you have the following minimum versions: Ruby 2.6+, PostgreSQL 10+, Redis 4.0+. If you're having trouble, please see our TROUBLESHOOTING GUIDE first!

Setting up Discourse

If you want to set up a Discourse forum for production use, see our Discourse Install Guide.

If you're looking for business class hosting, see discourse.org/buy.


Discourse is built for the next 10 years of the Internet, so our requirements are high.

Discourse supports the latest, stable releases of all major browsers and platforms:

Browsers Tablets Phones
Apple Safari iPadOS iOS
Google Chrome Android Android
Microsoft Edge
Mozilla Firefox

Built With

  • Ruby on Rails β€” Our back end API is a Rails app. It responds to requests RESTfully in JSON.
  • Ember.js β€” Our front end is an Ember.js app that communicates with the Rails API.
  • PostgreSQL β€” Our main data store is in Postgres.
  • Redis β€” We use Redis as a cache and for transient data.

Plus lots of Ruby Gems, a complete list of which is at /master/Gemfile.


Build Status

Discourse is 100% free and open source. We encourage and support an active, healthy community that accepts contributions from the public – including you!

Before contributing to Discourse:

  1. Please read the complete mission statements on discourse.org. Yes we actually believe this stuff; you should too.
  2. Read and sign the Electronic Discourse Forums Contribution License Agreement.
  3. Dig into CONTRIBUTING.MD, which covers submitting bugs, requesting new features, preparing your code for a pull request, etc.
  4. Always strive to collaborate with mutual respect.
  5. Not sure what to work on? We've got some ideas.

We look forward to seeing your pull requests!


We take security very seriously at Discourse; all our code is 100% open source and peer reviewed. Please read our security guide for an overview of security measures in Discourse, or if you wish to report a security issue.

The Discourse Team

The original Discourse code contributors can be found in AUTHORS.MD. For a complete list of the many individuals that contributed to the design and implementation of Discourse, please refer to the official Discourse blog and GitHub's list of contributors.

Copyright / License

Copyright 2014 - 2020 Civilized Discourse Construction Kit, Inc.

Licensed under the GNU General Public License Version 2.0 (or later); you may not use this work except in compliance with the License. You may obtain a copy of the License in the LICENSE file, or at:


Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Discourse logo and Discourse Forum , Civilized Discourse Construction Kit, Inc.


Discourse is built with love, Internet style.

discourse open pull requests (View All Pulls)
  • Fix typo: are your sure
  • Create client.vi_VN.yml
  • [DO NOT MERGE] FEATURE: Admin Banner when Logster logs is getting flooded.
  • Add instructions for creating an admin account on the CLI to the Vagrant docs
  • Update RSpec to test on Rails 5
  • Starting a CoreOS doc
  • Fixes for I18n and translation overrides
  • FEATURE: Add /search discovery
  • Add tertiary color to email digests
  • Feature: (WIP) Set locale from Accept-Language header
  • Feature: (WIP) Send email notifications in user's preferred language
  • [WIP] Push notifications
  • Add locale for Vietnamese
  • FEATURE: More granular mailing list mode (WIP)
  • [DO NOT MERGE] Update to new rate limit Redis config.
  • Fix mbox.rb for updated Email::Receiver API
  • FIX: Properly downcase unicode chars
  • FIX: Image Lightbox on Subfolder Install
  • FIX: Bind action admin/users#show to GET /admin/users/list
  • Generate proper URIs for iframes in emails
  • FIX[WIP]: Email category badge
  • [WIP] Update sprockets.
  • UX: add maximum image size in the instructions
  • Make Vagrantfile more resilient
  • Make permalink import from phpBB3 configurable
  • Feature: Show location and website on user card.
  • FIX: Don't send rejection mailer to bounced emails.
  • FEATURE: Send email to contact_email when poll mailbox fails.
  • FEATURE: Add warning input to flag dialog when notifying a user
  • Test EmbedHelper.embed_post_date
  • Add spec directly for UsernameValidator.perform_validation
  • Add `after-site-map-links` plugin outlet
  • Make PgSQL happy: ActiveRecord::StatementInvalid: PG::ProtocolViolation
  • FEATURE: make discourse remap optionally do regex_replace
  • Feature: Merge multiple responses
  • FIX: posts.rss route when left clicked.
  • App Banner Support for Android Chrome
  • Add host to nginx logs.
  • Fixed bug where moved post links were incorrect
  • Optional 'no_user_found_return_sso_url' parameter for using Discourse as SSO
  • Update Sidekiq.
  • Allow an (optional) post-creation time to be submitted.
  • FIX: Don't diplay character reference in HTML diffs
  • FIX: Ensure that readonly key has an expiry.
  • FEATURE: Make pending unapproved posts visible to their authors
  • FIX: header offset 0 not respected in google android
  • FIX: focus not moving to user menu or hamburger when opened from keyboard
  • Allow any username character in user search
  • Add translation for topic title and remove dangling validation
  • [Do not merge] Rails master bench
  • FEATURE: Add maintenance readonly mode that does not share the same k…
  • FEATURE: add setting permanent_session_cookie to configure session st…
  • FIX: Box style category dropdown forces scrollbar on Chrome
  • Ensure SSO flow
  • Enhance, refactor populate.thor
  • DO NOT MERGE - just comments for now
  • FEATURE: Add details to popup menu options.
  • exit if RETRY is false
  • Poll UX: Remove danger from close poll button.
  • Poll UX: Highlight cast votes button and add icon.
  • Poll UX: Add icons to poll options.
  • TopicStatusView: Convert statuses to property.
  • Update dependencies
  • [WIP] Webhooks Milestone1
  • PERF: Split queries when cleaning uploads.
  • FIX: Unicode aware text sentinel
  • Add URL blocking functionality
  • Handle user enabled readonly mode
  • Support saml idp initiated sso
  • FEATURE: Add webhook event to track deliveries
  • FIX: use strict_encode64 in sso
  • [WIP] PERF: Refactor public polls users.
  • FEATURE: make discourse remap optionally do regex_replace (duplicating #4116)
  • Print Support
  • Don't halt notification emails for those on daily mailing list mode
  • [WIP] FEATURE: Group filters for webhook
  • Allow localhost as an embeddable host
  • FIX: Don't join on tags unnecessarily when matching all tags
  • FIX: improve url validation regexp
  • FIX: Tags on topic crawler view
  • Include colon in localized strings
  • Always use --force when pulling translations from Transifex
  • Change flatten and reverse.each
  • FEATURE: Add PluginApi#addTopicStatusIcon
  • User Profile tabs plugin-outlet
  • Add text to new messages line
  • FEATURE: Prioritize recent posts in Rake task.
  • Add hint for location of app.yml file
  • Fixing apple touch icon and favicon mixup.
  • FIX: Properly localize badge notification on batch grant
  • FIX: If the tag is first used in a deleted topic the tag shouldn't be stuck
  • bbpress: handle attachments, create permalinks
  • FIX: missing post and topic edited webhooks
  • FEATURE: Allow posting a link with the topic
  • display only 1 trust level badge on user card
  • fix: adminPlugins:index route is missing
  • FEATURE: Allow group owners to edit group name and avatar flair.
  • FEATURE: Add notification and session webhooks
  • FEATURE: reply as new message to the same recipients
  • Add support for Sprockets 4
  • FIX uploadLocation when window.location.port is empty
  • FEATURE: Add job to clean up Redis keys that are not used.
  • Widget hook for 'input' event
  • FIX: open login modal fails because of missing parameters
  • Vbulletin env
  • make unknown routes do server-side refresh
  • FIX: Handle img src starting with "//" in pull_hotlinked_images job
  • FIX: Let skip_validations bypass guardian at post creation
  • feature: Downloading onebox images to local
  • FEATURE: Append tags bulk action for topics
  • Fix: Forced trailing slash on messageBus.baseUrl
  • [WIP] FEATURE: Deferred migrations that run 30 mins after core migrations.
  • FEATURE: Split Reply-button into 'Reply Post' and 'Reply Topic'
  • Remove daily mailing mode option as it doesn't scale.
  • FEATURE: pull onebox images
  • Allow inclusion of elided text from emails when sending to a category…
  • FEATURE: phase 1 of supporting multiple email addresses
  • FEATURE: login by a link from email
  • Add an optional category-specific [slug] for email subject lines.
  • Improving search result blurb
  • [WIP] Quick access to bookmarks and messages on user menu.
  • Moving posts issues
  • Improve setting locale
  • Update server.ru.yml
  • Update discourse_tagging.rb
  • Update client.ru.yml
  • Update discourse_tagging.rb
  • russian letters in search
  • bbpress import script: Adding support for anonymous users
  • russian letters in search
  • Image optimisation
  • Moderator post creation should not fail
  • latest.json: last topic from first page appears on the second page as well
  • Improving title discovery
  • Lock down gem versions so bundle update can be run
  • FEATURE: Implement 2factor login TOTP
  • FIX: Only enqueue topic_edited hook when a post has a topic
  • enable New Topic button when user can post to subcategory
  • Accessibility: focus management in topics
  • Fix: RTL topic-admin-menu position
  • FIX: Top offset value of #main-outlet element is always 0
  • Add prompt and HD settings to the Google OAuth2 plugin.
  • FEATURE: add setting which adds group name to PM email subject
  • FIX: make group "add username" placeholder text available to non-admins
  • Add search not operator
  • FIX: allow multiple secondary emails
  • FEATURE: Don't delete email from server on pop3 polling
  • FIX : proper error for creating topic with tag withour tag creation p…
  • FEATURE: New site setting for additional allowed filetypes for staff
  • Include information about iframe state in message
  • PERF: a faster way to count tags used per category
  • tab index composer actions
  • Fix: approve anonymous shadow users on creation
  • Switch ids in References-Header field of mails.
  • new plugin-outlet named: full-page-search-result
  • FEATURE: Theme settings
  • add og metadata for groups
  • Notification API Endpoint
  • FEATURE: Adds option to search only in titles
  • FIX: set notification level when changing post owner
  • Adds :puke: as alias to :face_vomiting:
  • Try extracting time period only when the filter is 'top'.
  • FEATURE: Theme settings (2)
  • Fix typos in server.en.yml
  • [WIP] FEATURE: replace PM tags dropdown with a dedicated tags page
  • Remove assumption that social login is enabled
  • FIX: Excerpts could be too long for column
  • FEATURE - Prevent unnecessary refreshes with overscroll-behavior-y
  • FEATURE: set 'Retry-After' header for 429 responses
  • FIX: Login redirect path was broken in subfolder installs
  • Remove unused columns from topics table
  • Build(deps): Bump i18n from 1.8.3 to 1.8.4
  • FIX: Users should be able to delete their own queued posts
  • Build(deps): Bump rubocop-ast from 0.1.0 to 0.2.0
  • Build(deps-dev): Bump test-prof from 0.11.3 to 0.12.0
  • DEV: Remove the <details> polyfill
  • DEV: Don't lint core files when target == plugins
  • FEATURE: Allow group moderators to add/remove staff notes
  • FEATURE: Add site setting and wizard step to set base font
  • PERF: Avoid parsing `Post#cooked` with Nokogiri for every search.
  • FIX: Improve email styling of code blocks
  • FEATURE: Add "delete on owner reply" bookmark functionality
  • FIX: use allowlist and blocklist terminology
  • Preloaded Data Changes
  • FIX: Make migrations from S3 more robust; fix bare URL migration
  • FEATURE: Support converting HEIF images to JPEG
  • DEV: Raise special check_xhr exception in tests
  • Remove Discourse.SiteSettings constants
  • DEV: Refactor draft attributes for `CategoryList` and `TopicList`.
  • PERF: skip existing users if large no of notifications expected
discourse questions on Stackoverflow (View All Questions)
  • How does one access the Discourse admin panel on an Azure Gallery install?
  • Discourse Onclick Event to Reveal Hidden Image
  • Changing base_url in discourse
  • Incorporating Discourse SSO with Existing Rails Site with Devise
  • Discourse API via AJAX
  • Posting a new topic to Discourse via REST- 403 Forbidden
  • Openshift Discourse liquidautumn not working
  • How can I disable / deactivate / delete a discourse user account via php?
  • Issues making API requests to discourse instance from Heroku and locally using discourse_api gem
  • Install Discourse (a docker image) on Openshift Online
  • Penn Discourse Tree Bank (PDTB) Parser
  • Discourse installation troubles
  • How to clone Discourse?
  • Error during installing discourse
  • Can't send mail with gmail stmp server (in discourse)
  • How to configure SSO for Discourse and Office 365 (SharePoint Online)
  • Ruby/Rails/Discourse How To Set Root Directory
  • Simulating Discourse SSO login via php curl
  • Natural Language Processing with discourse integration
  • Mark discourse private message as read via api
  • Getting Discourse Rails forum to send emails
  • How to make a discourse plugin available for public posts?
  • Wordpress and Discourse with Auth0 SSO(Single Sign On) Integration
  • What iptables rules should I use in order for my Discourse app to be able to use Mandrill?
  • what parts are necessary for a custom omniauth oauth2 strategy for integrating with discourse
  • Devise, Discourse & Single Sign On / SSO , payload dropped, can't sign in
  • Preload Badges on Discourse in plugin init
  • Get list of badges in Discourse by accessing Ember.ArrayController from javascript outside of handlebars template
  • How to install Discourse on Debian 32 bit?
  • How to set up SPADE package for discourse relation
discourse list of languages used
Other projects in Ruby
Powered by Autocode - Instant Webhooks, Scripts and APIs
Autocode logo wordmark