I switched to Nodebb from SMF: my experience.
-
I just switched to Nodebb from SMF (~400 forum users) out of curiosity and because I liked the funny round category symbols. And because SMF was buggy and isn't really developed anymore with passion.
The installation, setup and customization of Nodebb took me about 72 work hours and 6-7 complete reinstalls.
Why? Because Nodebb is really buggy out of the box compared to most other forum softwares.
Just installing plugins and doing some normal random stuff hosed the database couple of times and I got locked out from my admin account 3-4 times, I was unable to login with any account including administrator accounts in maintenance mode and had to learn some crazy Redit database voodoo skills to remedy the situation.
If you have a problem that is not a regular problem that 90% of the people have - the support is basically nonexistant and you are on your own.
Importing from SMF hosed the database couple of times. BBcode -> Markdown conversion and html conversions don't work really. No, really they don't. And yes I read the manuals a few times and tried different approaches.
The plugins are mostly broken, like at least 65% of the plugins that I tried just don't work.
The developers have an idealistic vision about modular BB system where you can do next to ANYTHING with plugins. You don't like the composer? Swap it out. You don't like Marked? Swap it out!
In theory this is really cool. In reality? In reality we have developers making - really nice - plugins for their own needs and then publishing those. It's all great. But then the need goes away and 40% of the plugins become abandoned and stop working or don't work as intended when Nodebb get's updated. The plugins lag behind. Some critical systems have support from the developers, other's become abandoned mostly.
What does this mean? It means that if I want to use Nodebb for my projects and if I want some features that are not there out of the box (and the box is pretty light because of the design philosophy, modularity, expandability and all) then I have to Do It Myself, code it myself.
The shoutbox, for one simple example - it's a very popular feature out there. Well, guess what? It's not available in the core. But it is available as a plugin! But.. the plugin doesn't work by a simple press of a button, now does it? Why not? Because it's broken. So you have to become a developer and get under the hood and fix the problem yourself because, you know, people have lives and the plugin authors have other things to do besides always updating his or her plugins.
What if you aren't so lucky that you actually can do all this stuff like I can with ~30 years of experience in IT? Well, then you're out of luck. Maybe you can wait for a couple of months - or a year - to see if someone has managed to fix the problem? But perhaps you just wish to open up a forum for your users or friends, like.. now? Instead of waiting. Then maybe Nodebb is not for you.
In theory the philosophy of keeping the core light and having modularity and letting the users do the extra features that are a part of other forums software by default - it is a really good idea. I like it myself.
But in practice it doesn't work very well because the weakest link there is the people, always the people.
I have Nodebb up and running now and I really like it. Yes - it has shortcomings, yes - most of the plugins are useless, yes the composer is utter crap (you really should be able to compose in the "preview mode" by default and the other way around too if you're inclined to do so - instead of this one way street. What is this, the 80'ies? Get your **** together) but overall I love Nodebb and see a lot of potential there.
One or two more weeks of tweaking here and there and I think and adding a couple of features and my installation of Nodebb will be just fine.
Oh yes, about the composer? What ever happened to this proposal?
(The last message in this thread)
What the man suggests - I checked out the demo - it's just so awesome. It's just what the composer needs.
Make it happen. Please?
Thanks for reading my praise of the Nodebb
-
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.