Skip to content

NodeBB Development

Stay tuned here to hear more about new releases and features of NodeBB!

3.5k Topics 21.8k Posts

Subcategories


  • Posts from the NodeBB Development Blog
    96 Topics
    778 Posts
    julianJ

    Occasionally, we will get asked whether there are any differences between our hosted service and the open source project.

    It is as though we are holding back some great features and only allowing our paying customers access them! Conversely, it could be assumed that because we are hosting the software for others, that we would somehow out of self-interest or for economic reasons, deliver an inferior version with limitations.

    I'd like to say upfront that this is not the case for NodeBB.

    When you use our hosted service, you receive the same great NodeBB software that you can get for free off of our GitHub repository.

    What we're selling is support, maintenance, upgrades, and peace of mind delivered by our world-class† support team.

    You definitely can host NodeBB on your own! We've strived for years to deliver a piece of software that runs lean and fast on minimal hardware, great docs (some contributed by other admins!) that help you get up to speed quickly, and a fantastic community that will help you if you get stuck.

    The reason I take this principled stand is simple — I think it's unfair when artificial limitations are placed on software just for the purpose of getting customers to pay more.

    We've seen all this time and time again:

    You can't install any plugin you want, just a select few from a small list You can only have X units (tickets, posts, etc) of whatever you're using You can only have X admins/owners You can't see any messages older than X days

    These limitations are all artificial, and serve to restrict the use of something to the bare minimum. Anything extra is — of course — available for the right price.

    We don't do that. We tell everybody that NodeBB is powerful enough to run huge communities, and we stand by it. We tell everybody that NodeBB is flexible enough to look and function however you want, and we stand by it.

    These are the real limitations we impose on our hosting service:

    Hard drive space for uploads are imposed by our upstream provider and are set, though we are happy to add additional drive volumes for a fee) We have soft "pageview" limits that any user on our hosting can exceed (in fact, many do). We set them purely as a benchmark for the point at which your NodeBB may slow down depending on the type of load that you get, and encourage dialogue to make sure that you're on the right plan (server resources, etc.) We do not allow shell access for security reasons (and if you needed it, you probably could self-host)

    So please do rest assured when I and others tell you that what you see is what you get. No more, no less. I'd rather everybody get to use the best of NodeBB, instead of serving a special feature-reduced version for others.

    † I'm going to go out on limb here and say that we're probably the most qualified people to maintain NodeBB. Feel free to disagree 😉

  • You have a cool idea about NodeBB? Post it here.

    798 Topics
    5k Posts
    crazycellsC

    when the forum is used as PWA, there is no easy way to navigate between pages...

    Yesterday, I was reading a post on the forum that mentioned another topic, I have encountered an issue when attempting to return to the original post. So, after reading the linked topic, I had to go to categories page and retrace my steps to locate the topic I was reading initially...

    Although this can be achieved by page control arrows on destop and mobile browsers, there is no easy way to achieve this on PWA... so I propose adding some page control buttons that appear at the bottom of the page when scrolled up. (maybe it can be integrated to post navigation bar but I believe those buttons should appear in all pages, not only in topics)

    Here is just a suggestion to distinguish them from other arrows...

    IMG_0029 copy.jpeg

    alternatively the arrows or rewind icons that YouTube uses can be used:

    IMG_0030.jpg

  • Found a bug? Why not make a bug report here?
    1k Topics
    7k Posts
    crazycellsC

    @solmak

    Thank you for spending time on this, that was fast!

    he is quite speedy :rofl: @baris is known to create a new plugin in 3 minutes of it being discussed in the forum... lol

    Link Preview Image How? · Issue #2 · NodeBB/nodebb-plugin-best-posts

    How did you make a plugin in 3 minutes?

    favicon

    GitHub (github.com)

  • Focused discussion related to ActivityPub integration in NodeBB

    27 Topics
    232 Posts

    @julian
    @angusmcleod
    I am excited for it and what we can accomplish this year. Thanks for initiating this 😊👍

  • Help Translate NodeBB
  • Execute Custom JS on Infinite Scroll

    10
    0 Votes
    10 Posts
    1k Views
    AlekseiA

    I've got the point. Thanks for all the help.

  • 0 Votes
    1 Posts
    214 Views
    X

    Is there any widget or plugin for document catalog tree

    like this
    01f33da0-9d81-455c-a1d7-a004970549f6-image.png

  • 1.16.0 Breaking Changes

    5
    2 Votes
    5 Posts
    1k Views
    julianJ

    We have received reports that after upgrading to v1.16.0, the amount of websocket connections is very high relative to pre-upgrade

    This is due to older socket.io clients (running on version 2) attempting to connect to the new socket.io 3. These protocols are incompatible, and so the connection is rejected, and NodeBB was configured to try indefinitely.

    This is ok. Over time, as your users close their browser windows (or refresh), they will automatically start using the latest version, and socket usage will return to normal levels.

    If you are worried about the excessive traffic, you can configure a nginx condition to drop requests with the query string ?EIO=3. Please see the issue linked above for more information.

  • 1.15.0 Breaking Changes

    23
    3 Votes
    23 Posts
    3k Views
    A

    @baris Thanks, that was this ! This problem is solved now. 🙂

  • 0 Votes
    1 Posts
    297 Views
    data-dataninjaD

    We are hiring plugin developers to develop custom plugins

    Also highly preferred if you have experience in making the nodeBB into an ios/android app

    contact me at

    [email protected]

    or discord (preferred)
    dgTroy#0996

  • Testing stage in GitLab pipeline

    4
    0 Votes
    4 Posts
    427 Views
    oplik0O

    NodeBB tests require database setup beforehand.
    I recommend just checking out how NodeBB currently does it with GitHub Actions or how it was done earlier with TravisCI

    I haven't used GitLab CI much, but I think the services part is pretty similar to GitHub Actions - there are some setup differences (per job variables instead of per service env for example), but I think just adapting the service configuration to GitLab syntax will be better than the bash based install from TravisCI

  • NodeBB v1.15.4 released!

    Moved
    1
    6 Votes
    1 Posts
    2k Views
    E

    We've released v1.15.4. Check out our GitHub page for fixed issues:

    Link Preview Image Release v1.15.4 · NodeBB/NodeBB

    Node.js based forum software built for the modern web - Release v1.15.4 · NodeBB/NodeBB

    favicon

    GitHub (github.com)

  • 0 Votes
    3 Posts
    500 Views
    shayanS

    tnx, quess you are right. now I have to scan the whole source code for any use of database 😢

  • 0 Votes
    1 Posts
    219 Views
    Fairuz AfdhalF

    by modify user's avatar I meant that to put glow effects behind their avatar or something similar, I saw this post https://community.nodebb.org/topic/975/request-mod-owner-overlay-on-posts, is it possible now?

  • Hiring: NodeBB developer to customize themes

    Moved
    1
    0 Votes
    1 Posts
    273 Views
    S

    Hey,

    We are looking to hire someone to do some custom theme work with either the persona or material theme for one of our clients. Please email me sterling [at] luceosports [dot] com with the subject 'NodeBB Development' if interested.

    Thanks,
    Sterling

  • 6 Votes
    10 Posts
    1k Views
    barisB

    Release rc.4
    https://github.com/NodeBB/NodeBB/releases/tag/v1.15.0-rc.4

  • 0 Votes
    2 Posts
    311 Views
    G

    Here a mockup how it could look like on nodebb.org forum:

    who_can_see_this_01.png

    List unfold:
    who_can_see_this_02.png

  • Issue connecting to Elasticache Redis

    4
    0 Votes
    4 Posts
    601 Views
    D

    @baris it seems like there's no error logs coming. It's just timing out silently after ~1min.

  • How to image carousel based on user uploads?

    4
    1 Votes
    4 Posts
    430 Views
    gotwfG

    @greyteapot You can drop that widget into different boxes, iirc. Mayhaps worth exploration 🤔

  • a question about syntax of benchpressjs

    2
    0 Votes
    2 Posts
    284 Views
    PitaJP

    We don't have any built in conditional support. There's the @first helper which works for when you only want to check if @index == 0. To do this, I'd suggest adding a helper for whatever condition you need.

  • the issue of benchpressjs

    3
    0 Votes
    3 Posts
    579 Views
    T

    Thanks for the help and sorry if the "terrible" word hurts your feeling, I didn't mean to.

    @PitaJ said in the issue of benchpressjs:

    First off, calling their work "terrible" is a really bad strategy if you're trying to get help from someone. I'll still help, because I like being helpful, but please don't act this way in the future.

    #1. about Interpolation, benchpressjs does NOT allow to retrieve array by index, like this:
    <h1>{localNews.topics[0].title}</h1>

    If you're trying to just get a specific single element of an array, you just put the number as the property name, like so:

    <h1>{localNews.topics.0.title}</h1>

    I see this isn't documented, so I'll open an issue to document this behavior.

    #2, about helper function, I created one like this:
    Benchpress.registerHelper('getByIndexInArray', function (arrayData, i) {
    return arrayData[i];
    });

    and call this helper function like this:
    <h5>{getByIndexInArray(localNews.topics, 1)}</h5>

    But it seems like the index "i" can not be passed into the helper function, since in this helper function, I always got "i" as undefined.

    Your helper is correct, it's how you're calling it that's the issue. Benchpress doesn't have numeric literals, it only has string literals. Putting just 1 in there is telling Benchpress to look up the property "1" on the global object, and call the helper with that value (which is undefined in your case). Your helper will work if you call it like this instead:

    <h5>{getByIndexInArray(localNews.topics, "1")}</h5>

    I will also add a note to document this behavior in the paths and helper section.

    Issue is here: https://github.com/benchpressjs/benchpressjs/issues/89

  • How to work with the postData-Object?

    Solved
    2
    0 Votes
    2 Posts
    463 Views
    julianJ

    @pasib when you concatenated the object, it got stringified.

    Try console.log('test', postData); 🙂

  • Get list topic sorted by votes

    3
    0 Votes
    3 Posts
    364 Views
    we00054643W

    @julian Yup I know. But I want to code new to understand how to do it

  • Best Way to Customize the Navbar?

    Moved
    10
    0 Votes
    10 Posts
    2k Views
    Sabeel IjazS

    On ACP

    goto Appearance tab

    add custom javascript like in following example.
    Custom Navbar

  • 0 Votes
    3 Posts
    465 Views
    julianJ

    @PitaJ is correct, the option is called the "tags whitelist", and you can decide which tags to allow, and do so on a per-category basis