A Complete Commenting Solution

Host the conversation under every article, in a community you own.

Keep readers on the page

Let readers join the discussion without leaving the article

Readers reply, like, and quote in place

When you turn on full app mode, readers get the whole Discourse discussion under each article. They reply, like, and quote without opening a new tab or losing their place in the story.

Readers sign in with an account they already have

Connect your existing login through DiscourseConnect, or let readers sign in with Google, GitHub, Discord, and other social accounts. Readers who already belong to your community start commenting straight away.

Readers get fast pages

You can load comments only when readers scroll near them, and set the comment area to grow with the conversation, so a post with no replies doesn't leave a gap and a busy topic has room.

Look & feel

Style embedded comments with your own CSS through Discourse themes so comments match your fonts, colors, and layout.

Turn commenters into a community

Upgrade every article with a discussion that keeps working after the news cycle ends

Each article gets a matching topic

The first time someone opens an article, you get a topic on your community that links back to the original. Readers who arrive from the article and readers who arrive from the forum join the same topic.

People find your discussions in search

Each discussion lives at its own public address on your community, so people searching Google, or asking ChatGPT, Gemini, or Claude, can find what your readers said about a story long after you published it.

Readers stay for the next conversation

A reader who comes to comment on one story finds categories, other topics, and people to follow. Your regular commenters become members, and your members come back for the next post.

You own the data

Discourse is open source. You keep every post and every account, and you can export them whenever you like. We don't run ads in your comments, and we don't sell your readers' data.

Moderate at scale

Keep comments civil without hiring a moderation team

Readers earn trust over time

New accounts start with limits on links and images. As readers participate, they earn more privileges, and your most trusted regulars help you flag spam and keep topics tidy.

Your moderators catch abuse before readers see it

Moderators set Discourse AI to flag NSFW content and toxic posts, and can hold first posts from new accounts for approval.

Moderators work from one queue

Readers flag posts, and your moderators review every flag, held post, and new account in one place and act in a click.

AI spam detection

Stop spam before anyone reads it

Spammers go after open comment boxes first. When they get a few posts through, your readers stop replying, and your editors spend their mornings deleting links.

With AI spam detection, we use a language model to read every post from new commenters, decide whether it's spam, and pull it down before your readers see it. We build it into Discourse and turn it on by default for hosted Pro and Business communities.

What we check

We check posts from new and low-trust accounts: by default, readers at trust level 0 or 1 who have made three posts or fewer. We skip your staff and your established members. If a new account edits a post within 24 hours, we check it again, so a spammer can't post something harmless and add the links later.

What the AI reads

For each post, we give the model the post text, up to three images, the topic and category, the post it replies to, and the account's age, email address, post count, and rough location. The model decides whether the post is spam and explains why.

What happens to spam

When the model marks a post as spam, we hide the post, silence the account that wrote it, and send it to your review queue. If the spammer started a new topic, we hide the whole topic. Your moderators restore anything we got wrong in one click, and the account can post again.

What you control

You add your own rules in natural language, and even choose which trust levels we check. Hosted customers use the language model we host for them, while self-hosted teams can connect their own.

AI translations

Host one conversation in every language

You publish for readers around the world, but readers who don't speak the language of a topic scroll past the comments. Few of them reply, so each discussion only hears from part of your audience.

With AI translations, we translate every comment into each language you choose to support and show each reader the version in their own language. A reader in Madrid and a reader in Tokyo read and reply to the same topic, each in their own language.

What readers see

Signed-in readers see each topic in the language set in their account, and visitors pick theirs from the language switcher. Readers see a small marker next to any post that started in another language, and they can tap it to read the original. Readers who speak several languages can list them, and we leave posts in those languages as written.

How translations stay current

We translate each post once per language and save the result, so readers never wait for a translation to load. When an author edits a post, we translate it again.

How search engines find it

We give search engines a version of each topic in every language you support, tagged so Google can match each version to its language. Someone searching in German can find a topic that started in English.

What you control

You choose the languages, the categories we translate, and how many older posts we translate each hour. You can write your own translation instructions to keep your house terms and tone consistent across languages. Hosted communities can support two languages on Free, four on Pro, and up to ten on Enterprise.

Add comments to any site

Paste one snippet, or install the plugin for your platform

Any site that runs JavaScript. Add your site as an allowed host under Admin > Advanced > Embedding, turn on full app mode, and paste the snippet Discourse generates for you where you want comments to appear. Teams use it on Ghost, static sites, knowledge bases, and custom CMSs.

Example
<div id="discourse-comments"></div>

<script type="text/javascript">
  DiscourseEmbed = {
    discourseUrl: 'https://community.example.com/',
    discourseEmbedUrl: 'https://example.com/blog/my-article/',
    fullApp: true,
    embedHeight: '800px'
  };

  (function() {
    var d = document.createElement('script');
    d.type = 'text/javascript';
    d.async = true;
    d.src = DiscourseEmbed.discourseUrl + 'javascripts/embed.js';
    (document.getElementsByTagName('head')[0] ||
     document.getElementsByTagName('body')[0]).appendChild(d);
  })();
</script>

WordPress

Install the WP Discourse plugin to publish your posts to your community and show replies under each post, including through a Discourse Comments block for block themes. You choose which replies appear on WordPress, such as posts from trusted members or posts your moderators liked, and readers can log in once across both sites with DiscourseConnect.

Ghost

Replace the comments helper in your Ghost theme with the Discourse snippet. Comments appear on your next page load.

Organized comments

Send comments from each site, or each section of a site, to its own category and tags. Credit each topic to the article's author with a single meta tag. Keep new topics unlisted until someone replies, so a large archive doesn't flood your community's latest list.

Topics on your schedule

Let Discourse create a topic the first time someone visits an article, import new posts from your RSS feed, or create topics yourself through the API and pass the topic ID to the embed.

Comments only where you allow them

You list the hosts and paths that can embed your community, and nobody else can put your discussions on their site.

Case studies

The Discourse blog runs its comments in full app mode

We run the comments on our own blog with full app mode.

Read Understanding Discourse Trust Levels

Products used: Discourse embedding (full app mode)

Challenge

We wanted readers to join the discussion on posts that have collected years of replies, without sending them to another site first.

Solution

Readers reply, like, and quote posts directly under articles such as Understanding Discourse Trust Levels. New readers add to topics that started years ago, and every reply also appears on Discourse Meta.

Professional services

Launch your comment system with help from the Discourse team

Our engineers, designers, and community specialists help you connect your CMS, set up login, move existing comments over from your current system, and configure categories, moderation, and AI features for your site.

Talk to our team