Challenges in using NodeBB to provide forums to a web community where users must be able to dynamically create their own sub-forums as the site grows



  • Hey,

    I'm looking for a forum solution that integrates well with the site I'm currently building. Until now I had planned to roll my own (basic) solution. However, NodeBB seems pretty awesome and it provides the needed OAuth support that would easily let me integrate both sites. Still, there's a bunch of questions on my mind now.

    I need a solution where I can have a handful of "main boards" that are visible to all users. In addition to that, users on my site will be able to form their own sub-communities and these sub-communities need their own forums (which I'd also love to power with NodeBB). Basically, I suppose that this is a pretty extreme use case for forums.

    • Any suggestions how I should go about achieving that? If I had an API on NodeBB that lets me create sub-forums when a user creates a new sub-community on the main site, that would do the trick, I suppose.
    • I could possibly add every sub-community as a group on NodeBB. Is it currently possible to restrict visibility of certain forums to certain user groups in NodeBB? Would that be a reasonable use of groups in NodeBB?

    The second thing I need in my forums is the ability for users to place smart links to items on the main site (imagine a shopping site where people can ask in the forums for a specific product and an employee or simply another user can respond with a product thumbnail as part of their response).
    I suppose that could be done as a NodeBB plugin. That plugin would either

    • query a Web API on the main site to retrieve the data for the product thumbnails (either at the time of posting or at the time of Markup rendering), or
    • generate client-side JavaScript that loads the product thumbnail widgets from the main page after the forum thread has already loaded in the browser (obviously, that would be worse from a latency point of view, but it might be simpler to implement since I need "product thumbnail widgets" for embedding into blog posts of my users anyways)
      Any comments or suggestions on that? These are just two ways of doing this that come to my mind, I'm sure there are more. Maybe you can think of a better way? Any existing plugins that do something conceptually similar?

    I'm not too scared of modifying NodeBB's source code to my needs despite having never used NodeJS before. However, if there is a way I can stay compatible with NodeBB upgrades, I'd definitely want to stay on that route.

    Any case, I'd be totally happy if you can help me decide whether this is the forum I'm looking for and if you can give me a few hints how you think it would be easiest to achieve what I need. :)


  • Admin

    Hi @grumpi, such a use case would be something we'd work closely together on. Please get in touch with me at julian@nodebb.org and we can talk specifics over email or G+ Hangouts. :)



  • Sounds like a good plan. :)


  • Admin

    @grumpi said:

    I could possibly add every sub-community as a group on NodeBB. Is it currently possible to restrict visibility of certain forums to certain user groups in NodeBB? Would that be a reasonable use of groups in NodeBB?

    This is already possible using the groups and permissions system, it is exactly what it was designed for.

    I suppose that could be done as a NodeBB plugin. That plugin would either

    query a Web API on the main site to retrieve the data for the product thumbnails (either at the time of posting or at the time of Markup rendering), or
    generate client-side JavaScript that loads the product thumbnail widgets from the main page after the forum thread has already loaded in the browser (obviously, that would be worse from a latency point of view, but it might be simpler to implement since I need "product thumbnail widgets" for embedding into blog posts of my users anyways)
    Any comments or suggestions on that? These are just two ways of doing this that come to my mind, I'm sure there are more. Maybe you can think of a better way? Any existing plugins that do something conceptually similar?

    I think this can be done with a plugin, similar to the various embed plugins we have, user posts a link and during the parsing the plugin replaces it with the thumbnail and info about the item.



  • @baris said:

    @grumpi said:

    I could possibly add every sub-community as a group on NodeBB. Is it currently possible to restrict visibility of certain forums to certain user groups in NodeBB? Would that be a reasonable use of groups in NodeBB?

    This is already possible using the groups and permissions system, it is exactly what it was designed for.

    Is it available in version 0.4 or in the latest commits on github? How can I add users to groups? Are there any docs for groups?
    Can user create his own group and add user to his own group and give them rights to write to the group or read-only?


  • Admin

    @dibu Right now only administrators can create groups, once created they can add users to those groups and set permissions from the control panel.



  • Thanks guys, it's awesome to hear that NodeBB can, in principle, handle this. I'll have a look at these embed plugins.

    By now, I think that the biggest challenge is actually just figuring out how to allow the main site to create new forums and groups via an API. Since groups already behave as I hoped this looks like a very cost-effective effort. So I suppose the actual question worth asking is... how far along are your plans for a Web API? :)

    I really appreciate how you keep things simple and focused.



  • @julian said:

    such a use case would be something we'd work closely together on. Please get in touch with me at julian@nodebb.org and we can talk specifics over email or G+ Hangouts. :)

    I'm also looking for a solution as in the first part of this topic. But I need some thing like self-organized groups. Where user can create his own group and add user to his own group and give rights to write topics and posts? Some kind of self-organized community.

    @julian can I also get in touch with you at julian@nodebb.org or G+ Hangouts if in need?



  • @baris said:

    @dibu Right now only administrators can create groups, once created they can add users to those groups and set permissions from the control panel.

    Are there any plans to add this kind of feature? Is it a lot of work?
    For example after user get some level of reputation he can create his own groups and invite other users to take part. But Admin also can delete all post/user/groups as needed.
    This can help to build some kind of self-organized community on top of NodeBB.



  • My feeling here is that a feature that lets users create groups and invite others goes a bit beyond the regular scope of a forum software - and the goal should always be to keep things as simple as possible.

    For my personal case, an API would probably be the best solution since my sub-communities on the main site will not just get their own forums and group - they'll get their own services on the main site in addition. In the long run, I'd be integrating the NodeBB forums seamlessly into the main site eventually (but that's a bunch of years down the road, so not an issue for today).

    @baris as far as I understand, you're looking for an extension to NodeBB that lets users do the group-creation and management inside NodeBB, right?


  • Admin

    Would be a plugin. Further details in email.



  • @julian said:

    Would be a plugin. Further details in email.

    What kind of plugin?


  • Admin

    Depends on your use case... most customisations to NodeBB aren't something that would be of use to most people.

    Feel free to contact me at the email above, if you're looking to commission us to help you build a plugin :smile:



  • Heyyy, all! First and foremost, I would like to take the time to introduce myself. I am Danielle and I am a part of the Convoe community which uses NodeBB. In regard to the website and the platform (NodeBB), I have a few ideas that I want to throw at you guys. I believe that NodeBB would benefit far more if the categories were a bit more organized using subcategories.

    I know a couple of people who have been doing some really great brainstorming. Many are interested in a feature that allows users to actually create their own subcategories within a category. I do not think that would be a bad idea, however, organization should be a top priority if that is the case. I feel like that concept could go either way – especially if the process isn't thorough!


  • Plugin & Theme Dev

    @KeepinItTech said:

    Heyyy, all! First and foremost, I would like to take the time to introduce myself. I am Danielle and I am a part of the Convoe community which uses NodeBB. In regard to the website and the platform (NodeBB), I have a few ideas that I want to throw at you guys. I believe that NodeBB would benefit far more if the categories were a bit more organized using subcategories.

    I know a couple of people who have been doing some really great brainstorming. Many are interested in a feature that allows users to actually create their own subcategories within a category. I do not think that would be a bad idea, however, organization should be a top priority if that is the case. I feel like that concept could go either way – especially if the process isn't thorough!

    That was and still is part of the vision we've had for a while. I could simply use tags, allow one tag per topic and manipulate via CSS. But ultimately, there needs to be some type of code change to complete the challenge.



  • @grumpi I realise I'm quite late to this particular party.But I have started work on a solution:

    https://github.com/mileswilson/nodebb-plugin-private-forum

    It basically works - you need to grant the user access to the permission to create their own forums, currently done by making a request to

    /api/promote_to_gold?user_id=<required_user_id>

    request has to come from an admin user. You'll then get a new button on the main navigation, which allows you to set up a new sub-forum, and designate who has access.

    Obviously very much a WIP - but getting there.


  • Admin

    Nice plugin :) Add that to our listing at https://community.nodebb.org/category/7/nodebb-plugins :)



  • @grumpi did you suceed with this approach using APIs?



  • @psychobunny I'm CEO of a project and we'll need some changes in header and footer, creating a child theme from persona.

    Can you tell me your the correct email for discussing a consulting? Thanks


  • Admin

    @felipeolcav thanks for your interest in NodeBB :)

    Please email sales@nodebb.org if you'd like us to build a custom solution for you.




Looks like your connection to NodeBB was lost, please wait while we try to reconnect.