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
  • Composer Zen icon?

    Solved Configure nodebb
    8
    1
    2 Votes
    8 Posts
    2k Views
    @DownPW exactly. Not really a new concept, and in all honesty, not something I’ve ever used. If you consider the need to add links and references, or citations, you’d need to be able to see other parts of the screen!
  • 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 as blogging platform

    General blog
    10
    5 Votes
    10 Posts
    5k Views
    @qwinter I’ve extensive experience with Ghost, so let me know if you need any help.
  • 0 Votes
    5 Posts
    2k Views
    @qwinter this particular site uses the code I wrote if you want to see it in action. It’s a information and intelligence gatherer I designed for collecting various information security articles from around the globe and consolidating them in one place. Essentially, each “post” is in fact generated by the script, and the NodeBB API. https://hostrisk.com/
  • is "night mode" shifting the forum several pixels up?

    Solved Configure nodebb
    8
    4 Votes
    8 Posts
    2k Views
    @crazycells hmm. Good point. I actually use my own version of the dark mode plugin, so not entirely sure. However, I think the CSS is probably the same. I’m not at my PC currently but can check and advise later.
  • [NODEBB] Help for my custom CSS

    Solved Customisation nodebb css bugfix
    257
    49 Votes
    257 Posts
    131k Views
    @cagatay sorry for late response. This looks too be one of the widgets, and I’m wondering if you have custom code that targets this. Had this recently happened after an upgrade or other changes?
  • NodeBB Blog Comments

    General nodebb blog
    3
    1 Votes
    3 Posts
    1k Views
    @kurulumu-net Not specifically, but you should review this post from the very large thread as it will save you a lot of time. There’s significant customisation on the Ghost side of things, but not in NodeBB https://community.nodebb.org/post/86022
  • nodebb dropdown menu

    Solved Configure nodebb
    5
    1
    0 Votes
    5 Posts
    2k Views
    @phenomlab said in nodebb dropdown menu: @kurulumu-net You set it like the below example taken from this site [image: 1637939951821-aae36790-3257-4bb2-ad5a-0d744309876a-image.png] Which presents this [image: 1637939983445-77f47260-2941-4afe-9614-8e17dcfc8c19-image.png] Very interesting… I actually thought this wasn’t possible, as I remember it being asked in the NodeBB forum. Is this something new that’s been implemented? I’ll 100% be doing that when I’m on the laptop over the weekend.