Co-Founder (NodeBB) | Husband š¤·āāļø and Dad š to three | Rock Climber š§āāļø | Foodie š„ | Conductor šµ | Saxophonist š· ā
Small teams craft better code. šØš¦ Made in Canada šØļø Federating NodeBB with funding from NLNet ā„ļøšŖšŗ
Public Key
npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm Profile Code
nprofile1qqsd07yj0wc3sl50hngv7j5w49xjarjf3m8u5wevfuurj2n2e3vkn4cpz4mhxue69uhhyetvv9ujuerfw36x7tnsw43qz9thwden5te0wfjkccte9ekk7um5wgh8qatzaen27f
Show more details
Published at
2026-08-17T13:58:20Z Event JSON
{
"id": "5f35a029ccbfc51ee962ab39fc4918ecf12824303c80d3b22fb931a732798336" ,
"pubkey": "d7f8927bb1187e8fbcd0cf4a8ea94d2e8e498ecfca3b2c4f38392a6acc5969d7" ,
"created_at": 1786975100 ,
"kind": 0 ,
"tags": [
[
"proxy",
"https://community.nodebb.org/uid/2",
"activitypub"
],
[
"client",
"Mostr",
"31990:6be38f8c63df7dbf84db7ec4a6e6fbbd8d19dca3b980efad18585c46f04b26f9:mostr",
"wss://relay.ditto.pub"
]
],
"content": "{\"name\":\"julian\",\"about\":\"Co-Founder (NodeBB) | Husband š¤·āāļø and Dad š to three | Rock Climber š§āāļø | Foodie š„ | Conductor šµ | Saxophonist š·\\nā
Small teams craft better code.\\n\\nšØš¦ Made in Canada\\n\\nšØļø Federating NodeBB with funding from NLNet ā„ļøšŖšŗ\\n\",\"picture\":\"https://community.nodebb.org/assets/uploads/profile/uid-2/2-profileavatar-1738544541106.jpeg\",\"banner\":\"https://community.nodebb.org/assets/uploads/profile/uid-2/2-profilecover-1649468285913.jpeg\",\"nip05\":\"[email protected] \",\"fields\":[[\"Website\",\"https://nodebb.org\"],[\"Location\",\"Toronto, Ontario\"],[\"Preferred Editor\",\"Visual Studio Code\"]]}" ,
"sig": "42ea9e2227727200196e05c5b282f09a9c82592d4261fb1e1f905db3b951a4cd6f936071b0e8c4381e80520c3d990cf5f96accfd758d48475d602c5b81602f20"
}
Last Notes npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] yes! Kelowna is great. Didn't they evaluate it š¤ npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian Just a quick note for NodeBB admins to update to v4.14.4 as there was a regression identified for versions v4.12.0 to v4.14.3 where federation was broken between NodeBB and Mastodon instances with authorized fetch enabled. npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] "hey bud, can I work in?" npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] that sucks! I hope something turns around for you 𫤠you'll be missed. npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian Hi @[email protected] ā we're going live in 10 minutes :eyes: npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] @[email protected] people were adept at writing PR speak before LLMs, they're just able to put even less effort into it now. Sent by my meat brain npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] thanks, and if I'm presenting (which is up to you I think!) do I have to buy a ticket to FOSSY too? npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] I still don't understand which two days are FediCon? npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] probably not, that instance is hosted on a potato server on purpose so I am incentivise to keep the code lean. It happens occasionally š
npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @AaronZockt this is now merged for v4.11.0 npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] hi! Sorry to say that is another Julian š Didn't know there were so many of us! npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] yeah that's fair! On the other hand, I absolutely cannot make weekends. You win some you lose some, eh? npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] that is a very good question, I'd also like to know, heh! We ended up finding ours through Facebook, actually. Either it was a hyper-local group (for the neighbourhood we live in), my city's dads group, or one of my wife's mom groups, but it was mainly just blind luck. npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @AaronZockt would a user toggle to "hide read notifications" work? So they don't show up at all in the UI? npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] feel free to come post at activitypub.space instead. It's fully two-way federated and hosts lots of interesting ActivityPub discussions. npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] might I suggest NodeBB? š
We're fully federated and have no plans to let AI run rampant all over our codebase. npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian Hey @AISS, what is the intended effect of logging in via Nostr? NodeBB is unable to post to a nostr relay at present. npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian I have helpfully told the reporter that they should forward this very important vulnerability report to the administrators at evil.com. npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian What, I don't even... https://community.nodebb.org/assets/uploads/files/1773070912071-3a5f3d0e-edbe-4134-b0e2-4cdbd034f916-image.jpeg npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] ooof! How did that happen? npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian ... āļø welp, that mention didn't work lol. Looks like I mentioned the wrong user. npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @Anthony. ah that makes sense, I'll have to take a look and see. The frontend isn't aware of whether a category is federated or not so this might take a little bit of effort. npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian Hey @johnackerman, is this happening repeatedly to users, or just one-off sessions from before the upgrade? npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] a Tombstone with a context makes sense, a replies collection is more of a grey area. npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] I had no idea this existed, I have a good idea that likely qualifies. Time to apply for the next round..... npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] well, that's nice of you :blush: npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] I'll be at the gym. I won't bother watching. If he falls people will make enough noise that I'll know what happened š I'd rather professional rock climbers climb rocks, but I am a simple man. npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] if it's healed over then it's time to ditch the coverings, imo npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian So, auto belays. npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] that's fair, and something we consider carefully. We might be building on js but NodeBB has a very small footprint because we take pride in prioritizing speed and efficiency. Loading community.nodebb.org, 94 requests, 4.27mb. Loading meta.discourse.org, 274 requests, 11.12mb. phpBB wins though, 68 requests, 1.25mb 𤣠Still, we try. Also our pages are statically generated, and we are PWA if you prefer. You can disable all that if you like. npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] I would recommend NodeBB as it is a current generation, maintained forum softwar with a healthy plugin ecosystem and responsive developers (:raising_hand:) NodeBB also talks to the Fediverse š npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] would be interested in joining. NodeBB is a good alternative to group discussions that federates as well. npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @zephyr99 once you git clone the repo, you can just execute git reset --hard 4.7.1 to manually go back to that specific version. npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian https://webkit.org/blog/17660/introducing-css-grid-lanes/ Hey @omega, did you see this announcement? With this supported, maybe we'll finally get around to making that NodeBB theme you want where every page (recent, unread, popular, world, etc.) is on a single page :laughing: npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @thisismissem fwiw NodeBB does support emoji reactions, just not federating them. There's a plugin for it. npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian So @[email protected] , does your FEP capture the entirety of emoji reactions on the fediverse? :smile: @[email protected] npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] is there an FEP for it :nerd_face: npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian Hi @TomÔŔ-Nesrovnal-0, can you share any logs when you try to start NodeBB? I know you said that there is no error, but what happens when you try to run ./nodebb dev? It could be that your NodeBB is still running or hanging. If NodeBB is the only node.js software running, you can execute pkill -9 node to indiscriminately kill off every Node.js process. If you have other services running, then run ps aux | grep node, see which one is NodeBB (look for loader.js and app.js), and kill -9 those process IDs. npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian Did you know you needed this? Apparently so. It's been a long road. https://bsky.app/profile/punsultant.bsky.social/post/3m6hraqf3ts2o npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @Kadir-Ay-0 not really, no. What are you trying to achieve with limiting the number of sessions? npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @Konrad-Moskal yes, we're open to those updates to the OpenAPI spec. If you use LLMs to write your commits we kindly ask you utilise the Assisted-By line in your commit messages. npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @Konrad-Moskal okay, best of luck getting the schema to load :slightly_smiling_face: npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian I asked ChatGPT for thoughts (because I literally have no idea what to say), and it theorized that openapi-generator-cli was pointed to the file topic_id.yaml directly. That would indeed cause issues because the file topic_id.yaml isn't meant to be loaded individually. You need to point your tool at either read.yaml or write.yaml, which are the OpenAPI schema entry points for the two APIs NodeBB exposes. npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian Hi @Konrad-Moskal, this is the docs entry for that route: https://docs.nodebb.org/api/read/#tag/topics/paths/~1api~1topic~1{topic_id}~1{slug}~1{post_index}/get It seems to resolve ok here. In that file (topic_id.yaml) there is - $ref: ../../components/schemas/TopicObject.yaml#/TopicObjectSlim which seems to be where your parser is tripping up. I am not certain what the issue is, because from that working directory, that relative path does resolve to the file in question. Actually, I am not sure why it is looking for components/schemas/TopicObjectSlim, because the path is components/schemas/TopicObject.yaml#/TopicObjectSlim npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] Piefed and Lemmy are link aggregators, but a couple of those next-gen forums (notably, @[email protected] ) have joined the fediverse. Different strokes for different folks, but sometimes a good honest forum UX is the ideal path forward š cc @[email protected] npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] Vancouver again I assume? Also are you sure you want to ride AC hahaha npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] oooh interesting...! And a little teaser at the end too I donāt believe software exists today that follows all these beliefs, but I found an established community software project willing to try with me. Fifteen years after I joined a couple of Canadian entrepreneurs to ride a wave of ānext-generationā community software, I believe itās time to take another big swing. Who were these Canadian entrepreneurs? What's the next big swing? It sounds interesting! npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] Let's go Blue Jays let's go woo woo! npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] have fun! Sorry I can't make it š npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] Ghost? NodeBB? Just to name a couple š
npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] I sent a follow, it has gone unanswered (or more likely it received an answer it didn't understand). Ah c'est la vie. npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] nice job! Congratulations on the release š now you must maintain it for free forever. npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] how does RFC9421 differ from Mastodon's existing support for HTTP Signatures? Does this mean you're moving away from cavage-12? That's important to know, and if you're looking for an implementor to handle double-knocking, that is something I can put together for you.. we don't do it at current. npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian tl;dr ā you can now find remote categories and see your tracked/watched categories in /world. A new alpha version of NodeBB was tagged today: v4.3.0-alpha.3. The biggest change is to the /world route, which up until now showed a list of topics from outside of the local NodeBB instance. New to this alpha release: A quick search widget was added, allowing you to directly search for remote categories. There is no need to navigate to to the search page to discover new categories. Your list of tracked and watched categories will show at the top of the page. "Tracking" and "Watching" categoriesāboth local and remoteāis how content discovery happens in NodeBB. Tracked categories will have new content show up in the "unread" page, while watched categories take that a step further and notify you when new content is posted. Tracking and watching a category will tell NodeBB to subscribe to that remote community for updates At this time we're continuing to look for stability issues with the remote category integration. We'll be working on QoL fixes as we move into the beta phase this/next week. https://community.nodebb.org/assets/uploads//files/1744055639036-60bd030a-7626-4629-9ac4-8ddd2bd34f3f-image.png https://community.nodebb.org/assets/uploads//files/1744055651224-0a11627f-65cc-477b-8c33-49f1ea6de53f-image.png npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] considering that these two FEPs have a decent amount of overlap I think there is enough justification for a merging. I know I did argue for granularity, but the idea of backfill and that of representing a context's objects in a collection are pretty much identical from an implementor POV. One describes behaviour the requestor, one describes behaviour of the recipient. npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian Considering that the implementors of 2931 are closely aligned at this point, I am wondering whether there is enough of a reason for us to move towards a separate and distinct type for future proofing, instead of using OrderedCollection. Otherwise we'll always have a situation where we need to support the case where a resolved conversational context is a collection. Secondly, it would allow you to remove the drawbacks section significantly... right now it's over 50% of the FEP, which makes it rather hard for me to convince someone to implement š Are you considering an additional FEP for backfill, or is this intended to be it? npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian Within the context of threaded discussions, contexts (aka "topics", "posts", "threads", etc.) are associated with an audience (aka "forum", "category", "community", etc.). What happens currently when a context is moved from one audience to another? How does ActivityPub enabled software communicate this? I recently moved this topic from one category to another, and in doing so, realized that I have absolutely no idea what happens to the group association as seen by other software. @[email protected] also said in the other thread: Also moving what NodeBB calls a topic (a post in Lemmy/PieFed) from what NodeBB calls a category (community in Lemmy/PieFed) into a different category (without spawning a new topic or leaving the old copy behind) is much needed but not implemented in Lemmy/PieFed/Mbin. One solution would be to federate an Update activity, though this is problematic because audience, the relevant field in question, is on its way out. Another solution would involve the Move activity, which would be an explicit signal that something moved somewhere. In this case, the Move would indicate the context moved to the new audience, or in AP software that have not implemented FEP 7888, then the top-level object will have moved to the new audience. cc @[email protected] @[email protected] @[email protected] @[email protected] npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian Based on the replies received, it does sound like at present that if cross-posting is a consideration, it is something done locally, and not something that is explicitly declared when federating outward or retrieved via AP. There are also multiple definitions of cross-posting: Multiple, disparate topics sharing the same attachment url (PieFed) Author targeting multiple audiences Non-author sharing object to additional audiences One of those is really not like the other, which does complicate things somewhat. Thankfully, it does seem like that the way PieFed handles it, is local to the instance. A good first step might be to narrow down the definition of cross-postingāat least from a protocol levelāto a combination of the latter two: "A user (which may or may not be the object author) sharing an object to additional audiences" Of course, this also happens to be what I'm looking for: the association of an as:announce activity with an as:target pointing to an as:Group actor. Would this be of interest to anybody here? The fallback mechanism is to just treat the announce as usual. npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian Happy Tuesday! Today we've updated the NodeBB community forum onto the remote-categories testing branch, which means that users on the open social web that identify themselves as "Groups" will be rendered in NodeBB as categories. Prior to this, they looked like users. Here are some examples of remote categories: Comic Strips (on lemmy.ml) Star Trek Social Club (on startrek.website) Social Web Foundation (a WordPress blog) ActivityPub "groups" and forum categories have quite a few things in common ā they don't usually post topic themselves, they "contain" topics, and they are usually administered by a separate group of users (moderators!) In many ways, these groups lend themselves to categories much more easily than they do as users. Notes: We will likely be releasing this as v4.3.0-alpha this Wednesday. Probably this means you don't want this on a live forum just yet. A lot of the backend logic is complete, but a lot of the frontend UX will be worked on. You can "search" for categories (via "in categories" in the search page), paste the full handle in order to instruct NodeBB to pull a new category in. You can now no longer mention a remote category. Instead, create your topic right in that category itself. As it should be :smirk_cat: . Remote content coming in that is slotted into a remote category will still show up in your "world" feed. That is still intended to be where discovery of content outside the local NodeBB instance will take place. Report any bugs or confusing behaviours (and there will be some) here. Screenshots https://community.nodebb.org/assets/uploads/files/1742850163476-4872fc8c-a679-4968-9daf-84bedb8bf237-image.png https://community.nodebb.org/assets/uploads/files/1742850238059-08c3972a-6c7e-4cef-937c-0c4830770a8a-image.png npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] recently made a statement that got me thinking about our place in the open social web, and the direction it's going. He says to @[email protected] and @[email protected] re: SXSW #FediverseHouse this feels like an irrelevant echo chamber, I really miss the grassroots #DIY that built this space in the first place. This #maistreaming is too much noise vs signal... currently the grassroots #DIY space is a hollow shell (two posts combined) That immediately got me on edge as someone new to ActivityPub in 2024. Does this mean I'm "mainstream", and somehow "bad"? Mainstream adoption is good and a step in the right direction. I personally think ActivityPub isn't ready for general mainstream consumption, but we as a group are rapidly closing the gap and I'd much rather continue building momentum instead of waiting for the opportune moment. Here's the hot take that I was going to originally write, but thought came off as too combative: It sounds like you feel like ActivityPub development only counts when you're toiling away in obscurity. As someone who's hacking away on a platform that hasn't been "mainstream" for over a decade (forum/BBS software), I bristle at the notion that what I do doesn't count as grassroots or DIY. You don't have to be the perpetual underdog to do good in the world. I might be wrong, but it sounds like Hamish feels like big players are coming in and taking the ball away... that big players' clout and presence takes away from the attention that smaller DIY projects receive. Maybe... but if the fediverse is 100x larger with a big player, and they take 99% of the eyeballs, have they really taken anything away from you? npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] do you have any legitimate criticisms of long form content over ActivityPub, or is it just "vibes"? npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian Wanted to start a convo with @[email protected] from Ghost and @[email protected] from Discourse about AP resource discovery. A common use case from fediverse users is to be linked out to a site, and attempt to "bring it in" to their local instance/app of choice. This is done by taking the browser URL and pasting it into their site/app's search bar, or equivalent. For example: Ghost: https://activitypub.ghost.org/warp-factor-5-mr-sulu/ Discourse: any forum topic For context, last night I discovered that Ghost's latest blog post didn't make it into NodeBB, due to a bug on my end. I attempted to resolve it via URL but there was no AP resource at that URL. I ended up having to query the instance actor (which I happened to already know), and looking at the outbox. To my knowledge there is no way to find a Discourse post or topic's AP resource ID without having a local Discourse account. Would it be possible for you to send back an HTTP 301 Moved Permanently (or similar) if the Accepts header contains one of the AP-related types? N.B. This probably has some overlap with @[email protected] 's HTTP Discovery Task Force, a 308 is recommended there. npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian Yes, of course Peertube sends hashtags without the #, why would I expect otherwise? :laughing: https://community.nodebb.org/assets/uploads/files/1740594442116-8d97461a-d0ca-4699-8c72-2859c1f3e14b-image.png npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian We received word recently that one of our long-standing clients, NFC Ring, is planning to shut down their forum toward the end of the month. While this is normally a sad time, it's worth mentioning that NFC Ring has been hosting their forum with NodeBB for over ten years! They've been with us just about as long as our self-serve hosting service has been, along with all of our ups and downs over the years. Their forum contained a couple custom integrations, along with the earliest known NodeBB SSO plugin, and had a custom theme at one point as well. These innovators envisioned the idea of paying for groceries with the tap of a ring years before that technology became ubiquitous. Super cool. Nevertheless, their trust in us (a dinky little company in 2013) did not go unnoticed, and we wish them the best! https://community.nodebb.org/assets/uploads/files/1740507225897-f4e9ed32-fa53-4268-86c2-17e7090b5223-image.png https://community.nodebb.org/assets/uploads/files/1740507345652-5d017523-37e2-4c5c-a2db-99ecb748bc99-image.png npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian Hey @[email protected] , can I poke you about getting NodeBB on FediDB? It automatically picked up a couple NodeBB sites, so I think the nodeinfo stuff is working, just not sure if it required some manual intervention on your end to get the software link working ā it currently 404s. Cheers :flag-ca: npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] but that's not what Elon Musk's supporters are expecting. To extend your metaphor, they're paying a mechanic to pull things out of an engine until it magically runs perfectly. There is no second step. npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] can Mitra, Streams, and Hubzilla backfill from each other (full two-way backfill) or one-way at this time? npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian A conversational context is what the ForumWG uses to describe what you might see as a reply tree or comment thread. One of the short-to-medium term goals of the ForumWG is to get conversational backfill working reliably. What this means ā conversational backfill means that when you encounter a post/status/note/etc. (e.g. you're mentioned or boosted/shared something), there is a reliable and comprehensive way to retrieve the entire conversation around it, so you are not interacting with the object on its own, but in its proper context with all its sibling replies. We plan to achieve this with a combination of a top-down (FEP-driven) and bottom-up (implementor-first) approach. While this sounds incongruent, top-down approaches tend to overcomplicate and bottom-up approaches tend to violate the protocol (unintentionally of course :joy:.) There are a number of independent top-down efforts to achieve this: FEP-7888: Demystifying the context property FEP-171b: Conversation Containers FEP-76ea: Conversation Threads These FEPs are in the R&D phase. State of the Top-Down approach At this time, the ForumWG is only recommending the following: Publishers SHOULD use context for grouping related objects in a thread (but this is not the only way to use context). There is general agreement over: A context SHOULD resolve to a resource. There are concerns over: What that resource is (as:OrderedCollection, a new type, something else?) What is included in that context (plain objects or activities) State of the Bottom-Up approach The bottom-up approach is results-oriented, and while certain implementors may follow certain FEPs, the overarching goal is "cross-compatible conversational backfill". Separately, these implementors are (or have signalled interest in) implementing conversational backfill: NodeBB and Discourse (@[email protected] ) Following FEP 7888 Attaches context to objects context resolves to an OrderedCollection Two-way conversation backfill is tested and working. WordPress (@[email protected] ) and Frequency (@[email protected] ) Following FEP 7888 Attaches context to objects context resolves to an OrderedCollection One-way conversational backfill is tested and working ā others can backfill an entire conversation from these implementors. Lemmy (@[email protected] ) and PieFed (@[email protected] ) Have signalled interest (neither positive nor negative) in conversational backfill and are waiting and watching at this time. Of note: Mitra (@[email protected] ) Following FEP 171b One-way conversational backfill is tested and working ā Mitra can backfill an entire conversation from FEP 7888 implementors What's Next This thread will likely contain updates and discussion from related parties about their implementations and what they wish to do next. In the cruelest irony of ironies, because conversational backfill is not ubiquitous yet, you will need to "View Original URL" in order to see all of the replies. The ForumWG will meet again on 6 March 13h00 EST where all of this will be discussed, as well as planning out the future focus items for the ForumWG. If you are an implementor, there is no reason you cannot join the fray. Boost this post, reply to it, join the conversation(al context)!! If you're not an implementor, boost me anyway :stuck_out_tongue: npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian For awhile now we've hosted https://try.nodebb.org as our demo instance for people to see a plain NodeBB instance. I have added a federated category on that instance now. You can of course still make test posts to this instance, but you can also feel free to fill @[email protected] with garbage instead :laughing: Please note that the "try" instance of NodeBB is reset every 24 hours, which means all follow relationships, content, etc. will only last at most that long. If you follow the category or an account on that instance, those categories/users will "forget" you followed them. npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] in my case, I just casted it as bool: !!object.foo. You could also object.hasOwnProperty('foo'), although that would be true if object.foo = null too :joy: npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian a PR to Mastodon @[email protected] I would hold off on that in favour of a PR to introduce context serving and consumption (a la 7888). There are still some issues to work through, but I intend to have it upstreamed (via @[email protected] ) once we settle on a semi-final implementation. npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @ŠŠ°ŃŠŗ-ŠŠ°ŠŗŠ°ŃŠŗŠ¾Ń widget-essentials is packaged with NodeBB and is compatible. Its version is also pinned to the NodeBB version, so you do not need to update it. npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian I discovered this week a little footgun if you happen to use this bit of syntactic sugar: const object = { foo: 'bar', } switch (true) { case object && object.foo: { // This will never execute } default: // ... } The cases in your switch(true) must actually return true, not truthy, for the case to execute. Using switch(true) us a bit of a controversial coding practice, since it's only meant to replace long if..else if..else chains. Literally has no additional utility except aesthetics... but I like it nevertheless :joy_cat: npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] the other side of the coin is that Mastodon simply doesn't get the replies to a conversation, which decreases the utility of following a category, no? Rock and a hard place. Ironically this helps my case that Mastodon should implement conversational context and backfill š npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @NodeHam For example, your last reply here has the permalink https://community.nodebb.org/post/103339 That never changes, even if you move the post out of the topic and to its own topic. npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] that's true for Mastodon, but not for other servers with more of a community focused aspect, like NodeBB. npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @panos brought up something interesting recently, which is that Lemmy communities don't boost everything (at least when viewed from Mastodon), but just the original post. I wasn't sure whether this was intentional (because 1b12 definitely specifies that everything is boosted, replies and all). The only explanation I can think of is that 1b12 boosts activities, and Mastodon doesn't understand that, so it's actually an implementation quirk that causes Mastodon to not actually see the entire conversation. NodeBB used to Announce(Note) and Announce(Create(Note)), and it meant that Mastodon was seeing everything. This was desirable from a synchronization standpoint, but it meant everything was going into Mastodon user feeds, which was @panos' concern. I think Guppe (which is kind of like 1b12? Not sure) boosts everything, but again, am not 100% sure. npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian Agenda preparation for the February ForumWG meeting can be found at this public link (anyone can make comments for review.) Monthly meetings normally are held on the first Thursday of each month, at 1700 to 1800 UTC. You can find them listed in the SocialCG Calendar. The next meeting will be held on 13 February 2025 due to my being out of the country last week. We will be discussing: Long-form text and resolvable context updates from FOSDEM Concerns regarding developer accessibility of FEP 7888 Live brainstorm/whiteboarding session re: long-term focus of threaded conversation FEPs As always ā time permitting ā if you'd like to speak or inquire about a certain topic, comment in the agenda or reply here, the floor is open! npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @eeeee ah, that's fair, we should change the description for the Persona theme so it no longer says it's the default :flushed: Anyhow, you'll want to use nodebb-plugin-recent-cards if you want those boxes at the top. npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] good question! The answer ultimately lies in how you want to communicate with your audience. Each option is different and it's hard for you to know which software is the best fit. That's why even when I say NodeBB sits somewhere in between microblogs and blogs, NodeBB might not be the right solution, yeah? What kind of site do you want to build, how in depth do you want to go, etc.? npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian Lastly, there are so many others in the long-form text space who were not at FOSDEM, but are open and willing to work together! @[email protected] (PieFed), @[email protected] (Hubzilla), Mike MacGirvin (whose handle I forget at the moment) and so many more. Just because you weren't here does not mean you were forgotten. Your software was mentioned and discussed too! npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] let's all just give up and keep pressing this button https://community.nodebb.org/assets/uploads/files/1738538206997-a470f63e-a377-4dc5-bed2-69cd5824fd11-image.png npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] obv. yesssss join us npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian I should also mention that we had great conversations with the Mastodon team (hi @[email protected] and @[email protected] !), and their commitments to working towards better support for long-form text is evident. Good vibes all around. npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @NodeHam said in Script kiddies need lives: directly from the nodebb code āļø npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @NodeHam yeah, I'm not sure. That's what's going to need looking into. npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @NodeHam depends what needs to happen to increment the login counter. If they're just hitting the login endpoint it actually shouldn't count as a login... npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @NodeHam are they script kiddies? It looks like you have a huge number of login attempts. npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @eeeee I believe LemmyBB was a proof-of-concept, to show that Lemmy as it existed back then was able to be represented in the front-end as a tradtional forum. But also, nutomic (who may have made LemmyBB? not sure.) is a busy person who has a day job and doesn't work on lemmy full-time :slightly_smiling_face: npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @fdebc9e32a9acd78ca4144fe70553c92f1e09e50b9169ce74053de3550af925e@mostr.pub hello friend from nostr! npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @nhl.pl je ne pas parlez francais š¬ npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] good question! The threadiverse can be considered that software, plus other threaded-style software like NodeBB and Discourse. The working group includes members from most of those, in an effort to promote our own priorities forward to the fediverse at large š npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] do not federate TheDailyWTF, the fediverse might explode. :stuck_out_tongue_closed_eyes: npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] we'll be there! Wouldn't miss it. Thanks for organizing š npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] we'll be there! Wouldn't miss it. Thanks for organizing š npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian Today's the day! :tada: After nearly a full year in development, NodeBB v4.0.0 has landed, bringing federation between NodeBB instances (and a connection to the wider fediverse of social media) to forum software. Fedi-what? Fediverse! Here's a TechCrunch primer about it, but at the end of the day, it doesn't really matter. All you need to know is that NodeBB plugs in to a wider social network so that you don't have to cultivate an audience, they're already there. The genesis It was back in mid-2023 when I had the initial idea of interconnecting NodeBB forums. Back then, I had far smaller ambitions... I wanted a singular NodeBB to be able to communicate with other forums running NodeBB. To do that, we'd need to build out a centralized service to act as a bridge between instances, and corresponding slim clients on individual installs to consume the relayed data. At the time, concept like decentralization were not even part of my thought process. It was during this period when I was doing my research that I stumbled on Mastodon, and later, ActivityPub, the protocol that powers it all. Since then, it's been one wild ride getting NodeBB to speak the same language. Funding Soon after dipping my toes into all that Mastodon had to offer, I discovered the NLNet Foundation, and their corresponding fund ā NGI Zero Core. With the promise of funding, NodeBB could fully commit to implementing the protocol in short order, instead of piece by piece over time. We sent in an application and were delighted to be approved for the August 2023 call. Their funding was instrumental in providing the financial stability to experiment with ActivityPub and to participate in developer circles, such as the SWICG, FediForum, and much more. The fund continues to operate, perhaps you could benefit, or donate to the cause. It has certainly made a difference to NodeBB. Federate, or not, it's your choice NodeBB v4 comes shipped with the capability to interact with other NodeBB forums and any other ActivityPub-speaking software, right out of the box. We opted to make this a core feature instead of a plugin, since there were many changes made to core to support even the concept of accepting content from outside itself. To that end, any users upgrading from v3.x will automatically have federation disabled, in order to reduce surprise. Any new forums will federate automatically. You can turn federation on and off (and adjust some other fun toggles) directly from ACP > Settings > Federation (ActivityPub). Even after turning federation on, how you use it shapes how well connected you will be. There is no centralized authority artificially boosting your content, so the name of the game is establishing two-way follow relationships to other sites. The ActivityPub Equalizer We're not alone in this journey to interoperate with other decentralized services. We're not even the only forum software to attempt to do so. Discourse has a working plugin. Ghost is building out in the open. I specifically highlight these two because they both started in the early 2010s, same as NodeBB. It's always been a bit of an informal competition between us, and we always checked in on what the others were doing (growth-wise, pricing-wise, etc.) Truth be told, I don't think the ghost team ever really noticed NodeBB, but I digress... The funny thing about ActivityPub is that at the end of the day, the overarching goal of seamless communication breaks down any barriers between competing organizations. NodeBB and Discourse have been vying for the exact same market share (forums, community-building, self-started or enterprise) for over 10 years, and it was only after ActivityPub came around that the dev teams even started talking to one another. Funny how that works. So how does it all work? Our documentation portal has been updated with the latest information about the ActivityPub functionality in v4. If you have any questions about how it works or how to configure some aspect of it, please don't hesitate to reach out in the corresponding v4 support thread. If you run NodeBB, the quickest way to see this in action is to upgrade to v4, and then paste this post's URL into your search bar. It should show up automatically, and you should be able to read and reply to it, directly from your own forum. Neat! npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] I'll be there! I'm presenting a talk at the after hours Social Web event at HSBXL. npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian @[email protected] not yet, although I should open an issue, thanks for the reminder! npub16lufy7a3rplgl0xsea9ga22d968ynrk0egajcnec8y4x4nzed8tsfz09mm julian There have been some reports (@bh4-tech I believe?) that NodeBB does not successfully federate with Threads. Looking into the issue, I discovered that it is only this domain community.nodebb.org that is unable to get/send activites with Threads.net. After some help from @[email protected] @[email protected] and @[email protected] , I have discovered that our domain has been blocked by Threads for not serving up a public feed. This is the feed they're specifically looking for. If your application does not serve it, it will be automatically blocked at some point. There is an appeal form you can fill out so your server can be re-instated. At this time, Threads seems to see the lack of the public feed as a non-starter for AP federation. As an AP software implementor, in order for admins running NodeBB to not have their servers auto-blocked, I will have to implement this API Threads relying on the existence of a Mastodon-specific API suggests that they're federating with Mastodon only (perhaps as part of a limited experiment), or that it is an oversight that needs to be fixed on their end with time. Therefore if you wish for your NodeBB to federate with Threads, my guidance at this time is to whitelist your domain with Threads directly by filling out the form.