What's next after v3?

NodeBB Development
  • If we did everything correctly, week immediately following a release should be quite quiet indeed.

    In reality, of course, that almost never happens. Bugs are discovered quickly as usage is expanded beyond the open beta group of forum admins.

    The question afterwards is what comes next. For a long time, we've operated on a system where we didn't have a long-running roadmap. Being a small team, our priorities were few, and easy-to-remember.

    For the first couple years, our priorities were feature-parity. After that, it was a race to profitability. We managed to reach that point with our hosted plans, and with help of custom development work. What followed was a rather long period of incremental improvements to NodeBB β€” build a better product, and the people will come. What we lacked was direction.

    By the time v1.19.x rolled around, we knew we needed to make a change. We needed to take a step back and take a closer look at what our priorities and values were. We had our first roadmap meeting last February, which culminated in our plan to release v2, and later v3.

    We plan to have another meeting in May, where we'll hold a brief retrospective and plan out our next year of development. While I can't make any big announcements just yet, I can at least share some maybes that we've discussed:

    Changes to topic thumbnails

    This is happening.

    Topic thumbnails were a minor feature added a very long time ago (might've been around v1, even). It hasn't gotten much love since, but we're looking to integrate it more. We updated the composer to better handle thumbs in v2, and we're working on integrating thumbnails into the Harmony theme as well.

    Whittling down technical debt

    My favourite phrase of the week. We've pledged to continue evolving the Read and Write API, and we're getting closer to the point where we can rename the APIs to better reflect their use. There's still a great many write operations still carried out by our socket.io implementation, so that will continue to be worked on piecemeal as we port those methods over to the Write API.

    Server-sent events

    The other half of potentially deprecating socket.io is to implement Server-sent events. Socket.io was quite popular when we first started NodeBB, but using the native built-in library is a more future-proof solution. We'll look into potentially going this route.

    Federation and interconnection

    πŸ™Š this idea's in its infancy, but...

    NodeBB being a piece of software that is installable and configurable by individual admins means we've already achieved half of the formula for federation. It's theoretically possible to hook NodeBBs together and share content.

    I've often said that Twitter is like shouting into the wind. Starting a forum is often like talking to an empty room. It's very possible we can take steps to change that.

    ACP revamp

    We like Harmony so much, we're turning our gaze towards the admin panel this time 😈

    Drop jQuery

    Ha ha, just kidding. Or am I?


    What do you want to see in NodeBB? What big ideas do you think we should pursue? Maybe we should just take a beat and fix more bugs instead, let us know πŸ˜„

  • @julian said in What's next after v3?:

    Federation and interconnection

    πŸ™Š this idea's in its infancy, but...

    NodeBB being a piece of software that is installable and configurable by individual admins means we've already achieved half of the formula for federation. It's theoretically possible to hook NodeBBs together and share content.

    I've often said that Twitter is like shouting into the wind. Starting a forum is often like talking to an empty room. It's very possible we can take steps to change that.

    Good show @julian ! thanks for the great work πŸ™‚

    I have to admit this part sounds excellent πŸ™‚ I hope there is an easy way to do it.

    We want to run a second forum using the same database, and I see this was a longstanding request here too... If I understood correctly, this sounds a better solution compared to the session-sharing-plugin... (or did I get it wrong? πŸ˜„ )

    https://community.nodebb.org/topic/13627/shared-login-between-multiple-nodebb-sites
    https://community.nodebb.org/topic/11337/log-into-multiple-nodebbs-once
    https://community.nodebb.org/topic/9053/multiple-forums-from-single-nodebb-instance
    https://community.nodebb.org/topic/10554/multiple-unrelated-nodebb-instances-in-a-redis-database

  • I think its good idea to keep in check deprecating npm modules, better rely on npm modules which have any maintenance and support , i personally hope that bugs which i discovered will be fixed and tor browser compatibility would be improved.

  • @julian said in What's next after v3?:

    Federation and interconnection

    πŸ™Š this idea's in its infancy, but...

    NodeBB being a piece of software that is installable and configurable by individual admins means we've already achieved half of the formula for federation. It's theoretically possible to hook NodeBBs together and share content.

    I've often said that Twitter is like shouting into the wind. Starting a forum is often like talking to an empty room. It's very possible we can take steps to change that.

    I was actually thinking about writing an ActivityPub plugin back in early 2022 or even earlier, but at the time there was no actually usable AP implementation in Node, and I the task of implementing all that seemed rather daunting - now activitypub-express seems decently mature and activity-kit seems to be a more modular approach (but is still rather early).

    So looking at it again, an ActivityPub integration seems actually doable, though. And it seems the protocol has some future ahead, as even existing giants in the social media space seem interested in it (Tumblr announced they plan on adding support some time ago and Meta has reportedly started working on a new text-based app related to Instagram that supports ActivityPub).

    Though there are certainly some usability questions - with the biggest one being IMO what will this kind of federation look to the outside considering the forum structure? That is, both between two NodeBB forums that have different categories and to outside software like Mastodon.

    For NodeBB the simple solution is to have topics or categories be able to follow similar objects in other instances and for user-specific federation just do notifications or something, but that offers a lot less freedom in federation that e.g. Mastodon has (since most would be admin-defined). Doing things properly here seems a bit harder...

    Also, there is the newer Bluesky ATProto which based on a quick look (so I'd welcome corrections if I didn't understand it) actually seems a bit less opinionated on some things, but on the other hand at this point (I mean, even once it properly launches) using it would almost certainly require defining a lot of NodeBB-specific stuff, so would probably be less interoperable.

    ACP revamp

    We like Harmony so much, we're turning our gaze towards the admin panel this time 😈

    There us of course User Experience, there is Developer Experience, but no one ever talks about the Admin Experience πŸ™‚

  • I probably will need to steep myself in Mastodon and other federated services first, see what works and see what doesn't. πŸ˜„

    Even before learning about Mastodon, the original genesis for the idea was a /world route that displayed topics from other NodeBBs (think like webrings, etc.)

    Deeper integration via AP is likely better than hand rolling our own bespoke protocol.

  • @oplik0 perhaps you and I should work more closely on what NodeBB+ActivityPub looks like πŸ‘€

  • Well, as it turns out, Discourse is already working on ActivityPub integration. Interesting!

  • Thanks for everybody's comments regarding federation and ActivityPub. I've been steeping myself 🍡 in the Fediverse for the past week and have been inspired πŸ˜„

    There is definite potential here.

    • I have started a Mastodon account for NodeBB
    • I started my own Mastodon server, because I obviously have nothing better to do with my free time
    • Have been thinking about how the forum architecture fits in with ActivityPub. Will need to read and research more on the protocol before I look into working on a proof-of-concept
      • Perhaps we can introduce a "statuses" feature for NodeBB, which would more closely align with how Mastodon works as a micro-blogging service
      • kbin is more reddit-like but also features compatibility with ActivityPub, it might be closer to what a forum is like (discrete topics vs. submissions).

    There is lots of excitement about federated apps within the fediverse, but outside of it, you don't hear much about it at all.

    It's very much an echo chamber of sorts, but I feel like the values and ethos behind federation in general aligns with NodeBB's.


    This whole exercise is less about federating with Mastodon, et al., but to allow for NodeBBs to communicate with each other. The million dollar question here is "how can we make starting a forum/building a community suck less"?

    ... although when I post about it again here, I'll likely use nicer words πŸ˜†

  • @julian in addition to the ActivityPub feeds ( found an rss to ActivityPub convertor that could be turned into a nodeBB plugin https://github.com/dariusk/rss-to-activitypub), another nice feature would be cross-server DM's/chats https://bifurcation.github.io/mimi-aim/draft-barnes-mimi-aim.html
    So much potential... πŸ™‚

  • barisB baris referenced this topic on
  • hi @julian , I believe passkeys will be the new standard for secure website/app access soon. Google has already started to implement this option several days ago. Will there be any addition to NodeBB?

  • Sounds like this is already achievable via 2factor plugin πŸ€” needs testing

  • @julian you would know that better, but I always thought that this will be the main way to enter a website, rather than a 2FA.

    At least, this is what Apple, Google and Microsoft are trying to achieve: https://www.theverge.com/2023/5/3/23709318/google-accounts-passkey-support-password-2fa-fido-security-phishing

    Here is a demo website, and I see "Sign in with a passkey" button. I believe this is what a lot of websites will use it for: https://www.passkeys.io/

  • Yes, you're right. Having the passkey used as the first and only factor would be what passkey is hoping to implement. It would necessitate some changes to the 2factor plugin, including the fact that it's no longer a second factor πŸ˜†

    It might also mean we split username and password fields ... @baris won't like that, he already doesn't like registration interstitials πŸ˜†

  • @julian said in What's next after v3?:

    Changes to topic thumbnails

    Hell Yes! I'm excited about this - we love thumbnails but the functionality has always been a little limited!

    Thanks for all the hard work team - I'm going to be putting 3.10 on my dev install this weekend.

  • The ActivityPub collaboraion idea is great.

    By the way is JQuery really used in NodeBB, or was that a joke? If it is, getting rid of it is a move in the right direction. Its just not necessary

  • @eeeee Hate to break it to you, but yes, jQuery is used in NodeBB. When we started NodeBB, the hard work to standardise and improve the JS ecosystem was only just beginning (or it had been in full swing for awhile, but hadn't shown any major results yet).

    Remember, back in 2013, Internet Explorer was still a thing. We needed to ensure compatibility with it back then 😬

    Removing it is a little harder than expected though, it's quite ingrained in the client-side code, heh.

    Its just not necessary

    That may be the case for new projects, but for us it's a little different πŸ˜…

  • We would essentially have to rewrite the frontend. It's not impossible but it is a larger undertaking, in addition to breaking any plugin that has a frontend using jQuery.

  • @julian said in What's next after v3?:

    Thanks for everybody's comments regarding federation and ActivityPub. I've been steeping myself 🍡 in the Fediverse for the past week and have been inspired πŸ˜„

    There is definite potential here.

    I think a forum variant of Mastodon would be wonderful. The one thing that seems to be missing from these "federated" options is something akin to Twitter's verification system. It seems to me that the larger the scope, the greater the need for verification.

  • @julian said in What's next after v3?:

    NodeBB being a piece of software that is installable and configurable by individual admins means we've already achieved half of the formula for federation. It's theoretically possible to hook NodeBBs together and share content.

    I've often said that Twitter is like shouting into the wind. Starting a forum is often like talking to an empty room. It's very possible we can take steps to change that

    Flarum is also currently looking into Federation, personally I'm both for and against it, at the end of the day it should come down to whatever forum admins want to do with their forum. But if this is something that does get developed it would be nice if Flarum and NodeBB could in some way work together a bit to make sure that their implementations are compatible (at least the core of it) so that it's something other forum software could also participate in (instead of only NodeBB or only Flarum).

    @julian said in What's next after v3?:

    Drop jQuery
    Ha ha, just kidding. Or am I?

    Please do, native JS has come a long way and jquery isn't really needed much anymore and it pretty much just adds to JS bloat unless your doing very specific things with it. Even if you can't completely get rid of it, maybe use one of the much lighter alternative versions of it?

    @julian said in What's next after v3?:

    Yes, you're right. Having the passkey used as the first and only factor would be what passkey is hoping to implement. It would necessitate some changes to the 2factor plugin, including the fact that it's no longer a second factor

    I would very much like to see PassKeys come to NodeBB, I was actually just looking into how feasible it would be myself a couple weeks ago. I don't think I have the knowledge required to do anything with it at the moment, but it'd be nice to have, even better if it's something that can be used in v3.


Suggested Topics