
NodeBB: Node.js-based forum software - vecio
https://github.com/NodeBB/NodeBB
======
hpaavola
Some obsevervations while using
[https://community.nodebb.org/](https://community.nodebb.org/)

Kinetic scrolling on Firefox for Android is broken. Do not fiddle with
scrolling when doing web development, ever. I guarantee that you will fail.

Front page forgets the scroll position when coming back with back button
(Firefox, Windows 7).

When you do AJAX stuff (or websockets or anything else not plain HTTP GET that
browsers do when you click normal link), always show progress indicator right
after you user clicks something. Now when the site is slow (because of HN
effect?) user is shown blank page while the page is changing. All I can see is
the top bar and the grey background after clicking any link. It takes 2-3
seconds before anything visible shows up. During this time always show some
progress indicator.

Going back and forth quickly occasionally gives user a wrong page. For example
right now my URL bar shows [https://community.nodebb.org/topic/7/nodebb-
plugins](https://community.nodebb.org/topic/7/nodebb-plugins) but content is a
post by quahfamili posted 12 months ago with title Testing.

Bulletin board system gains nothing from "single page application" style
architecture, it is a collection of documents, stick with it.

EDIT: Also, when using infinite scroll, do not put anything in the page
footer. Now when the pages have copyright info and couple links in there, I
can see those only for a split of a second before new content appears. Makes
me go crazy.

~~~
lookingsideways
> Bulletin board system gains nothing from "single page application" style
> architecture, it is a collection of documents, stick with it.

I'd have to say the Discourse project
([http://discourse.org](http://discourse.org)) provides a fantastic counter
example to this. It shows what can be achieved when SPAs embrace the URL and a
lot of thought is put into how the modern browser features can be used to
improve the user experience rather than just jumping on the bandwagon.

Example forums:

[http://meta.discourse.org](http://meta.discourse.org)
[http://discuss.atom.io](http://discuss.atom.io)
[http://discuss.emberjs.org](http://discuss.emberjs.org)

~~~
aikah
not convinced discourse UX is that good either,in fact NodeBB copies a lot
from discourse.

~~~
hiphopyo
This is why I prefer
[https://github.com/radar/forem](https://github.com/radar/forem) by the "Ruby
hero" Ryan Bigg. It's also for Rails but without the bells and whistles from
Discourse. A.k.a. "The best Rails forum engine. Ever.", it's perfect if you
want to build something unique from the ground up.

~~~
alxndr
I would associate Discourse more strongly with Javascript or Ember than Rails.

------
jstsch
I went comparing forum software the other day, last time I did was 10 years
ago. Wanted to get a nice and simple forum up 'n running in a couple of hours.
PhpBB is still the top hit when searching. But come on, we can do better than
that?

So tried Discourse, but the Docker-only installation turned me off (a magic
black box). After getting it to run for a bit, apparently something crashed
and got a gateway timeout. No Docker experience, so couldn't easily get in and
get some log data. Hard to debug. After killing the container and restarted it
worked again... not wanting to learn docker for setting up a simple forum
(trying to avoid the rabbit hole). And how am I gonna update this box?

Then a look at NodeBB. Too immature, a little bit funky UI and also relatively
hard to deploy. Don't have NodeJS running on one of our production servers.

Ended up with VanillaForums: untar... welcome screen... db credentials... go!
Much cleaner than PhpBB and simple to setup. Styling was a breeze too. A
couple of hours later I had a forum matching our identity up 'n running. Don't
want setup and maintenance hell for something as simple as a forum...

~~~
krapp
Unfortunately, it doesn't seem there's a lot of work being put into a new
generation of PHP forums. VanillaForums looks interesting though.

~~~
babuskov
About a year ago a friend and I tried to build a social network for some niche
and forums were one of the functions. It is pure LAMP code, written in Yii
framework. Since the project failed, I'm trying to get all the rights to
publish the code under GPL. My plan is to also run a small social site for
programmers as a proof of concept and having a real-world website where the
code works. Of course, there are some things specific to our project which I
need to remove/refactor first, but it is not too much work.

If anyone is interested in beta-testing when I release the first public
version on github, please drop me an e-mail and I'll let you know when it's
ready (my e-mail is in my profile).

~~~
krapp
Out of curiosity, why Yii?

~~~
babuskov
A few years ago I tried different PHP frameworks. CakePHP seemed too strict
with database schema, Zend seemed too complicated. I built large applications
with CodeIgniter, it's ok but lacks features. Kohana docs and support did not
promise much. Laravel did not exists back then. So I tried Yii (it was version
1.0.something) and it was great. Quick prototyping, powerful, but simple
enough and good support on the forum. I built a lot of apps with Yii and this
experience influenced the choice because I knew I wouldn't spend time learning
the framework, but building the product instead.

Especially, since I built my last 3 projects using Node.js, it seemed that
learning another PHP framework like Laravel would not benefit me too much.
Now, you might ask why did I not go down the node.js route. It's because I
wanted to build LAMP based code which I could eventually open source if the
project fails. I plan for it to become a standard PHP package for social-
network type of sites. You know, just like you have Wordpress for blogging,
you could use my engine for small social networks, or just MVPs.

I call "my engine" since I haven't named it yet.

------
chrislomax
I think I was expecting it to be a normal forum layout but faster. I must
admit, it didn't feel faster. The fade feels like a cop out on speed and
acting as a mask.

Also when going onto the forum, I was clicking links but nothing was
happening? Then I would click the home button and the last button I had
clicked would then activate, like it was a click behind?

The home layout reminds me of hootsuite, I find the layout too cluttered. I'd
imagine you would get used to it and you would know where to look eventually
but I must admit it wasn't very intuitive.

The plus points are that I do think the world needs an overhaul on forum
software, it's tired and hasn't changed much in 15 years. I don't think this
has been done in vain.

The feature set looks good I just don't think you need the fading transitions
and so much information all over the place. It needs simplifying; in my
opinion.

~~~
Fuxy
That's weird seems to be responsive enough for me it's not extremely faster
then anything else however it's not slow either.

Compared to some forums the would be a very big improvement in loading speed.

As far as the layout is concerned it's not intuitive i haven't seen anything
similar so it takes a little getting used to however that doesn't mean it's
bad.

Edit: I guess it's getting slightly slower now with the HN effect however I
only noticed it going back to the home page.

------
vertex-four
Is there really any reason to use Javascript as a layout engine for what is
really a traditional forum that we've been doing in HTML/CSS since the dawn of
the web? Frankly, it feels slow and clunky to load, as each component loads
individually and re-positions everything else. Page switching feels horribly
slow as well.

This is a case of single-page-appification of something that really isn't an
app at heart, but is simply a content-centric website.

~~~
krapp
The only reason I can think of - and admittedly I can't prove it but it seems
intuitive - would be the assumption that pushing rendering to the browser and
breaking requests up into fine-grained AJAX requests or doing resorting in the
browser, takes some burden off the server. Why should you have to reload an
entire page, for instance, when a thread only contains one new comment?
Browsers aren't dumb terminals so let them do some of the work.

Of course this is assuming the javascript isn't also piling on a bunch of
nifty effects as well. For me, though, it seems to load really quickly.

~~~
vertex-four
You can solve that with React.JS rendering on the server, then again on the
client once the page has been downloaded. That makes the page render quickly,
then it acts as a single-page app once loaded, without appearing to be jerky
and presenting either a loading screen or a half-loaded page which takes
multiple seconds to load fully. Twitter do this for their web interface
(although not via React).

------
davidjgraph
My issue is with the top level design used (aside from the fact we seemed to
have pushed it over).

The root, [https://community.nodebb.org/](https://community.nodebb.org/), is a
Pininterest/Google+/other tiling

Each of these forums is ultra-old-school BB threaded style conversations. It's
a very weird mix of old and new ideas that doesn't work for me.

The reason I don't like these threaded conversations is once they go beyond a
certain length, the only people who read or post to them are those that
participated in the start of thread. It's just a way of having a public
conversation. For anyone coming in later they need the question and the final
answer - SO.

This isn't really news, there's a reason StackOverflow works, it's brutal
quality filtering. I think a lot of people would still love to see a decent OS
SO clone. OSQA is just dead.
[http://www.question2answer.org/](http://www.question2answer.org/) is the only
active one I'm aware of.

~~~
Mahn
Not everything on the internet is of a Question-Answer form. There are cases
when a SO style forum doesn't cut it, think for example online games/MMORPGs.

That being said, I'm not digging that tiled design on the main page either. I
think a list view would work fine, not need to reinvent the wheel there as
long as the underlying technology is modern and robust.

------
cs02rm0
I think the general level of criticism seems a bit harsh.

It's perfectly usable even under the weight of at least HN, quite a lot of
effort has clearly gone into it. There's some edges that want polishing,
particularly around page transitions but I don't see much from a quick look or
any of the comments that couldn't be resolved in short order. Most of the
issues are where they've been a little keen to apply effects.

I'm not sure I'll ever warm to javascript on the server for my own needs, but
good luck to them I say.

------
psychobunny
Thanks for the feedback and all. Wish we'd get on this page a few months from
now because we're still in heavy development. Bugs and all that - our
community/demo is pretty much running a nightly build ;)

Just wanted to say, the "pinterest" homepage is just a theme. We've got an
extensible API and an easy (hopefully) theming engine. Just to show you how
different it can look like, open up [http://convoe.com](http://convoe.com),
give it a shot on your mobile as well - it's awesome. There are some themes
out there that have a basic traditional view as well.

I'd like to say we're really working on the engine a lot, and once everything
is stable we'll blow full steam ahead on cool themes, some traditional, some
"modern" (whatever you like to think of that as). We also have almost 100
plugins in such a short amount of time, which hopefully shows how extensible
our forum is.

We also have a widget system - you can drag and drop widgets on the
home/sidebar/header etc. and replace components out. Here's an example of what
I mean: [http://i.imgur.com/GObRKQq.png](http://i.imgur.com/GObRKQq.png)

Please star us on GitHub and feel free to fork us and join our community, I'd
love to hear what you guys think on how we can improve even more. :)

\-- psychobunny, core dev @NodeBB

------
leorocky
This reminds me of Atwood's Discourse. I don't know if there's anything broken
with old forums. They don't have the whizbang features, but it's nice to not
load a gimmicky JavaScript UI that adds no value to what is essentially a way
to post and read messages.

~~~
hrrsn
A lot of these new style forums confuse the hell out of me. I miss the good
days of Invision Power Board. Discourse is the only one I've liked so far.

------
bobcostas55
Ah, the "modern web". Where hipsters have to take something that was perfectly
fine and ruin it by re-implementing it badly in the latest fad language. Love
it!

~~~
thathonkey
Javascript isn't really a fad. Server-side JS isn't going to be a fad either,
hate to break it to you.

~~~
romanovcode
Just like RoR wasn't a fad? It's practically gone nowadays because most RoR
devs switched to NodeJs.

~~~
thathonkey
JavaScript has quite a few advantages compared to RoR (eg. it will forever be
the language in browser, hence if you choose Node then you are using the same
language on both sides. This is the main reason I think it won't be a fad like
Ruby. Also Node is way faster than RoR on average). So no, nothing like that.

------
dewey
Very interesting project, but I have to say I'm not a big fan of the fade-
in/fade-out animations while navigating the forum. It'll get annoying very
fast.

The forum home page is a bit cluttered imo, especially with all the latest
post quotes.

And obviously the javascript hijacking the scrolling behaviour on the landing
page is something which I always find quite annoying, but it seems to be en
vogue at the moment.

I hope this doesn't sound too negative, just a few things I noticed while
browsing the demo.

~~~
arghbleargh
Yes, I found the latest post quotes to be rather distracting. There is no
context for the posts (not even thread name), so it's all wasted space for me.
Maybe it would be more useful to show something like recently commented
threads and maybe a preview of latest posts in that thread if you hover. Some
other issues for me:

* The usernames do not appear next to the avatars in the posts, and generally users are identified by avatar rather than username. This is very confusing, especially since avatars can change, and it's hard to distinguish faces in images that small.

* Along the same lines, icons are used all over the place instead of text. I find this annoying, as the icons are not self-explanatory, and I have to hover over every little icon in order to understand what I can do. For example, I had no idea what the "topics" and "posts" icons meant before hovering. Similarly, there is no reason to use text in the navigation bar (add an icon next to the text if you must). To be fair, the icons have the advantage of taking up less space on mobile.

* The styling was a bit jarring to me, with the high contrast and lack of strong borders between elements. The whole purpose of going to a forum is to read a lot of text, so it makes sense to use more neutral background colors. Of course, this can be customized I'm sure, so this is more feedback on the demo site rather than the platform.

But overall the implementation seemed solid, and I can see this eventually
becoming a nice BB platform.

Edit: this is all based on
[https://community.nodebb.org/](https://community.nodebb.org/).

~~~
Scuzz
We use NodeBB at [http://bitbangers.co.uk/](http://bitbangers.co.uk/) but with
a different theme. You should take a look and see how different it is.

[http://convoe.com/](http://convoe.com/) also uses NodeBB with a completely
different theme.

~~~
thenomad
Hmm, much speedier. Nice!

------
Scuzz
This forum software is quite new and they are only on the 0.4.x version. It is
still under heavy development with lots of changes and fixes being implemented
all the time.

I use this NodeBB for one of my forums and I have no issues with it. The only
complaints I have had was to do with a plugin and not the actual NodeBB
software.

Their main theme at the moment is called Lavender and I do find it cluttered
and a bit busy but there are other themes available to use. They do tend to
change the theme with each major release so when 0.5.0 comes out soon there
may be another theme for you to check out.

The plugin and widget system they have is very useful with new plugins being
developed all the time.

The infinite scroll can be turned off.

I have had a few issues with upgrades but that was down to me a slight version
error on their upgrade script.

------
collyw
Does "modern web" mean it has to be Node based? Unless you are expecting a
hell of a lot of traffic, I wouldn't have thought a BB was a particularly
suitable use case for node (correct me if I am wrong).

~~~
joeyspn
No, it means built with a modern stack (MEAN instead of LAMP). It means WebRTC
videocalls, integrated chat, real-time events (notifications, messages,
etc...), github integration, optional redis back-end, karma and rep system, a
growing plugin ecosystem, etc... and all FOSS.

I've been following these guys since the start and I think they have done a
pretty good and refreshing job. They share some features with discourse and
vanilla forums because they are the 3 competitors fighting for the modern BB
software cup...

BB has been quite stagnated for decades, it is actually nice to see some
"innovation" from all these projects.

~~~
adamors
> No, it means built with a modern stack (MEAN instead of LAMP). It means
> real-time events (notifications, messages, etc...), github integration,
> optional redis back-end, karma and rep system.

I hope this comment gets picked up by @shit_hn_says.

~~~
joeyspn
Care to explain why you deleted the WebRTC and integrated chat part?

~~~
romanovcode
Probably because those things actually made sense.

------
bolaft
The threads themselves are pretty good looking but the forum main page
([https://community.nodebb.org/](https://community.nodebb.org/)) is really
cluttered and confusing.

Also, why are there upvote/downvote buttons on thread messages? Do they have
any effect on visibility or are they just for show?

~~~
Scuzz
Their main forum home page is a theme called Lavender which is quite busy.
There are other themes available that are less cluttered and busy, Vanilla and
Cerulean are a lot nicer in my opinion.

------
retejo
I have used this before, in just my first week I had multiple crashes. DO NOT
USE THIS FOR PRODUCTION YET.

~~~
BuckRogers
Judging from the looks of it, I won't be using it in production ever.

------
n0rm
Bad design.

Throws the information at the user and expects attention.

~~~
franze
harsh words but true. "modern web" should not be synonymous with "ugly tile
design" "annoying fade in / fade out whole page animations" "onscroll
something happens stuff"

------
guiomie
Since this is a link to a github repo, I checked the source code. I personally
using tabs as opposed to 2 or 3 spaces makes the code ugly.

Can someone help me undertand "require('./user/auth')(User); " ?? from
[https://github.com/NodeBB/NodeBB/blob/master/src/user.js](https://github.com/NodeBB/NodeBB/blob/master/src/user.js)

~~~
runj__
It initializes the Auth module with the User object. The Auth module in turn
extends the User object with the property 'auth'.

The auth property is then extended with a 'logAttempt' function and a
'clearLoginAttempts' function.

The User object in the parent context can then use these properties.

Oh, and I agree that the tabbing makes it look ridiculous. Javascript should
use two spaces, nothing more, nothing less (let the fight begin).

~~~
b3n
> Oh, and I agree that the tabbing makes it look ridiculous. Javascript should
> use two spaces, nothing more, nothing less (let the fight begin).

That's not the code's fault, GitHub should set the tab-size[1] property to
something more legible.

[1] [http://www.w3.org/TR/css3-text/#tab-
size](http://www.w3.org/TR/css3-text/#tab-size)

------
pibefision
UI seems very complex

~~~
higherpurpose
Yeah, column based UI seems pretty overwhelming at first sight.

------
hhandoko
Have they recently moved to a different pricing model? The homepage says free,
but the pricing page states $35 - $100/month.

I would guess they mean self-host is free, and the prices refers to hosted /
managed instances. In which case, they should make this point much clearer.

~~~
joeyspn
Correct. That's how they intend to make money, but self-hosted is free..

------
mrmondo
Lack of UX & no ACID compliance so I wouldn't use it for anything in
production.

~~~
eurleif
Redis is fully durable if you use append-only files with the "appendfsync
always" option set. [http://oldblog.antirez.com/post/redis-persistence-
demystifie...](http://oldblog.antirez.com/post/redis-persistence-
demystified.html)

~~~
Argorak
Durable != ACID

You can still create an inconsistent state in Redis easily, even it persists
well.

~~~
eurleif
As far as I know, consistency in ACID just means that the database enforces
any constraints that have been defined. Since redis doesn't allow constraints
to be defined, doesn't that technically make it consistent, in a vacuous sort
of way?

You could also view redis's data types as a form of constraint. Using a set
instead of a list achieves the same purpose as using UNIQUE in SQL.

------
edwinyzh
I did registered, maybe it's just me, but real don't like it's UX... So I did
a little more search and found this:
[https://github.com/cnodejs/nodeclub/](https://github.com/cnodejs/nodeclub/)
the UI looks much simpler and neat, but I haven't dig into any of them further
though...

------
kmfrk
While I'm not sold on the software, I'm glad to see more competition in the
field of forum CMSes. :)

------
cabalamat
At the moment this uses the same notation ("...") both to show and to hide
quoted text.

A simple improvement would be to use different text for these inverse
operations (perhaps + and -, or >> and <<).

------
yannis
Is there a demo somewhere?

~~~
dhawalhs
[https://community.nodebb.org/](https://community.nodebb.org/)

~~~
q_no
Oh dear, this look like the pinterest of forums. I find this layout very
confusing. Dunno if I'm too for this but.... Back in my days, a forum hat a
clearly structured (table)layout which gave a perfect overview in a matter of
seconds. Pepperidgefarm remembers! ;)

------
pbreit
There's gotta be better forums design that emphasizes the content more.
There's so much forum software where the chrome overwhelms the content.

------
martindale
Wow, this suffers from most of the same problems that phpBB did/does, in that
it tries to be too many things at once.

Do one thing, and do it well.

------
capex
Kinetic scrolling doesn't let me go through your site how I'd like to. It zips
past, in one flick I am at the footer.

------
hexleo
From web but unlike web, it can work with desktop, it's great. Work on both
mobile and desktop is the future.

------
Xspirits
The prices are totally abusive !
[https://nodebb.org/pricing](https://nodebb.org/pricing)

$75 monthly for MAX 2,500 users, seriously ?

~~~
TimWolla
You are aware that this is the hosted solution? You can get NodeBB at GitHub
if you want it to host yourself.

