razibal
Posts
-
Standing desks... -
Standing desks...Yeah, I have one in my home office. It might seem counterintuitive, but I feel more refreshed at the end of the day than I would with a "normal" desk. I also pair it with an under-desk treadmill, mainly during zoomcalls. It's quite useful since it feels like I spend most of my day on calls these days.
-
NodeBB on FLOSS Weekly #773 — "Don't do the math"Building on your discussion about the commercial side of forum software in the interview, a distributed architecture could have the added benefit of opening up new markets for nodeBB. Two examples that come to mind are backend services for a commenting platform like Disqus, or a content management system (CMS).
-
NodeBB on FLOSS Weekly #773 — "Don't do the math"@julian Just listened to the episode. Congrats! Very well done.
BTW, in case anyone misinterpreted my comments on the React front end thread (https://community.nodebb.org/post/98370), I did not intend them as a criticism of nodeBB. I like nodeBB a lot and consider it to be best of breed in its category.
With that said, adoption of a modern distributed architecture would elevate it to unicorn status among its competitors. Of course, I have partially selfish reasons for seeing nodeBB adopt this architecture. I would love to embed fully functional “discussion components” throughout my primary website without resorting to clunky iframes.
I’m also happy to contribute to a development fund if you ever decide to go down this path.
-
react-redux-nodebb, we are building it!@The-SkyFoxx Decoupling the UI and choosing a framework are two separate architectural choices and not tied to each other. You can decouple the existing UI from the backend without rewriting the existing core or moving away from jQuery or breaking any existing functionality such as themes and client-side plugins.
At its most simplistic, it would be simply 2 express servers, one for hosting the client JS and static assets, while the second would be for the API services and authentication/session management. The UI express server could also be compiled to statically hosted javascript that would no longer need an express server and could be served from S3 buckets. This is easy enough to do for express based apps. The benefits of this approach are quite worthwhile. As the previous posts suggested, it allows for separate lifecycles for the UI and the core API services. It should also boost performance substantially as all static resources including the UI would be served from S3 buckets.
Optionally, the standalone API server now freed from hosting the UI, could be moved to an API server better optimized for pure API services such as fastify. You can lookup the various benchmarks, but Fastify or Restify are anywhere from 3X- 5X faster than express for API requests.
Lastly, I would also decouple the session management, but that's a "nice to have" that would let nodeBB be a truly serverless application that could run entirely on the cloud and be essentially endlessly scalable. -
react-redux-nodebb, we are building it!@eeeee I wasn't suggesting that the nodeBB team select Next.js, that choice should be based on whatever framework works best for nodeBB based on the choices available. My point is simply that the UI should be a separate component and not married to a nodeBB monolith.
BTW, I have used Next.js and it wouldn't be my personal choice for a new project. However, it has, by far, the largest installed base of production apps and if the goal is to appeal to the largest set of potential users of forum software, it would be an easy front runner for the "default" front end UI.
Keep in mind, that if the nodeBB team decides to go down this route, the front end
UI essentially becomes the equivalent of the current concept of themes. This allows anyone to use their framework of choice in their own implementation. -
react-redux-nodebb, we are building it!@o-o Agreed, much as I love nodeBB I would love to see the UI decoupled from the API services. To be fair, the existing nodeBB architecture is already structured to allow for this. The only missing piece is a statically hostable front end written in Next.js (or Nuxt, Astro etc). I would especially like this as it would make nodeBB embeddable as a "forums as a service" provider without having to resort to subdomains or embedding in iframes. I imagine that the vast majority of nodeBB (and forum software in general) are using it as an adjunct to existing websites, and this would instantly make nodeBB a much more attractive option compared to the competition.
-
Rethinking the Logic of Topic Popularity RankingAgreed, it would also be useful to set the popularity criterion to 'views' instead of 'posts'
-
Navigating to specific postThanks!, I was able to debug the issue.
-
Navigating to specific postHow is the logic for navigating/scrolling to a specific post handled? I'm trying to debug a issue in my custom theme where navigating to a specific post within a topic will take me to the first post on the page that the post belongs to (if pagination was turned on). As an example, if I navigate to
/topic/12345/example/37
it takes me to/topic/12345/example/31
. Any suggestions on where to look? I'm sure I'm overriding some method in my theme as this issue does not occur if I switch back to a standard theme.FWIW, this only seems to occur when navigating to a new page as in clicking on a link from an external site.
-
Updating meta tags in a custom topic templateThanks, that works perfectly
-
Updating meta tags in a custom topic templateI have a custom template for certain topics that are intended to be articles. These articles have some custom attributes such as
headerImage
andsummary
that are set through the api when they are generated. Where would I go to ensure that the appropriate meta tags such asdescription
andog:image
are updated to reflect the custom attributes? -
Clustering across multiple machines - duplicate key errorsI have nodeBB running on a couple of machines with a shared db and redis instance. However, I occasionally see errors in the logs indicating that there were duplicated writes attempted.
For example,:
MongoBulkWriteError: E11000 duplicate key error collection: nodebb.objects index: _key_1_value_-1 dup key: { _key: "analytics:logins", value: "1708077600000" }
Do I have something misconfigured?
-
Migrating existing forum from / to a subpathHopefully this is just a quick question. I understand how to setup a new install on a subpath, however is there anything I need to do to migrate an existing forum to a subfolder? Or more specifically, do I need to do anything other than changing the
url
inconfig.json
to include the subpath, and adding the folder to thelocation
in the nginx config.Thanks!
-
Session Mismatch errorsIt finally happened again, Looks like
app.user.uid
doesn't match the logged in useruid
as app.user.id is set to0
while theuid
is2
.
It all starts working again as soon as I flush the Cloudflare cache.
Where are the app values gettting set? -
Session Mismatch errors@julian I ended up adding the datadog RUM and logger scripts to the
header.tpl
of my custom theme.The user sessions are now visible in the datadog UI and any requests for
checkSession
are logged.I haven't had any reports of errors since I added a cache bypass for
/socket.io
. Hopefully, if this occurs again I'll have the logs as well as any untrapped errors visible in the RUM sessions. -
Session Mismatch errors@julian I'll add the debug log, however since the main site already uses datadog for logging/RUM (Real User Monitoring), I think this would be a good opportunity to add the embedded nodeBB instance to datadog.
It looks like datadog has a winston module datadog-winston. Any suggestions on the best place to integrate this without having to modify core? -
Session Mismatch errorsI've put in a cache rule to bypass caching when the path contains socket.io
(http.request.uri.path contains "/socket.io")
Hopefully this fixes the intermittent problem, but it would be nice to be able to validate and test the fix.
-
Session Mismatch errorsI've gone through some of the previous topics on this subject but haven't found an answer that fits yet. I'm geting periodic reports of users getting the "Session Mistmatch" error along with the "Your connection was lost" message. This instance of nodeBB is routed through Cloudflare and flushing the CF cache gets rid of the errors. Any suggestions on where to look for the root cause? Any ideas on how to provoke ths error on demand would be much appreciated so I can identify and test the fix.
I am using the Session Sharing plugin, but it appears that this issue occurs because some request is getting cached by CF rather than at the origin as the request never makes it to nodeBB.
-
Forum activity page or widget@dave1904 ++ for this to be part of core. I had requested a similar feature last year, but it did not get much traction
Activity Stream plugin?
Does anyone know of a plugin for displaying a 'real-time' activity stream? Basically, a stream of current posts (truncated) in reverse chronological order.
NodeBB Community (community.nodebb.org)
Ideally, this should be implemented via the socket api so it can update in real-time and serve as a view into interesting conversations