Why did we choose NodeBB instead of [any another product]?
Upgrading to the latest phpBB
The obvious choice would have been migrating to a newer version of phpBB. But as I mentioned before there are some issues that would have made this transition a walk on a tight rope.
Our phpBB installation is 9 years old, the underlying phpBB 3.0 release even older (according to Wikipedia work on phpBB 3.0.x began in late 2002, first release candidate was in May 2007). The web software development world was a completely different one back then as it is today:
phpBB 3 had no concept of installable mods or plugins. If you wanted to extend your installation you would follow the extension developers guide and manually edit php code files and manually run SQL statements against the database, thus adding fields, tables and whatever the developers came up with. Also version control on the running server was not a thing back then.
Unfortunately our installation made use of this. For example the whole like-system is deeply intrusive into every part of the application. The "solved" feature in the help forum is another example. Eventually no active server admin knows what has been changed to the system and there is no way to look it up.
All of these additional features would instantly break on a new version, as there is no corresponding code handling this in a newer version. Furthermore every change to the database could make a potential upgrade fail. And there is nobody out there to help you upgrade a manually fucked up 3.0 installation throughout version 3.1 and then 3.2. And if you then run into some weird unexplainable issues due to some weird migration leftovers nobody will be able to help you.
In addition to that past experience shows that former administrators seems to have manually fiddled with the database as some features in the database are broken or don't work as intended.
An upgrade would have come with high risk, unknown outcome and lots of efforts. This is the reason why we decided to look for a solution with a clean installation. Furthermore phpBB 3.2 didn't even match our criteria.
Our requirements (and how NodeBB matches them)
Before selecting any kind of software (or product) you should know what you want. Knowing the issues of the old forums and from other issues we had in FAF over the last 5 years, I made a list of requirements before I went to search for the market.
Eventually NodeBB was the only product I found matching all criteria, so I'll leave out the comparison with other software out there.
- The software is actively maintained. This sounds trivial, but a lot of projects are in a semi-zombie state and we're selecting a board for the next 10 years, right?
NodeBB is actively maintained, e.g. they just release the v1.14 release series with two bugfix releases while I was setting it up.
- The software has to be open source.
We are an open source project. We live open source. Also we don't have hundreds of dollars to throw out of the window.
NodeBB is open source and available on Github.
- The software is battle proven by large installations. We don't want to make a bet on some newcomer thingy with fancy features, we want stable enterprise-like software.
NodeBB is widely adopted. See their website for examples.
- It needs to have a large community supporting it. Bonus points for a company backing it with support.
A large community supporting it + open source means even if the company behind it goes out of business, the community will most probably take over.
NodeBB is also a company, offering cloud installations for money and paid work on support or customization. [So if everything burns we could throw a bit of money at them and they could help us.]
- It needs to have official docker support by the core team. This is mostly a server administration thingy but FAF has a few examples where this is not the case and it's a pain in the ass to keep it working.
NodeBB has official images on dockerhub.
- It needs to offer a way to integrate our own single sign on.
Single sign on is a nice feature to sync FAF accounts to the forum. We struggle with lots of support request of people who don't give their account name. Another benefit is, that it keeps the spam bots out, as the FAF registration process is completely unique and spam bots only attack default registration processes.
NodeBB supports additional login system via plugin. For OAuth2 (which FAF is using) they provided an excellent skeleton to work on with. So the plugin is decoupled from the rest of the code and will not interfere with regular updates (unless there is a rare breaking change in exactly this part of the application - but then they publish it in the release notes).
- It needs to offer a web api for reading and writing stuff. Reading is beneficial for potential integration with our clients and the website to maybe drop Wordpress at some point. Writing is crucial for the one feature I hate FAF the most: the ability to change your username. Changing your account name is very very very uncommon (usually you just have a display name you can change) and it's not supported by regular authentication providers.
NodeBB offers seperate read and write APIs via plugins. Utilising this I was able to create username synchronisation with our API in an custom plugin (which also handles the single sign on).
Eventually the points 6 and 7 were the dealbreakers on most forum alternatives out there.