I switched to Nodebb from SMF: my experience.
-
If a plugin doesn't work, that's not the fault of NodeBB, it's the fault of the developer not keeping it up to date, it's nothing unique to NodeBB. Have a look at how many Wordpress plugins don't work for the latest version. Wordpress will tell you it's not compatible, NodeBB are going down a similar route, warning that a plugin may not be compatible, this is still a work in progress. What's the alternative I hear you ask, NodeBB create all of the plugins and charge each user to create what they're after, get maybe one or two plugins a month if you're lucky, rather than have an open plugin system where developers are free to create what they're after. If a plugin is out of date, or needs updating, other developers may submit pull requests or fork out of date plugins and keep them going.
The Redactor composer is currently being built as an alternative to the standard Markdown composer. However is still in infancy and is lacking features, I've not used it since it was first released, so many bugs may be fixed since.
The shoutbox is developed by @Schamper, so if you have any issues, ask him. Doesn't look like he's particularly active. But that's the way open source goes, none of us are getting paid to make these plugins, we have no obligation to keep plugins up to date, we have no obligation to keep making plugins. We make plugins because we want to use them on our own forums, or because someone requested them and we have spare time to make them. We also make them to increase the chances that someone like you will come from SMF to NodeBB, I came from SMF to NodeBB. When I joined, there was no import process for SMF. But there was for vBulletin. So I had to make my own importer. Is it perfect, no. Did it work when I built it, yes. Does it work now, I've no idea, I handed it to someone else as I no longer have an SMF database to convert. So can't test what I don't need.
-
Constructive criticism is always helpful, so right off the bat, while I'm inclined to debate the finer points of your post, I do want to say that there are positives and negatives to NodeBB, and while we can try to please everybody, it's always to the detriment of somebody/something else.
Specifically with plugin compatibility. Yes, this is an issue, and no, I am not happy about it. A great majority of plugins are made, as you say, because of a need, and once that need is fulfilled, the maintenance of the plugin drops. This is especially an issue if we introduce breaking changes that cause plugins to stop working (at best), and bring down the forum (at worst) -- if that author never updates their forum, they'll never know the plugin is outdated.
We're going down this path slowly and methodically, so we can see just how people play with packages, and what their pain points are. Here's a brief history, off the top of my head, so if I've missed anything, I apologise:
- Plugins were only installable via
npm i
orgit clone
intonode_modules/
.- Very user unfriendly.
- "NodeBB Plugins" category is the sole source (besides google and npm) of discovering new plugins
- NodeBB Package Manager (nbbpm) is developed, and the ACP/Plugins page introduced, with much trepidation because this single act opens plugins to non-developers, and non-developers don't know how to rescue a downed NodeBB.
- Breaking changes and outdated plugins cause much grief and frustration
- nbbpm develops the "suggest" feature, which when passed a NodeBB version, suggests a proper plugin version to install
- Problem: The "Upgrade" button is not tied to the suggestion feature, yet
- Problem: Relies on developers to maintain the
nbbpm.compatibility
hash, which many do not do
... and so this is where we're at.
We're investigating a number of possibilities, including:
Hard-coding version numbers for bundled pluginsDone, v0.7.3- Tying the "upgrade" button to nbbpm
- Throwing a bunch of very verbose errors when plugins don't have
nbbpm.compatibility
- Automated testing of plugins on every NodeBB release to determine compatibility
Manual testing of plugins on every NodeBB release to determine compatibilityExpensive.- Hiding plugins without
nbbpm.compatibility
from nbbpm - If a nodebb version # is passed to nbbpm, it should only return plugins that support that version
The latter two are most feasible.
Is the
nbbpm.compatibility
process too cumbersome for developers? - Plugins were only installable via
-
@julian said:
while we can try to please everybody, it's always to the detriment of somebody/something else.
I realise I never expanded on this.
I made the decision to go down this route specifically because opening up the plugin ecosystem as early as possible allows others to customise and enhance NodeBB as they see fit.
Plugin incompatibility is natural for this kind of development, and we will continue try our best to minimise this.
Imagine if everything were bundled into the core offering... 1001 text formatting options, a hundred media embeds, Q&A/threaded post functionality, mobile push notification, mailing list integration, an ungodly amount of SSO integration...
While it would make NodeBB a pretty damn cool offerring out-of-the-box, can you imagine the maintenance nightmare it would become?
We would simply not be able to workon feature X, because we'd be spending every single waking second chasing down regressions, y, z, a, b, and c.
-
I found NodeBB last week and have to say my experience has been almost the complete opposite. When I did find a problem with either the core or a plugin, I opened an issue on GitHub. Pretty much every issue I've opened has been acknowledged and even fixed in a lot of cases.
Overall, I'd say I'm very happy I found NodeBB. Agreed it may be a steep learning curve, but it is totally worth investing a few hours of your time into how things work because that will save you effort in the long run.
-
@henrywright said:
I found NodeBB last week and have to say my experience has been almost the complete opposite. When I did find a problem with either the core or a plugin, I opened an issue on GitHub. Pretty much every issue I've opened has been acknowledged and even fixed in a lot of cases.
Overall, I'd say I'm very happy I found NodeBB. Agreed it may be a steep learning curve, but it is totally worth investing a few hours of your time into how things work because that will save you effort in the long run.
People do have different experiences, overall NodeBB has a high satisfaction rate, however you do get people whom complain because there's no free hosting, or no install.php file to run, (someone did once complain that NodeBB wasn't written in php ). As Julian has said, not everyone can be pleased 100% of the time.
-
someone did once complain that NodeBB wasn't written in php
Even platforms such as WordPress are looking towards JavaScript going forward. See talk on JSON REST API. JS is the way forward! NodeBB is leading the way
-
I hear ya and I feel ya. I know this is old, but I went through the same thing, but never gave up because that's what development is. I took one look at it, and said this is something I want - so keeping it under development until most quirks were worked out - was what we have been doing. The maintenance mode feature is handy. You are right about plugins, but trial and error tells you what to use and what not to use - it's not different with wordpress. Some of the plugins, utter crap. This is an amazing opensource - opensource (yes I repeated myself) - GNU licensed - We can do what we want with it but keep in mind that there are two main contributors and you know how long it took you just to configure it? Well look back a few years and see how long this has taken 2 folks to develop. I see amazing things happening with this software. NodeJS has now become hollywood so Joyent has a few extra bucks to make sure that the bugs are worked out of Node as a whole. Node is buggy in general but it's also intuitive and at least npm tells you where the issues are so you can go in and correct them. I know your intent here was simply to vent some frustrations - but unless your a dev - you probably won't be installing this software anyhow :=). I will tell you I will soon be abandoning wordpress for NodeBB - why? It's fast as hell, community oriented, and you have complete and utter freedom to develop without all the intricacies of php and the wp-api (which has always existed) - now it's just JSON REST API buzzwordded up. we just started using this at www.mysimpleclouds.com - brand new - haven't done a darn thing to it and have generated over 250k hits in 3 days - this is post the 10 installations -
FYI - Cluster redis. Use a few ports/sockets. Throw nginx in there, and watch your logs. YOu will know what to fix down to the line and column. Hope this helps!
-
While this topic is active, I'll add my advice.
Installation troubles seems like the biggest problem for users. I think creating an install
bash
script and hosting it on NodeBB.org somewhere would help make it a little easier. I mean, look how simple the install ofnvm
is:curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh | bash
Given, nvm has many fewer dependencies, but still, this can't be too hard, right? I'm thinking maintaining it will be more difficult than creating it in the first place.
Also, you may try excluding
>=
,>
, and other wildcard semver operators from the nbbpm compatibility field. Only allow caret^
and exact equalities to be valid. -
For Ubuntu, it would require root access so dependencies (redis or mongo, specifically) could be installed, but it is possible to do...
The thing is, I think the kinds of people who have shell access are typically developers, and so would (with a bit of work) be ok with using git...
Also, you may try excluding >=, >, and other wildcard semver operators from the nbbpm compatibility field. Only allow caret ^ and exact equalities to be valid.
Any particular reason why? Too complicated?
-
@julian a plugin can add a
>=0.5.0
and say it's compatible with every version of NodeBB, while really not being so. You should make developers tell exactly what minor versions their plugin is compatible with, so they can't just put the wildcard in there and leave it.