Feeling the need for speed?

  • Admin

    Ever since the very first commits, a primary focus of NodeBB has been speed. We set out to provide a feature-rich forum without the typical reduction in speed commonly associated with long-running projects. While we didn't know at the outset whether this was possible, there are a few reasons we prioritised speed:

    1. Technical debt accumulates over time, and we try to be active in reducing it
    2. Quite selfishly, every second longer it takes for NodeBB to build, affects us ten-fold simply because we build and re-build NodeBB hundreds of times per day.
    3. A fast forum is a forum that is a joy to use. The worst thing we can show to a user is nothing at all.

    Click here to see the full blog post

  • nice, I still would like to see the option to no longer rely on cdn's for css (bootswatch), fonts (google) etc.

    the option to easily switch those to selfhosting would be great especially with http2

  • Admin

    Ah, thanks for the reminder, I meant to mention that in the blog post!

    The fact that Persona relies on the Roboto font itself is something @psychobunny will address... in that we won't require a third-party font anymore, in the next theme...

    Edit: Done. Our users in China will like that... them working around the Google Fonts issue has been a primary source of complaints from that region!

  • Congratulations! Here is what I see regarding speed:

    I've been testing the three main competitors to pick from - being on a trip with 3G (more 2G) coverage -, where m.facebook for e.g. loads in few minutes. The circumstances clearly picked the absolute winner, that's how I ended up here. NodeBB loads almost instantly and after the first page is loaded, the rest feels like a mobile-app; even on extremely slow mobile networks. Later, I found some details that could be addressed, mostly for SEO purposes.

    This forum is loading four CSS resources, two of them tiny (almost nothing) when Roboto font was just mentioned by @phit and @julian (drop). These three could be combined and the main, stylesheet CSS, could probably be reduced to under 200KB. I understand, the plugins are loading those tiny css resources but could they be combined into one single stylesheet?

  • Admin

    The railscasts.css stylesheet is used by Markdown, and not core, so we defer loading of it since it's not used unless you're navigating to a topic with syntax highlighting, which is... relatively rare.

    What I'd want to research is whether we can divide up our mobile-only stylesheets into separate assets.

  • Do you plan to implement second layer caching (to be used in case of traffic surge)?


  • Admin

    @vstoykov additional caching is recommended to be handled by third party systems like nginx or varnish.

  • Community Rep

    It's ironic that you chose a picture of drifting cars as the banner... a sport not exactly designed for speed :trollface:

    But kudos to the speed improvements!

  • Admin

    @bri They're fast in my mind 😢

  • @julian said in Feeling the need for speed?:

    @vstoykov additional caching is recommended to be handled by third party systems like nginx or varnish.

    I am familiar with that (nginx serving static content).

    But I mean caching of the dynamic content for non-logged-in users.

    Nginx need a cookie to distinguish between logged-in and not logged-in users (because otherwise it would cache personalized dynamic content).

  • Admin

    @vstoykov Actually, now that you mention it, we do already do some degree of caching for API returns such as topic and user data retrievals 😄



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