The biggest issue I see is producing something that visually attracts passing traffic whilst maintaining interest once the user has joined up and it’s the visual experience that has been my biggest issue so far with Discourse. Much of this can be changed with CSS of course and the fact that SCSS is supported makes that job easier. But there are several styling gotchas, for example, not being able to assign CSS classes to categories, for my use cases, can make Discourse styling a real pain. I’ve raised this with the team, and I hope that the low hanging fruit changes will make it into the product before too long.
I’ve also hit issues with categories, specifically category moderation and maximum category depth. Here’s an example:
In my Film & TV community, I want to be able to offer an online presence to Film Societies. I wanted to do this by adding a new top level category called Clubs and Societies and within this category a new category would be added for each Society. See the following (btw image selection is not final):
I’d then want to allow the Society’s representative to moderate their own forum. But this is not currently possible in Discourse although Category specific moderation is promised in a future update.
Still on the subject of societies and categories, once a category has been created for a society, I want to be able to allow non society members to see that the categories exist - but - I want to keep their forums private. Again this is not possible as the forum content inherits the same permissions as the category. So if the society is visible to all, so is the forum. I’ve got round this by moving each club and society to the top level and then adding another hidden category in each club and society at level 1 (assuming top is 0) which is only visible to society members. It works, but it’s cumbersome. I won’t hog bandwidth by posting another screen grab, instead imagine the societies currently within the orange clubs and societies category, being moved to the top level - so as to allow a private forum to be included at level 1 within each individual club and society.
On the other hand these UX challenges must be balanced against Discourse’s excellent topic handling capabilities, which ultimately outweigh the aesthetics. If it were a case of aesthetics first, then NodeBB would be my first choice, simply because it solves the issues mentioned above by offering an infinite number of category levels and more granular permissions - not to mention it’s also very fast.
Of course, once you start adding multiple categories, you need to keep them organised and neither Discourse or NodeBB offers any facility for segregating or classifying categories other than hierarchy. It’s all or nothing, although Discourse does offer the ability to prevent individual categories from being shown on the home page.
Which means you need to turn to the plugins such as Isotope, used in my Film community above. These enable you to sort, filter and pack elements on the page and can be very effective at extending web platforms that haven’t yet focused on client side aesthetics.
Finally, in addition to filtering and packing, I also wanted to be able to add gallery functionality to Discourse and for this I used Flickity - seen here on a car test site I developed. This allows me to add multiple images to a topic or reply and have them render in a carousel, along with maintaining Lightbox support.
Adding the carousel in next post due to new user posting limitations.
That’s all for now, but in summary, Both Discourse and NodeBB offer some great facilities, with Discourse being stronger on topic handling, and NodeBB better with category organisation and moderation. Obviously both platforms are being developed at a rapid pace, so what I mention here will only be valid for so long. But it is currently the case. Although the good news is, as demonstrated above, most issues can be worked around, if not natively within the platform itself, then with the assistance of one or two plugins.