Hacker News new | past | comments | ask | show | jobs | submit login
NodeBB: Node.js-based forum software (github.com)
285 points by vecio on June 23, 2014 | hide | past | web | favorite | 115 comments

Some obsevervations while using 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 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.

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

Real-time updates, differential updates, cacheable partials, free distributed rendering, to name a few.

Specifically in the realm of cacheable partials, every single site out there that repeats elements between pages could benefit as a well-architected SPA. It's analagous to h.264 vs GIF: you can compress/cache the similar chunks and only update the deltas and save bandwidth, making your platform more scalable. Sure, GIF can compress each individual frame, but h.264 improves on that dramatically by compressing in another dimension. The essence, in my mind, of the SPA is keeping your HTTP requests DRY.

I agree on the benefits of SPA, but there is a dealbreaker when it comes to forums - you want it to be searchable, and that currently means using server generated templates for SEO purposes (or a setup using PhantomJS to pre-render the pages each time, but that is even more suboptimal, especially for a potentially fast moving BB).

NodeBB's engine supports both cold-loads from server-side and ajax-loaded pages. So if you browse NodeBB via JS-disabled browser for example, it will still work (read-only)

You can try SnapSearch https://snapsearch.io/ which uses Firefox to render SPA sites.

> 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) 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://discuss.atom.io http://discuss.emberjs.org

Discourse emulates the normal behaviour really well, good for them. After a quick look looks like they do not suffer from the issues I mentioned before.

I just do not see any benefits going SPA style when working with data that is essentially collection of documents.

Single-page applications can change pages faster.

Sure about that? Try browsing http://forum.dlang.org/

Especially if you're in Europe (I get a ping time of 24 msec from Switzerland), the pages load nearly instantly. It's actually the sort of thing that you notice and go "whoa" it's so fast.

Yet there's nothing special about it. It's just a regular web server, written in D, that serves pages really fast (probably out of cache).

If you use HTTP caching and compression appropriately, and keep your design light, there's no particular reason you need to use Javascript to speed things up.

I'm not saying non-single-page-apps are slow, but that single-page apps can be faster in certain circumstances. When I click a link in your example I still get that slight delay, which could be eliminated with a single-page application.

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

neither am I, there's a good reason people are willing to pay for older BB systems like IPBoard and vBulletin, they work and they are iteratively improved upon instead of 'UX-rebooted' like Discourse and NodeBB. I personally don't think any of the systems are perfect but the the older forums work fine as long as they are popular enough that resources are dedicated to policing them.. so I personally feel proper inter-forum karma integration should be top priority, more-so than new UXs!

This is why I prefer 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.

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

You can see my app too: http://PlaysZone.com uses the same single page concept with server side rendering for the first loaded page. The other pages loads some json with ajax.

> 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.

This sort of design element occurs way too often. I call them Tantalus footers, because they're always just out of reach. It also makes me wonder if the people who designed these things actually tried using them under real-life conditions.

I was just about to complain about overriding the scroll behaviour. The homepage doesn't work properly because I have Chrome at a weird size, so I'm unable to see all of the features list, if I scroll slightly it takes me to the next section.

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

Saying Nothing is to be gained is going a bit far. This is an interesting experiment, with some novelty, that will be iterated upon. I presume that the bugs will also be fixed.

Yes, I was a bit too harsh. My point is that discussion forum is almost completly just a collection of documents. Traditional web pages serve that structure really well.

I agree although I can see value in a pjax style approach to get faster page reloads. As long as you preserve normal behaviour and url structure, this is usually a win-win.

EDIT - just checked and it does a moderately good job without javascript: "Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode."

This is probably an acceptable compromise. Just to clarify - I'm not arguing that everything should work with js disabled - just that it's a good litmus test for whether a website is fairly robust with regard to normal HTTP behaviour.

Discourse in general loads a lot faster than traditional bbs when you click links or try to view a specific post. So what's being gained is better user experience. I'm not sure I see the relevance of the underlying data structure... isn't email just a collection of documents too? Why is gmail a SPA?

I don't know if I would call a fully working product with pricing details and everything an experiment.

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

What do you mean? I've tried on Firefox (Beta) and Chrome on my Nexus 5 and it seems to work fine for me.

