Quick Look at NodeBB

In my search to find forums using modern technology I stumbled onto NodeBB, a new open source forum build on the Node.js framework. I figure I'd write down some of my thoughts and impressions.

Install

Installation of Node.js and NodeBB is pretty straight forward. NodeBB offers a great setup guides for local install and cloud instances. Just following the instructions for either you should be able to get it running in minutes. My public test server took about 20 minutes my first attempt. I've nuked it and started over a couple times and and have been able to deploy it in under 10 mins now. Key is getting your ./nodebb scripts setup for easy restarts. Overall I was impressed at just how easy it was to get a server up and running, even having to brush up on my sudo Linux knowledge.

User Experience

This is where NodeBB is really exciting! It is fast, easy to read, easy to navigate, and did I mention fast. Seriously fast. The other thing is it works on mobile. Actually it works REALLY well on mobile. Mobile browsing growth and the browsing preference for anyone under 20 (tablet and mobile), having a solid experience on these platforms is key. I personally can't imagine browsing a forum on a mobile phone, but it actually works really well on NodeBB using the default Lavender theme.

Screenshot from iPhone

One thing that does take a little getting used to is the default text entry method is Markdown. You have probably used it randomly on the web before. It works, though users might be more comfortable with a CKEditor or TinyMCE. NodeBB does a good job to make posting easy even with Markdown such as allowing image posting just by URL or even allowing users to embed an image by simply dragging into the text input.

Open Source Community

NodeBB is currently open source and the core behind it have been great on their roadmap and fixing bugs. The community as well has been very helpful and excited on making plugins or additions to the codebase. The community is growing and many of the plugins available now are very particle and highly useful.

On my personal server I was able to turn on Twitter Auth account creation and login in minutes. Handy plugins such as Youtube, Vimeo, Imgur, Soundcloud, and Twitter embeds by simply posting the URL make life really easy for users. For admins you have an easy Google Analytics plugin for stats and the ability to add a badge to a topic similar to a tag. NodeBB does a lot of great things out of the box, that you aren't needing to rely on plugins to fill in the gaps.

The spoiler plugin is my personal favorite is the Spoiler. It is just so pretty and clean. It also works on mobile!
<video id="example_video_1" class="video-js vjs-default-skin" controls preload="auto" width="640" data-setup='{"example_option":true}'>

Speed

I already talked about this a little above, but the speed of NodeBB really needed its own section. It just provides a different experience when compared to your traditional forums. It feels more like chat. The speed and realtime updates is something that just has to be seen. While just reading the categories on NodeBB own community you will see updates in realtime. No refresh needed. Tests on my own server, which is just a simple 512MB & 1 Core CPU on DigitalOcean, were amazing to have one window open and post with another and have things just magically appear in both instantly.

I'd love to migrate some of my old databases to check performance when dealing with 10,000 users and 250,000 posts. Curious how well it would hold up and where it would start to break down.

From my understanding NodeBB gets it speed by using Redis for its value store. So it is in memory. Which is amazing, though again, I'd be curious of scale. However this hasn't been ignored by the development team and community as they have instructions on how to use MongoDB for long storage then using Redis to cache posts for speed.

Speed is probably one of the most exciting things about NodeBB as users especially younger users have no patiences as they grew up with Youtube, Pandora, Spotify, Netflix, and other instant services. It is about time that forums caught up.

Improvements

While NodeBB has a solid foundation, there are still some improvements either to the core or by the community.

Admin

Administration is pretty straightforward and to the point, but also a little limited. Setting up groups is pretty painless, but bans from what I've seen are a toggle. Dealing with a large scale community, it is just super handy to not have to manager something like that. Slap someone with a 24 hour ban and the system takes care of it.

Tagging

There is a great plugin that let's you do Topic Badges, but having full tag support would be extremely useful to better categories topics and the content within them. One of the developers has already mentioned that this is on their list. Crossing my fingers.

Stats Dashboard

NodeBB has a simple stats widget that gives you the highlights of online users, total users, total topics, and total posts. While this is nice, admins want more. Being able to get stats on users and topics within the application would be a huge bonus. While some of this data could be found via Google Analytics, having a built in dashboard would just make life easier. Perhaps something similar to the Vanilla Forums Stats Dashboard.

Vanilla Forums Stats

Closing

It is easy to say I am impressed with NodeBB, especially considering it is only about a year old. The flexibility and speed is a serious next step in the evolution in forums. Between NodeBB and Discourse, it is pretty exciting times ahead. I'll be keeping my server up to do further experimentation with as well as try to make a plugin or theme. With some additions and improvements I can see NodeBB being a serious platform for building communities moving forward.