mrkeyoor.com_
Tue 01 Sept 17:41 UTC
Self-Hostedevaluationupdated 25 Aug 2026

discourse review

Discourse is an open-source platform for running a public forum, private community, or support site under your own control. It combines threaded topics with chat, themes, and plugins, so a team does not have to assemble those pieces from separate products.

+33stars / 7d
Verdict

Our Discourse install stopped after 68 seconds on an exact Node engine mismatch, so self-hosters should treat version pinning and operations as part of the product choice. Use Discourse when a community needs durable topics, chat, plugins, and control of its data, and when someone can own the Rails, PostgreSQL, Redis, email, backup, and upgrade work. Choose hosted Discourse or a smaller forum if that operator does not exist.

We ran it

Lab card: what happened when we ran discourseScreenshot of discourse (www.discourse.org)
Install✗ · 68s
Build
Repo24039 files~1,661,393 lines of source · 177.5 MB · 19 CI workflows · tests dir

Answers from our run

Does discourse build from source?

The dependency install failed, and the project has no separate build step. We cloned commit 35c034f into a clean Debian container with 3 CPUs and no project-specific setup.

Who should not use discourse?

Shared-hosting customers using cPanel, Plesk, or Webmin: the official install guide says only Docker-based production installs are supported.

What are the alternatives to discourse?

NodeBB, Flarum, Zulip. Our Discourse install stopped after 68 seconds on an exact Node engine mismatch, so self-hosters should treat version pinning and operations as part of the product choice.

Setup2/5Supported Docker path, but exact versions and several services matter
Docs5/5Clear platform, development, production, and security routes
Community5/5Active same-day changes and a large contributor workflow
Maturity5/5A decade-old forum stack with defined support and upgrade paths

Discussed on

  1. hnCivilized Discourse Construction Kit727 points
  2. hnDiscourse Is Not Going Closed Source226 points
  3. hnShow HN: NimForum – A lightweight alternative to Discourse186 points
  4. hnNimforum: Lightweight alternative to Discourse written in Nim172 points
  5. hnShow HN: Discourse Announces Chat35 points

Who it’s for

Organizations that want to own their community data and hosting decisions.
Product teams running a customer forum, support community, or long-lived knowledge base.
Operators comfortable maintaining a Rails application with PostgreSQL, Redis, email, backups, and upgrades.
Communities that need both durable discussions and built-in chat in one product.

Who it’s NOT for

Shared-hosting customers using cPanel, Plesk, or Webmin: the official install guide says only Docker-based production installs are supported.
Small teams without an application operator: the install guide names Rails, Sidekiq, Nginx, PostgreSQL, and Redis as services that need running and monitoring.
Projects that cannot accept GPL-2.0-or-later terms for modifications and distribution: that is the repository's declared license.
Users who need support for old browsers or platforms: the README limits support to the latest stable major browsers and targets iOS Safari 16.4 or newer.
Contributors expecting a small JavaScript package: our checkout contained 53 workspaces, 24,039 files, and roughly 1.66 million source lines.

Setup reality

In our sandbox, installation failed after 68 seconds at commit 35c034f. The 53-workspace pnpm run first reported conflicting built-dependency settings, then rejected Node v20.20.2 because @babel/core@8.0.1 requires Node ^22.18.0 or >=24.11.0. No build or tests ran after that failure.

A production forum needs a 64-bit Linux server with Docker and SSH access. Discourse also needs PostgreSQL, Redis, outbound email configuration, storage, backups, and a hostname; the official guide supports the Docker route, while local development has separate container, macOS, Debian, and Windows guides.

This is a Rails and Ember application, not a Node-only service. Our checkout occupied 177.5 MB and held about 1,661,393 source lines across 24,039 files. Version pinning matters before the first install, and ongoing ownership includes Sidekiq workers, database changes, plugins, themes, monitoring, and upgrades.

Discourse is a full community application, not a forum widget

Discourse runs the whole public or private discussion space. Topics hold durable conversations, built-in chat handles faster exchanges, and themes change the presentation. Plugins can add functions such as AI chatbots or SQL analysis through Data Explorer. The backend is Ruby on Rails, the browser application uses Ember.js, PostgreSQL stores the main data, and Redis handles cache and transient state. That is a coherent product, but it is much larger than an embeddable comments box.

The scale shows up in our checkout: 24,039 files, roughly 1,661,393 source lines, and 177.5 MB at commit 35c034f. Discourse makes sense when the community itself is an important product surface, with moderation, searchable history, identity, customization, and regular member activity. A small documentation site that only wants comments would inherit far more application and operational surface than it needs.

The official production route is Docker on Linux

