Skip to content

Nodebb design

Solved General
2 2 1.1k 1
  • When I first thought on the topic of how I would design a forum, I envisaged a mostly JS front-end app, using the back end to access the Database.
    That has some advantages and disadvantages. One negative is not being so good for SEO as more Server side rendered forums, if web crawlers dont run the JS to read the forum.

    How Nodebb builds its pages is different than I might have guessed. Its heavily reliant on Templating and CSS.

    Anyway before getting to that, I have been looking at how Nodebb builds its pages.

    On Nodebb forum one of the devs said
    The “read api” is used by the NodeBB frontend when loading pages
    The “write api” is preferred for server-to-server interactions.

    I asked for clarification on what server-to-server interactions might be?
    That part of my question was missed, can anyone add some explanation to help me understand?

  • When I first thought on the topic of how I would design a forum, I envisaged a mostly JS front-end app, using the back end to access the Database.
    That has some advantages and disadvantages. One negative is not being so good for SEO as more Server side rendered forums, if web crawlers dont run the JS to read the forum.

    How Nodebb builds its pages is different than I might have guessed. Its heavily reliant on Templating and CSS.

    Anyway before getting to that, I have been looking at how Nodebb builds its pages.

    On Nodebb forum one of the devs said
    The “read api” is used by the NodeBB frontend when loading pages
    The “write api” is preferred for server-to-server interactions.

    I asked for clarification on what server-to-server interactions might be?
    That part of my question was missed, can anyone add some explanation to help me understand?

    @Panda said in Nodebb design:

    One negative is not being so good for SEO as more Server side rendered forums, if web crawlers dont run the JS to read the forum.

    From recollection, Google and Bing have the capability to read and process JS, although it’s not in the same manner as a physical person will consume content on a page. It will be seen as plain text, but will be indexed. However, it’s important to note that Yandex and Baidu will not render JS, although seeing as Google has a 90% share of the content available on the web in terms of indexing, this isn’t something you’ll likely lose sleep over.

    @Panda said in Nodebb design:

    The “write api” is preferred for server-to-server interactions.

    This is mostly based around overall security - you won’t typically want a client machine changing database elements or altering data. This is why you have “client-side” which could be DOM manipulation etc, and “server-side” which performs more complex operations as it can communicate directly with the database whereas the client cannot (and if it can, then you have a serious security flaw). Reading from the API is perfectly acceptable on the client-side, but not being able to write.

    A paradigm here would be something like SNMP. This protocol exists as a UDP (UDP is very efficient, as it is “fire and forget” and does not wait for a response like TCP does) based service which reads performance data from a remote source, thus enabling an application to parse that data for use in a monitoring application. In all cases, SNMP access should be “RO” (Read Only) and not RW (Read Write). It is completely feasible to assume complete control over a firewall for example by having RW access to SNMP and then exposing it to the entire internet with a weak passphrase.

    You wouldn’t do it (at least, I hope you wouldn’t) and the same ethic applies to server-side rendering and the execution of commands.

  • phenomlabundefined phenomlab marked this topic as a question on
  • phenomlabundefined phenomlab has marked this topic as solved on

Did this solution help you?
Did you find the suggested solution useful? Support 💗 Sudonix with a coffee
If your organisation needs deeper expertise around infrastructure, security, or technology leadership, learn more about Phenomlab Ltd. Many of the deeper technical guides behind Sudonix are published there.

Related Topics
  • Bug in Nodebb route when clicking title

    Moved Configure nodebb
    3
    2 Votes
    3 Posts
    1k Views
    Ah silly me, thanks for finding that!
  • Email validation NodeBB

    Bugs nodebb
    21
    3 Votes
    21 Posts
    8k Views
    @Panda said in Email validation NodeBB: Did you configure that as a custom change to the usual quote icon. How do you do that? I notice on NodeBB site its a solid blue quotes Yes, I changed it. NodeBB by default users the free font awesome library whereas I use the pro (paid) version SDK have access to a wider set of icons, and at different thicknesses etc. The change of colour is just simple CSS.
  • Header Menu After Upgrading V3.1.1

    Solved Customisation header nodebb
    2
    1
    2 Votes
    2 Posts
    1k Views
    @cagatay this relates to a change the css classes used for the brand header meaning it will now float to the left instead of right. If you’d like to retain the original behavior, you can add this css class [data-widget-area="brand-header"] { justify-content: end; display: flex; } Further information here https://community.nodebb.org/topic/17090/manual-build-a-custom-header-in-harmony/19?_=1684069325296
  • 12 Votes
    47 Posts
    14k Views
    @dave1904 just coming back to this thread as @DownPW and I both experienced issues with other plugins today, and the fix was to use the plugin ordering in the ACP and move the Harmony theme to the very top so it comes before everything else in terms of other plugins. It might be worth at least trying this to see if it gives you a result rather than the previous bulldozer approach. Thinking about it, the previous fix I proposed is along the same lines and disabling plugins does in fact change the order when they are enabled again, so this is definitely worth a try. Let me know how you get on.
  • Fresher in Nodebb install

    General nodebb
    24
    15 Votes
    24 Posts
    9k Views
    @Hari I’ve been reading a lot about APO. Looks impressive.
  • NodeBB v2.4.0

    Solved General nodebb version error
    3
    1
    2 Votes
    3 Posts
    1k Views
    @phenomlab As always…Thank you. Worked for me.
  • NodeBB vs Flarum for a non developer

    Solved General
    17
    10 Votes
    17 Posts
    5k Views
    @marusaky That’s really easily done. I think the docs need updating for the latest release. Did you land up on the 18.x train ?
  • [NODEBB] Reply Button/arrow answer

    Solved Customisation css nodebb
    25
    4
    4 Votes
    25 Posts
    10k Views
    Topic open https://sudonix.com/topic/207/nodebb-help-for-my-custom-css