>Do not fiddle with scrolling when doing web development, ever.

This should be carved into the desk of every webdev on earth.

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...

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

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).

Out of curiosity, why Yii?

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.

I had a similar experience not too long ago. I'm not overly fond of PHP and had already begun working on other aspects of the site in NodeJS.

My solution was to rely on Vanilla Forums for user management and authentication. They also have a pretty nice minimal theme designed for embedding in other applications.

I created a quick and dirty NodeJS plug-in for mimicking Vanilla's cookie hashing so that cookies could be read and validated from Node. It's worked out well.

What about SMF? It's very efficient, even though the code is messy, and easy to setup.

SMF is nice for users and usually OK for admins but the code is indeed a mess, and, for example, it stores usergroups as a comma-separated list in a VARCHAR(255), so it will break horribly if you have many membergroups.

Source: admin on a SMF2 forum.

PHP, MySQL, Windows, lets face it, the easiest set up wins almost every time despite in every case, having better competition.

This is a phenomenon the "better competition" should probably pay attention to, then.

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.

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.

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.

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.

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).

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/, 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/ is the only active one I'm aware of.

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.

Many forums are exactly that - a public conversation. Not everyone who makes a post on a forum is looking for an answer per se.

I think the Pinteresque tiling home page might work if the information density were to be increased by quite a lot. What bothers me most is how you can only see the name of the board and the two/three most recent comments. What does that provide in terms of information? Not much IMO.

The forum itself just seems like the same 90's forum from yesteryear with a new glossy coating. Once you've gotten used to the Reddit/HN way to manage content you simply can't go back to that.

I'm surprising myself: I actually like it!

It's refreshing to see people trying new ideas. And when I thought about the main page further, I kinda realized that a table-listing of forums is not great.

Best of wishes to this project. You left a lasting impression in barely a few seconds. I'm impressed.

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.

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, 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

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

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.

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.

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!

I feel ya. And Javascript is ugly, I personally would never use it if I didn't absolutely have to.

What's more, Node.js code tends to look horrible with all the callback indentation and spaghetti. An async server's programming environment and style could have been done way more gracefully.

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

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

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.

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.

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/.

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

http://convoe.com/ also uses NodeBB with a completely different theme.

Hmm, much speedier. Nice!

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.

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).

"modern web" doesn't have to be node based, but just about any web app is a suitable use case for node.

The exceptions are web-apps that require heavy backend computation (javascript/node sucks at that), but even then you could use node + a work queue that's handled by a more appropriate language.

Nodejs has arguably the best websocket implementation of any language and has mature drivers for pretty much every database backend. It has various templating frameworks etc.

A BB just needs a database at the backend and a way to get that data out to a browser. In that regard, nodejs is more suited than many other languages.

I don't really get your comment since it seems to imply that writing it in nodejs comes at some cost and you need to justify that cost by saying you expect a lot of traffic. I've seen this attitude before when someone writes something in assembly.. "Oh, you're hand-optimizing your program's assembly? Unless you really need that performance I wouldn't think it's worth it to use assembly". The thing is, nodejs doesn't have all that many problems. Sure, there's the massive number of warts of javascript, but people have learned to write readable and less-buggy code in the javascript ecosystem at this point (promises, jslint, etc).

So to repeat my answer to your question: no it doesn't have to be nodejs to be "modern web", but I do think nodejs is appropriate for this use case.

>it seems to imply that writing it in nodejs comes at some cost and you need to justify that cost by saying you expect a lot of traffic

Maybe I just too traditional, but there are far more mature back end frameworks available, without the warts of JS. For me I prefer to see a need or justification of using the latest software trends, not just because "its modern" or "that's how we do things nowadays" (a genuine response to a project I am involved in when I asked the case for using Node).

Node.js obviously has some use cases where it will shine, but I wouldn't have thought a BB was one of these places, as its quite a traditional kind of app.

Exactly right. For a web forum I'd stick to mature, free options built in Python or Ruby. Node.js stuff is great for those who want to use it, but not me, I'd use DjangoBB. Look at this thing of beauty http://support.djangobb.org/. This post stinks of advertising to me. Or the worst form of Node.js bandwagoning if it isn't- so I hope it is viral advertising.

