This is the power of Discourse

(Sarah Hawk) #1

I woke up this morning to find that in the night, someone had joined, spammed the forum, and been banned, before I even logged on. One of the things that drew me to Discourse in the first place was the self-moderation tools, and to see it in action is a CM’s dream come true. (I don’t have big dreams.)

For those of you that are new to Discourse, if more than one person flags a post, the post is hidden from public view, pending an edit from the OP, or action from a moderator.

It was @richard_millington that did the banning (only an admin can do that), but your flagging hid the post from public view while he made that decision (which is especially powerful if someone goes on a rampage).

So, what are you working on?
(Steven Hermans) #2

I would have switched to Discourse when I was redoing my website this winter, but couldn’t figure out how to install it. Am I right in thinking you cannot do it on shared hosting and you need a cloud server?

(Sarah Hawk) #3

I’m not expert on the specifics of self hosting but there is lots of good info on Meta.

You should find everything you need to know here. If not, here is definitely the place to ask.

(Alessio Fattorini) #4 is a good alternative to self-hosting
cheap and their support is really good, I’m a sysadmin but I have no time to administrate and maintain a self-hosting
Feel free to ask if you need info

(Darren Gough) #5

Man, I wish I’d have had this service at MSE. The amount of daily spam attacks was mind blowing!

(Sarah Hawk) #6

Same at SitePoint, which was part of the reason for our migration.

(Darren McKay) #7

Do you manually validate new accounts and, if so, would the account have been unleashed onto the forum had human eyes passed over it?

Was it’s potential spammingness obvious? They tend to be from my experience.

(Sarah Hawk) #8

No, we don’t manually validate accounts, Discourse makes that unnecessary. In the past I’ve had horrific experiences with spam before we had a chance to clean it up (always on vB) but here Trust Levels mean that people can’t post links, images, or reply to the same thread numerous times before they reach TL1. Randy (above) spent a fair bit of time on the site reading posts before he was able to put that link up. More work than your average spammer will bother with. Sock puppets are also caught, which is great.

The fact that the community can hide a post and block someone from posting further until moderator intervention is what I particularly like about this situation.

(Darren McKay) #9

Fair enough.

I’ve run vBulletin for many years on a VERY busy site and spam has never been an issue at all. A relatively standard plugin stop most at source - most can’t even register - and manual moderation deals with the remainder, although I generally go weeks at a time without ever seeing one. In contrast on this relatively quiet site you still had a spammer make a post until such time as someone reported it. I’m not sure I see you as being ahead of the game in that regard. Maybe I’m missing something.

Again, with vB, a mixture of baked-in functionality and a widely-used plugin means that no-one could ever post a link in their first post, whereas you had that spammy link live for all to see.

(Sarah Hawk) #10

Some of that probably comes down to the nature of the audience. My main experience was with a site only slightly larger than yours, but spam was ongoing and painful. It was a tech community so people made breaking in a bit of a project.

It is definitely possible to lock Discourse down more than we have. Because we’re a community of community managers I haven’t yet felt the need.

(Darren McKay) #11

I’m heading off to to find out if there is already a plugin to ‘hide’ posts from new users if reported by established users.

If there isn’t, I’ll commission the writing of one.

Another line of defence never goes amiss! :grinning:

(Anton) #12

I adore the data viewer official plugin in Discourse. It allows to build and save SQL queries right from admin panel; which adds endless possibilities to administration and analysis power.

We use it intensivly for many purposes:

  • find which members to invite in which topics and when;
  • play with complex badge criteria;
  • identify best criteria to select a contest winner before running the contest; identify contest winners;
  • find ghost members who register solely to like posts of a single person to raise their chances in contests… and exclude their likes from ranging.

Plugin features:

  • advanced schema viewer with search through table and column names;
  • automatic execution time limiter;
  • SQL stntax highligher;
  • advanced query result viewer with interactive links to users, topics and responses.

I also use my Twig Anything plugin to fetch any data from Discourse and display it my own way in the complementary WordPress webiste. By this I’d like to express the fact that Discourse’s API-for-anything is so great: it covers every single aspect of the application because the client side is built around this API.

(Sarah Hawk) #13


I’m curious about this one – it sounds powerful. Can you elaborate?

(Anton) #14

For example, if you have been registered for a while but have never posted in “about me”, a query would indicate it. We review a bunch of such queries periodically and send invitations to participate in the target topic with using an “Invite” button (in manual mode, overseeing is always good for such things as there always would be exceptions).

There are quite a few topics good to go with such an approach:

  • about me
  • my personal page (you stopped posting there, why?)
  • why I love this forum
  • how I became a goat farmer
  • etc

This also works well for polls.

(Erlend Sogge Heggen) #15

We’d seriously love a Howto post on Meta covering how you do all those things :smiley:

(Richard Millington) #16

So there’s a HUGE win there right?

Which is something along the lines of using what people have discussed in the past to highlight new discussions which they would be interested in, solicit their expertise on, and drop in notifications/e-mails asking them for their advice without needing a community manager to do it?

(Anton) #17

Hi there! Well, I publish interesting SQL queries and badges on Meta regularly :wink:

Not exactly like this. It is not fully on auto. You have to determine your criteria and convert it into an SQL query, then once done, the query will find people who satisfy the criteria but never posted in a particular topic(s). You still have to submit notifications manually - either via an “Invite to the topic” button, or in a more sophisticated way, for example by replying to the topic and mentioning the target user by their nickname.

(Anton) #18

Dear community, for those using Discourse AND WordPress together, I wrote a new tutorial on how to extract about any data from Discourse and display it anywhere in WordPress.

Please see an illustrated step-by-step guide for a real use-case:

It utilizes the Data Explorer Discourse plugin that allows you to query its database and extract any data by any criteria, which creates endless possibilities for integration.

Would be happy to answer all your questions!

(Sarah Hawk) #19

That’s super helpful. :slight_smile:

For anyone that is interested in giving this a go, you can see something similar in action here (albeit we didn’t use @meglio’s powerful plugin) on our home page. The second row of posts is content pulled directly from the community here.

(Joe Velez) #20

(also a vbulletin admin)


  • Automatically throttle posting if join date is less than 6 hours and member has 4 or more posts. (Disabled after 10 posts as it is assumed account is not a bot.)
  • Automatically set to moderate (hide) if poster has less than 5 posts and a link is found. (Disabled if more than 5 posts. It is assumed account is not a bot. If they were they would have been banned by now.)
  • We also have a filter in place to look for specific words - if found set to moderate.