The install guide is unusually direct about support. Production installations are officially supported only through Docker on a 64-bit Linux server with SSH access. It explicitly excludes cPanel, Plesk, Webmin, and other installation methods. The reason is visible in the architecture: Rails and Sidekiq processes need supervision, Nginx needs configuration, and both PostgreSQL and Redis must remain healthy. The Docker packaging gathers those duties into the maintained deployment path.

Development has more choices, including a VS Code development container, a command-line container route, macOS, Ubuntu or Debian, and Windows instructions. The README calls for Ruby 3.4 or newer, PostgreSQL 15, and Redis 7 for development. Production and development are different jobs here. Following a local guide proves that you can work on the code; it does not remove email delivery, DNS, TLS, storage, database backup, monitoring, or upgrade work from a live community.

What happened when we ran it

Our install failed after 68 seconds in a fresh Debian sandbox with 3 CPUs and 8 GB of RAM. The pnpm command covered all 53 workspace projects. Its log reported two concrete blockers: conflicting neverBuiltDependencies and onlyBuiltDependencies settings, followed by an unsupported Node environment for @babel/core@8.0.1. That package expected Node ^22.18.0 or >=24.11.0, while the process reported v20.20.2.

Installation stopped there, so we did not get a build or test result. The checkout did have a tests directory and 19 GitHub Actions workflow files, which shows that upstream verification exists, but those signals are not a substitute for a passing run on our box. The lab image was named lab-node:22, yet the process reported Node v20.20.2. We can state the mismatch from the log; we cannot infer why the image supplied that executable.

This result also explains why a source checkout is the wrong first evaluation path for most prospective forum owners. Discourse is primarily a Rails application, while our harness exercised its Node workspace install and hit an exact engine gate. A buyer should trial the supported Docker deployment, then rehearse backup, restore, upgrade, email, and plugin behavior on the same kind of infrastructure intended for production. Contributors need to match the repository's tool versions before judging the codebase.

Plugins buy flexibility and add upgrade work

The README points to both official and community themes, plus plugins ranging from Discourse AI to Data Explorer. That ecosystem is one of the strongest reasons to choose the project. A community can change its visual identity and add specialized moderation, reporting, or automation without replacing the forum. The cost is compatibility ownership. Every additional plugin or theme becomes something to check against core updates, browser changes, permissions, and local policy.

With 53 workspaces and about 1.66 million source lines in our measured checkout, even a narrow customization sits beside a large moving application. Keep custom code small, record why each extension exists, and test upgrades against representative accounts and content. Teams that need a heavily bespoke social product may be better served by building on a narrower framework. Teams that mainly want familiar forum behavior should resist changing core flows simply because the extension mechanism permits it.

Current development is active without GitHub Releases

The repository was pushed on 2026-08-25, the same date as this review, and its open GitHub count was 275. GitHub combines issues and pull requests in that field, so it is not a bug total. A separate open-issue search returned no results, while the recently updated queue contained active pull requests touching chat, the editor, permissions, JSON:API work, and plugins. Code movement is plainly current.

GitHub's latest-release endpoint returned no published release for this repository. That is not evidence that Discourse is dormant; the same-day push and pull-request activity point the other way. Operators should follow Discourse's own release notes and supported upgrade process instead of waiting for a GitHub release badge. The browser policy is similarly current and narrow: latest stable major browsers are supported, with an aim of Safari on iOS 16.4 or newer.

Pick Discourse when the community warrants an operator

Discourse earns its operational cost when discussions need to remain useful for years, chat and topics belong together, and the organization wants control over hosting and data. Its README and install guide are candid about the stack, supported route, and maintenance burden. The product has been worked on for more than a decade, and the repository activity on 2026-08-25 shows that the application is still changing.

The decision turns on staffing more than feature count. Our 68-second install failure was a precise version gate, not proof that the supported container cannot run. It was also a warning that this 24,039-file system expects disciplined version management. If someone can own upgrades, backups, email, data services, extensions, and incident response, Discourse is a sensible long-term home for a serious community. If nobody can, official hosting is the more honest purchase.

Alternatives

ProjectWhat it isPick it when
NodeBBA JavaScript forum platform with live updates, plugins, and themes.pick this instead when your team prefers a Node.js stack and wants a traditional forum with real-time behavior.
FlarumA PHP forum framework built around extensions and a compact discussion interface.pick this instead when PHP hosting and a lighter forum core fit your operators better than Rails.
ZulipA threaded team-chat system organized by streams and topics.pick this instead when fast internal chat is the main job and public forum publishing is secondary.

What people are saying

  1. [velocity-scout] discourse/discourse

Sources

  1. Discourse README
  2. Official Discourse install guide
  3. Discourse security guide
  4. Discourse pull requests

More self-hosted reviews

v2 · OpenShell · wigolo · Mindwtr · club-3090 · reclip · the whole board →