Not to mention this thing is a pure, pre-ejected abortion of design. https://community.nodebb.org/ I'm not sure who these web designers think they're fooling with this crap. The "modern web" looks full of hipster goons who would have also cooked up the ribbon interface. I'll stick to my minimalism, black text on white backgrounds, usable forums, and not reinventing the blink tag.

I think with nodeBB we can safely say, NEXT!

> Look at this thing of beauty http://support.djangobb.org/.

I feel like I just traveled to the past.

Yeah, how dare modern users want to be able to read right to left and top to bottom, as we've been doing for thousands of years. These young hipster types, they know what's up! Disrupting organization of hierarchies is the new Snapchat! In the future, we're all going to evolve Cookie Monster eyes to be able to coordinate these masonry messes.

You may have, but the elders of yesteryear appear to be more wise than the path the hipsters are painting for us.

Right now, nodejs shines anywhere you need websockets and I personally want to see the modern web move to websockets. It allows for much more cool interactions than the server being unable to get data to the client without the client either clicking on something or constantly polling. On a bb software, having the "this thread has unread posts" indicator update without a page reload would be great, and websockets make that easy.

Well, for what is worth node.js didn't come out yesterday. I would argue it's reasonably mature for a production app at this point.

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.

As I suspected. Node / JS / Angular / NoSQL, hispter faddy stuff = cool and modern. Solid mature, tested stuff like LAMP = old fashion, screw that.

(You are aware that all LAMP stuff is also FOSS)

No collyw, vBulletin (the reference forum soft) is not FOSS, and it is quite expensive. PHPBB is OS, but like all the BB soft, has been stagnated for a decade [0], in fact the NodeBB devs were PHPBB devs before...

We really need to explore new ways of interaction, and blending old fashioned boards with the new "real-time web" is a nice start. There's nothing bad in trying new things. Discourse, with rails, is another good take...

PS: I use a lot of LNMP for 70% of my freelancing projects, but for a forum that needs real-time capabilities Node is a convenient option.

[0] http://www.wired.com/2013/02/discourse/

We were comparing MEAN to LAMP, both of which are FOSS.

> 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.

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

Probably because those things actually made sense.

Node would be useful for the chat feature that one can see in the screenshots.

Because they are using node and they were needing to implement a chat feature?

The threads themselves are pretty good looking but the forum main page (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?

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.

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

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

Bad design.

Throws the information at the user and expects attention.

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"

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

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).

> 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

"require('./user/auth')(User);" is a simple call to the "./user/auth" module with User as a parameter. Check https://github.com/NodeBB/NodeBB/blob/master/src/user/auth.j...

Also found the coding style a bit complicated and confusing - looks like they are passing the User module to other modules(in this case the auth module) and adding methods.

Yah, the module is actually an exported function. Makes sense, but a bit confusing.

require, require, require.

Reminds me of early php days puke.

UI seems very complex

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

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.

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

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

I was curious about the use of Redis as a permanent data store, too. Is this a common use case for people? I've only used it for a data cache, where the actual values are backed by a relational data store and some logic that calculates expensive numbers.

Redis is fully durable if you use append-only files with the "appendfsync always" option set. http://oldblog.antirez.com/post/redis-persistence-demystifie...

Durable != ACID

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

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.

what do you mean no ACID compliance ? the db used? And can you be more specific about what's wrong with the UX?

Correct, regardless of what redis tries to sell itself as it is not a database I would trust my data with long term. As far as UX goes the demo site was incredibly hard to use, it doesn't lead your eyes trough a path of workflow, not to mention that narrow vertical columns are a highly inefficient way to digest data.

Is an online forum an application where you have to worry about trusting your database? If you lose a forum post now and then, it's not a good thing, certainly, but depending on the forum, it could be an acceptable tradeoff.

Considering that a forum is also not the most high-traffic kind of application, I do not see the reason why you should use a high-performance K/V-store (with all the tradeoffs coming with it).

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/ the UI looks much simpler and neat, but I haven't dig into any of them further though...

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

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 <<).

Is there a demo somewhere?

They really need a demo link in the header.

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! ;)

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

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.

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.

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

The prices are totally abusive ! https://nodebb.org/pricing

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

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

Applications are open for YC Summer 2020

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact