Skip to content

Using nodebb as a publishing destination, posting after git push?

  • Bear with me, this is a bit of a perversion of forum software to use it more as a CMS.
    I want to create an active community. You need to write a lot for that to happen. I do write a lot, but my style is to create a highly connected graph of small thoughts (aka digital garden, aka zettelkasten).

    My ideal workflow is that I have lots of .md files which link to each other.

    I want to publish those to nodebb, as top post on a thread. @phenomlab you already use nodebb instead of a blog, after trying software that was custom-build for blogs (ghost) and not finding it better than nodebb posts! This is very similar, but I want to publish/update lots of posts at once.

    Ideal workflow: I have lots of md files on my local machine. I update them as I like. When I’m ready, I do a git push or similar, and all content appears/gets updated on nodebb.

    This is a perversion: using forum software as a CMS.

    My question is: is this doable? Worth doing? Would I bump into issues in the future if I do this?

  • @qwinter I wouldn’t use git push for this unless you are specifically looking for version control. I’d personally use the NodeBB API to do exactly this. I have some working code I can share to assist in this process. Essentially, you could just create your own RSS feed, and have NodeBB pull from that directly.

    The code requires some PHP and the SimplePie library - have a look at this

    Something similar I did when using Flarum. If you’d like an idea of how effective this can be, ask @JAC who I’ve written various customizations for over the years for sites that he’s run previously.

  • @phenomlab wow, no surprise you had thought of this. Yeah I want to keep versions but of course I can do that while still pushing things to an RSS feed.

    Will ask @JAC , thanks for the idea and potentially the scripts!

    Unrelated: I like this at the bottom of the post:

    Referenced by
    phenomlab phenomlab

    Which plugin is that?

  • @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.

  • Nodebb design

    Solved General
    1 Votes
    2 Posts

    @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.

  • SEO and Nodebb

    2 Votes
    2 Posts

    @Panda It’s the best it’s ever been to be honest. I’ve used a myriad of systems in the past - most notably, WordPress, and then Flarum (which for SEO, was absolutely dire - they never even had SEO out of the box, and relied on a third party extension to do it), and NodeBB easily fares the best - see below example

    However, this was not without significant effort on my part once I’d migrated from COM to ORG - see below posts

    And also

    It was painful to say the least - as it turns out, there was an issue in NodeBB core that prevented spiders from getting to content, which as far as I understand, is now fixed. SEO in itself is a dark art - a black box that nobody really fully understands, and it’s essentially going to boil down to one thing - “content”.

    Google’s algorithm for indexing has also changed dramatically over the years. They only now crawl content that has value, so if it believes that your site has nothing to offer, it will simply skip it.

  • 0 Votes
    1 Posts
    No one has replied
  • 3 Votes
    13 Posts

    @DownPW Hmm - it’ll work with iFramely (locally hosted), or you can use the below string to embed using

    Watch (?:<a.*?)?(?:https?:\/\/)?(?:www\.)?dailymotion\.com\/video\/([a-zA-Z0-9_-]{4,11})(?:.*?\/a>)? Replace <div class='embed-wrapper'><div class='embed-container'><iframe src='//$1' frameborder='0' allowfullscreen></iframe></div></div>


  • NodeBB vs Flarum for a non developer

    Solved General
    10 Votes
    17 Posts

    @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 ?

  • 3 Votes
    12 Posts

    @cagatay you’ll need to define this in the body tag (or another element if you want greater or more granular targets) - for example

    body { font-family: "Poppins"; font-size: 16px; }

    Essentially, you use the font-size CSS directive.

  • 0 Votes
    3 Posts

    @phenomlab many thanks Mark 😁.

  • 3 Votes
    9 Posts

    @Sala Yes, I personally use Edge. Hated Internet Exploder (misspell intentional) but seeing as Edge is Chromium and Webkit backed, it works for me.