The philosophy behind our plugin ecosystem


  • Admin

    On my daily trawl through the blogosphere, I often find reflections from other startup founders that turn out to be very useful in working with NodeBB. Today I read the reflection by Craig Morrison's article on 8 Steps to Building Features Your Users Actually Want.

    In a nutshell, he eschews the building out of every single feature request in favour of building out only those that make sense within the "grand vision" of a product.

    At my last startup, we got bombarded with feature requests. The founder was very gung-ho about including them all.

    It was eventually the downfall of it, in my opinion.

    -- Craig Morrison, UsabilityHour

    Click here to see the full blog post



  • Hey Julian,

    I agree that you can't include every single feature requests in a product. I know all that too well because every other client that I meet with has a grand idea that would revolutionize my security product which of course is already the only leader in Gartner Magic Quadrant. It is virtually impossible to listen to every FR especially when most of them are "nice to haves". You can't please the world.

    But over the years, we realized that functional features that should be implemented but left out created opportunities for our competitors to try and take the backdoor into an account. As a result, functional features that actually solve problems often get escalated to deal breaker level with real revenue riding on them.

    When I relate that experience to NodeBB development, I believe there are core features missing that still prevent full adoption of this engine by major forums out there. I've been following this project for over a year and done enough research to understand what the core requirements are and from my experience of administering a forum for over 6 years.

    To be clear, I am forever in awe of NodeBB's engine. It remains the best that I thus far come across due to its sheer speed and excellent rendering of posts. But there are gripes that always become quickly obvious every time I have visited the site. These possibly slow the adoption of this great product. I'm going to be very blunt here, but I hope it is seen as productive rather than troll event.

    1. The layout on the homepage is very messy The layout is wonky at best. Lack of alignment of the objects make very hard to find anything worthy of clicks. If I go to https://community.nodebb.org as a new user, I expect to find the best native rendering out of the box. Most adopters don't have enough time to be playing with code just to get a decent look out of the box. They want it functional layout from day zero.

    2. Lack of "Real" Private Messaging System (Inbox)
      I brought up this point last year, but the response that I got back was that chat does exactly the same thing and doesn't need to be evaluated. That assertion to me is simply flat out wrong if you have a successful forum. Heck, even Twitter has a PM system.
      What is wrong with the current chat system on NodeBB? For one, there is no subject line. Two, messages are kept in linear form even if the topics being discussed are not related. For instance, when I try to send Julian a message, I click on chat, and I'm seeing chat messages from 8 months ago like I would on instant messaging app. To me, that is major fail on messaging system for a community and it astounds me that this is now in beta 7 yet never discussed as a necessary tool. I should be able to start a new message with defined title.

    3. Lack of simple way to list sub categories
      Again , this is one of the points that avid members here fight over as not necessary. I keep seeing workarounds such as tags used to replace sub-categories. Why the conflict? Tags solve completely different from presentation standpoint. You cannot replace categorization through form listing with tags.

    4. Stop reinventing the wheels
      What initially sold NodeBB to me as I was researching best forum engine to use for my projects was core engine. But the lack of wiliness to acknowledge the aforementioned functional features always pegged me back. Those are not nice to have features. They are essentially what most forums are built on which solve real forum problems.

    Now, it could be that I simply don't understand the mission statement of NodeBB as a product. I wouldn't rule that out. But if you are thinking of displacing the likes of Vanilla, IPB, XenForo etc, then it would be great to at least provide the fundamental features that those engines have out of the box, then start to build on what they don't have to give NodeBB a real edge that would take it into the next level that would reward the hard work that your team have put in.


  • Global Moderator

    A PM plugin wouldn't be difficult to create. adds to long list of plugins to make



  • @pitaj said:

    A PM plugin wouldn't be difficult to create. adds to long list of plugins to make

    That's the point though, Pitaj. PM system is functional requirement which means you shouldn't have to install a plugin to have it unless it is a native plugin that simply requires activating because I can see the benefit of some sites not needing PM. But overall, PM system should work right out of the box.


  • Global Moderator

    @cytrax would a group chat room system similar to Google Hangouts work?

    Just in case anyone doesn't know what I'm talking about, this is the flow of using Hangouts:

    • You open the app or site, and your existing conversations are displayed listed by order of last message received
    • If you wish to create a new conversation, you click the +, and a screen comes up asking you to select people to be in the conversation
    • After creating the conversation, you can change the name, add people, leave the conversation, or change the specific notification settings
    • At any time, you can archive conversations, removing them from your recents list
    • In order to delete them entirely (for yourself), you can go to your archived conversations list
    • If you make a new conversation with a person you have already messaged before, then if there is an archived conversation between you and them, the conversation will be resumed
    • Google+ Circles can also be selected as part of the conversation

    A couple of changes could make this a nice PM and chat system:

    • Ability to add an optional conversation name when creating the conversation (as opposed to only afterwards)
    • Prompt the user if they want to resume a previous conversation

    This should be implemented as a replacement for the current chat system.



  • @cytrax I personally prefer a chat system. It's live and suits nodebb better. PM systems are rather primitive. In my opinion,obviously.



  • @a_5mith Agreed but there's a lack of archiving messages with chat system. Also the chat system is rather primitive because of it's PM like behaviour I mean what's a chat between two persons other than a private discussion. The core feature missing here (but on the roadmap I think) is to able to create group chats in order to have private conversation between more than two people.


  • Admin

    Message archival is an ongoing concern. When all messages are contained in
    a single set, it becomes hard to differentiate when one conversation
    begins, and another ends.

    Group chats (and by extension, the ability to have custom self-contained
    chats) would be a good step forward for the chat system.

    As for whether it should be a plugin instead of core, @pitaj would say so,
    but I'm not sure I agree 😉


  • Admin

    Hahaha yes! Reply by email works! :shipit:


  • Global Moderator

    @julian I would say, if mentions and markdown are plugins, then yeah, chats should be a plugin as well. However, they should be a plugin that is shipped with NodeBB, is under github.com/NodeBB, and is maintained by the NodeBB developers.

    I'm a strong belief is decentralization. It works with GNU/Linux distros really well. This is why it works:

    Say you have a piece of software that isn't modular. After this software is out of active development, a bug is discovered in its chat system. After the maintainer of the code base gets around to it, he finds the source of the bug and fixes it. Since it isn't modular, they can't just push out an update to the chat system. They have to update the whole software, and everyone has to download the large update. Either this, or they have to write a patch script which everybody has to run.

    If you have a modular system, sure, you may need to update the plugin every time there is a breaking change, but that had to be done anyways. In a modular system, there can be competition between plugins, which allows the end user more options. When fixing the above issue, either the maintainer can fix the issue in the plugin and distribute it, or, if he's taking too long, another person can fork the plugin, fix it, and distribute it as a fixed version.

    If the users of a non-modular forum like the Whatever chat system more than the built in one, they don't have any choice but to request it. The developers probably wouldn't implement the change, because their system works fine for most people.

    If the users of a modular forum like the Whatever chat system more than the shipped-with one, they can get somebody to build it for them, and use it in place of the shipped-with one.

    That's my reasoning behind using modular software.



  • When I say, trying to reinvent the wheel is not necessary, you can see what I mean by the fact that many are still fixated on debating whether or not chat system should suffice.

    I really don't see how one could replace the other. I mean, look at Facebook. Would FB exist in its form without a PM? Can you imagine the loose if everything has to go through chat. chat compliments PM. It doesn't replace it. The same way PM doesn't replace PM.

    I also don't think the value of the functional features that I've listed would be detrimental to NodeBB. On the contrary, they would accelerate the adoption of the system.


  • Global Moderator

    @cytrax Facebook has PM? I thought they only had chat...

    I just made a quick search, and I don't think Facebook has PMs. They have chat (Facebook messenger), but not PMs as far I can can tell.

    My main concern with PMs and chat is that then there will be just one more way of communicating with people, and I think oversaturating the communication routes is bad for the software. I think a unified system would be best. JMHO

    If chats were plugosphered, you could implement it either way 🙂


  • Admin

    @pitaj Facebook has chats and private messaging integrated into one. There are two interfaces but they all plug into the same backend.

    Facebook pushes the chat aspect, even going so far as hiding the ability to create new chats with someone you already chat with (fb will just open the same chat window then), but if you have a group convo, you'll see a new chat session made. That's what would be nice with NodeBB, I'd think



  • @pitaj said:

    @cytrax Facebook has PM? I thought they only had chat...

    I just made a quick search, and I don't think Facebook has PMs. They have chat (Facebook messenger), but not PMs as far I can can tell.

    My main concern with PMs and chat is that then there will be just one more way of communicating with people, and I think oversaturating the communication routes is bad for the software. I think a unified system would be best. JMHO

    If chats were plugosphered, you could implement it either way 🙂

    @julian said:

    @pitaj Facebook has chats and private messaging integrated into one. There are two interfaces but they all plug into the same backend.

    Facebook pushes the chat aspect, even going so far as hiding the ability to create new chats with someone you already chat with (fb will just open the same chat window then), but if you have a group convo, you'll see a new chat session made. That's what would be nice with NodeBB, I'd think

    Admittedly, I've been off facebook as user for over 3 years. But I still have an account that I use for the API. I've checked out what you both mean and you're absolutely correct that it is now part of a single system. That's definitely changed from years ago. I believe that revolution is related to when FB decided to ditch the isolating mailing system idea or could have been part of preparation to create a complete separate mailing system for @facebook.com. That didn't gain traction due to fears over privacy from users. But let's digress from there..

    I still think that a functional piece of forum is PM system. Just looking at Facebook's new integrated system, it is obvious that there are limitations. One, I can't choose to delete messages related to a thread in one shot. I have to hand select each message or simply completely remove the conversation. I don't see how scales when compared to threaded system.

    Maybe there is a way to still control it from single backend but enable threading? I dunno.


  • Admin

    The thing I am afraid of is building out a feature that becomes too much like another existing feature.

    IMs are scarily close to "emails", what with the "one message at a time" method of communication, the automatic prepending of "Re:" when you reply... etc.

    ... and emails, I feel, are a bit outmoded, even if it's not going away any time soon.

    I will say I do like the Google Hangouts' way of managing conversations... similar to chat rooms.

    Granted, NodeBB's expanded chat system can be used in more of a "private message" way, no?



  • A discussion about PMs, IMs, chat, email, etc. would be a great one to have at MangoLassi Day on Friday because most of the folks on there come from a background with some very intensive communities and have a lot of experience with what they've liked and disliked in real usage.

    I know that there are going to be a lot of people pestering you about "real time" email alerts too 🙂


  • Admin

    @scottalanmiller Would you be happy to know we have that working here right now? :shipit: (enable it in the user settings!)



  • Is that part of the 0.7.0 chain?


  • Admin

    I believe it made it into 0.6.1, look for the option there. The second part
    of it, replying via email, currently is in development and testing via the
    mandrill plugin.

    In fact, I'm using it right now 😄



  • We found it and everyone is jumping all over it 🙂


 

| |