Skip to content

Nodebb design

Solved General
  • 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? Why not buy me a coffee? It's a nice gesture, and a great way to show your appreciation 💗

Related Topics
  • Modify the tagging behavior in NodeBB

    Locked General
    11
    3 Votes
    11 Posts
    375 Views

    For anyone else following this thread

    https://community.nodebb.org/topic/17402/change-in-reply-to-xxxx-text

    And

    https://github.com/NodeBB/NodeBB/commit/f2152953cddd3247746ef393516b0a53ba7750a4

  • Nodebb 3.2.0

    Bugs
    20
    2 Votes
    20 Posts
    662 Views

    @crazycells yes, I’m aware of that. Need to fix

    EDIT- fixed. Caused by the same CSS that is used to absolutely position the “verified” group badge in the posts view. Amended this CSS so that is specifically targets the post stream as below

    li[component="post"] a[href*="/groups/verified"] { position: absolute !important; left: 8px; z-index: 2; margin-top: 1px; border-radius: 999px !important; line-height: 14px; display: block; height: 22px; margin-left: 0px !important; }
  • 2 Votes
    2 Posts
    127 Views

    @dave1904 that’s a really good point actually. I know it was there previously on Persona, but you’re right - no such function exists on harmony.

    However, putting something in place to mimick the behaviour of Persona won’t be hard from the js standpoint, although I wonder if perhaps we should ask the NodeBB developers is this feature was overlooked?

  • Issues with 2nd NodeBB installation

    Solved General
    22
    3 Votes
    22 Posts
    1k Views

    @cagatay yes, that will be fine. Just watch for potential caching conflicts as you will have two sites writing to the one instance of iframely.

  • NodeBB v2.4.0

    Solved General
    3
    2 Votes
    3 Posts
    330 Views

    @phenomlab As always…Thank you.

    Worked for me.

  • Bootstrap Version

    Solved Customisation
    8
    5 Votes
    8 Posts
    449 Views

    @phenomlab That will be nice once they have completed that. It will be interesting to see how long that takes. So for now I will use custom css to make it look the way I want. Frameworks just make things a little faster. Thanks @phenomlab

  • Nodebb as blogging platform

    General
    10
    5 Votes
    10 Posts
    759 Views

    @qwinter I’ve extensive experience with Ghost, so let me know if you need any help.

  • Discord Login - OAuth2 - NodeBB

    Solved General
    32
    11 Votes
    32 Posts
    3k Views

    @Galaxian hi, and welcome to Sudonix 👍
    Can you check your config.json file and ensure that your forum URL doesn’t have a trailing backslash or forward slash in it ? This was the issue @Sampo2910 had.