Skip to content

NodeBB v3 and Harmony Theme

Discussion
  • And now, something of a quandary. Given the imminent (well, Q2 2023) release of NodeBB v3 and the timed release of the Harmony theme that will ship with it - considering the hundreds of hours in terms of development I’ve invested in this new engine, do I

    I’m also looking for indications as to how many will jump onto the v3 train when it arrives - for example, I fully expect there to be a transition period, but is there any point in keeping the v2 theming engine afloat when v3 will render support for it obsolete at some point in future? I know v2 will be around for some time, but it can’t be infinite for obvious reasons - at some point, NodeBB will want to pull the plug on this as it will be considered legacy.

    Very interested in thoughts…

  • I’m also interested to understand migration timelines if you have (or have even thought about) them. What would be the amount of work and effort involved for you own sites? I expect a torrent of new CSS at the very least…

  • phenomlabundefined phenomlab referenced this topic on
  • For me, you have to abandon V2 or else you have to choose to stay on something that will be obsolete after a while or that will stabilize without major updates. Why not ? It’s a choice.

    For my part, I would like to upgrade to V3 either with persona on bootstrap5 which won’t change a lot in terms of design or switch to the Harmony theme which I find very beautiful and modern at first sight. I must see the theme in live and test it before take a decision.

    On the other hand, I already know that a lot of users will be disconcerted or even very surprised or will stop coming to the forum.
    There too it is a choice.

    – Personna or Harmony in V3, in both cases, it’s going to be a crazy job (less for Personna):

    • First of all, we will of course have to be sure that all the plugins we use work correctly with this version (or wait until they do, which would leave time to worry about other things)

    • That all the JavaScript and functions developed with Mark @phenomlab work like the Theme Switcher, the footerbar, the welcome message with change of the logo etc.) I will surely have to modify the code of all these functionalities according to Personna/Harmony/Bootsrap5 and I know @phenomlab will be there to help me. It is especially him who has the knowledge of the JS. I prefer CSS even though I’m not stupid

    • You will then have to code from scratch (if Harmony) or adapt (persona) all the CSS themes already present with the Switcher theme. In my opinion the ideal will be to start from scratch because a good part of the CSS classes will no longer exist and there will be new ones

    –> Anyway I would wait at least for the first stable release before coding anything in CSS or functionality.
    –> So by the time all the plugin devs update, harmony is fine-tuned and everything said above is coded correctly, it won’t be before the end of 2023 in my opinion that it will be in production without bugs.
    –> Of course all this will have to be done on a development VM. I just installed mine with nodeBB 3.0.0 alpha 3

    I expect a lot on the improvement of the chat system or the global chat plugin.
    It is a very appreciated function and not badly used on our forum (we like to discuss without going through other platforms)

  • @DownPW this is a great response, and it sounds very much like you’ve thought things though. I agree - it makes more sense to cease development of the v2 theming engine, and focus on v3.

    However, it’s worth noting that v3 (particularly with Harmony if I understood correctly) will also have the capability of switching themes - or at least, colour swatches, which is where I was originally heading with v2. It will be interesting to see how this materialises over time, given that the version in Persona seems to be something of an afterthought that doesn’t work very well either.

    The new Swatch capabilities skates for inclusion into Harmony may well render the custom theme switcher we developed obsolete if it offers a hook meaning it can be extended.

    From my perspective, all of my custom scripts will be updated to work with, and be fully supported in, v3. This is inclusive of the theme switcher (if applicable) and the custom footer etc.

  • @phenomlab said in NodeBB v3 and Harmony Theme:

    his is a great response, and it sounds very much like you’ve thought things though. I agree - it makes more sense to cease development of the v2 theming engine, and focus on v3.
    However, it’s worth noting that v3 (particularly with Harmony if I understood correctly) will also have the capability of switching themes - or at least, colour swatches, which is where I was originally heading with v2. It will be interesting to see how this materialises over time, given that the version in Persona seems to be something of an afterthought that doesn’t work very well either.
    The new Swatch capabilities skates for inclusion into Harmony may well render the custom theme switcher we developed obsolete if it offers a hook meaning it can be extended.
    From my perspective, all of my custom scripts will be updated to work with, and be fully supported in, v3. This is inclusive of the theme switcher (if applicable) and the custom footer etc.

    Personally, if the new swatch on harmony theme is just a color change, that wouldn’t suit me at all. Switching with CSS is just huge and much more functional
    We should also offer integration officially to NodeBB. that would be awesome 😉

  • @DownPW I’m running Harmony now on https://sudonix.dev 🙂 There is no swatch functionality from what I can see, so the code we developed is still up for the taking.

  • @DownPW I missed this - there is a skin switcher

    9f54e2bc-e717-4cae-a642-49c3d41d5238-image.png

  • @phenomlab Yep but that don’t work with css File ?

    I had tried in the past to create a theme with the official nodebb doc and I never succeeded

  • @DownPW I’ll need to look at the structure, but I can’t see why not.

  • @phenomlab

    I also see another problem with this selector : he display all the default themes.
    We should be able to remove all those present by default and display only those we need

    in addition as soon as you do a CTRL + F5 or refresh web page with F5, it removes the theme lol

  • @DownPW yes, I noticed that also. Looks like session data isn’t being retained.

  • @phenomlab said in NodeBB v3 and Harmony Theme:

    @DownPW I’m running Harmony now on https://sudonix.dev 🙂 There is no swatch functionality from what I can see, so the code we developed is still up for the taking.

    thanks for this one 👍
    I could check it more seriously…

  • Just looking through my code here, and provided that Persona as a NodeBB theme continues to be maintained, then the conversion of my code to v3 is a relatively simple affair meaning I could continue with my Swatch code without too much effort.

    Essentially, the move from v2 to v3 is basically the migration of bootstrap from v3 to v5. I suppose much of this depends on the future of Persona…

    EDIT - I’ll just leave this here
    https://community.nodebb.org/topic/16908/january-2023-developer-update/15?_=1673947070798

  • @phenomlab said in NodeBB v3 and Harmony Theme:

    Just looking through my code here, and provided that Persona as a NodeBB theme continues to be maintained, then the conversion of my code to v3 is a relatively simple affair meaning I could continue with my Swatch code without too much effort.
    Essentially, the move from v2 to v3 is basically the migration of bootstrap from v3 to v5. I suppose much of this depends on the future of Persona…
    EDIT - I’ll just leave this here

    Do you think I could go through your swatch rather than the one I have?

    Because I don’t believe you released your code here. Whether ?

    Either way, I know I’ll have to start all over again in these 2 cases

  • @DownPW Yes, of course. However, because of the change of elements, I have to re-write most of it. In addition, only one theme will be supported - either Persona, or Harmony. If we go the Harmony route (which is highly likely) then virtually all of the swatch needs to be re-written including LESS etc.

    I don’t want to support more than one theme and would ideally stick to Harmony.

  • @phenomlab said in NodeBB v3 and Harmony Theme:

    Yes, of course. However, because of the change of elements, I have to re-write most of it. In addition, only one theme will be supported - either Persona, or Harmony. If we go the Harmony route (which is highly likely) then virtually all of the swatch needs to be re-written including LESS etc.
    I don’t want to support more than one theme and would ideally stick to Harmony.

    Yes indeed, we have to focus on one main theme and not two. (Persona or Harmony)

    I don’t yet have the opinions of the other members of my team but since it’s I who will then develop the themes compatible with Harmony, I think that we will go towards the road of Harmony

    If you are ready to share your codes once finished and explain how to use it, it’s really a good thing and I already thank you in advance 😉

  • @DownPW said in NodeBB v3 and Harmony Theme:

    If you are ready to share your codes once finished and explain how to use it, it’s really a good thing and I already thank you in advance

    More than happy to do so. In fact, BS5 makes it so much easier as LESS variables are being used, which we simply target and change. Far LESS (pun intended) work !

  • @DownPW I’ve started development work on Harmony in v3 and should have some beta code for you to test soon. Stay tuned!

  • @phenomlab Oh yeah very good news 😉

  • phenomlabundefined phenomlab forked this topic on
  • hello mark

    here is my tutorial for install V3.00 but it’s for alpha3.0 like you see in command.

    cd /path/to/your/nodebb
    git rev-parse HEAD  # save this value in case you need to roll back  
    git fetch && git checkout bootstrap5
    git reset --hard v3.0.0-alpha.3
    npm config set legacy-peer-deps true
    ./nodebb upgrade -mi
    ./nodebb build
    ./nodebb start
    

    – My questions :

    • How to know the name of the last version for V3 for install it (here is alpha.3) and adapt cli command above ?

    • How to upgrade the dev environment ? I know when Harmony it’s upgrade, we must upgrade boottrap 5

    – Here the command to upgrade bootstrap5 :

    git fetch && git checkout bootstrap5
    

    Many thanks


Related Topics
  • 4 Votes
    7 Posts
    752 Views

    @phenomlab oh no, that is 1 cent on the video, but you are right, symbols are similar… I just converted it to $1 , since it is more intuitive in daily life…

  • Nodebb 3.2.0

    Bugs
    20
    2 Votes
    20 Posts
    890 Views

    @crazycells yes, I’m aware of that. Need to fix

    EDIT- fixed. Caused by the same CSS that is used to absolutely position the “verified” group badge in the posts view. Amended this CSS so that is specifically targets the post stream as below

    li[component="post"] a[href*="/groups/verified"] { position: absolute !important; left: 8px; z-index: 2; margin-top: 1px; border-radius: 999px !important; line-height: 14px; display: block; height: 22px; margin-left: 0px !important; }
  • Interesting Widget code, but can't fetch API

    Solved Customisation
    26
    2 Votes
    26 Posts
    2k Views

    @Panda said in Interesting Widget code, but can’t fetch API:

    How did you drop that widget into the post there?
    I hadnt seen this BSgenerator anywhere on sudonix site, do you use it somewhere already?

    Yes, here

    https://sudonix.org/topic/414/corporate-bullshit-generator?_=1687774393044

    It’s not a “post” or “topic” in the common sense. It is actually a page in it’s own right and leverages nodebb-plugin-custom-pages. This in turn creates a new “route” which behaves like a page, meaning it is then exposed for widgets.

    @Panda said in Interesting Widget code, but can’t fetch API:

    Also can you explain more what you mean by calling the code externally. In my API call example, how would I go about doing that?

    By this, I mean create all the required code in an external JS file that is reachable by the NodeBB instance - so, in “public” for example - or in my case /public/js. The widget then “calls” that file and because it runs outside of the scope of NodeBB, you just need to return the values to the widget.

    Hope this makes sense?

  • NODEBB: Nginx error performance & High CPU

    Solved Performance
    69
    14 Votes
    69 Posts
    6k Views

    @phenomlab

    Seems to be better with some scaling fix for redis on redis.conf. I haven’t seen the message yet since the changes I made

    # I increase it to the value of /proc/sys/net/core/somaxconn tcp-backlog 4096 # I'm uncommenting because it can slow down Redis. Uncommented by default !!!!!!!!!!!!!!!!!!! #save 900 1 #save 300 10 #save 60 10000

    If you have other Redis optimizations. I take all your advice

    https://severalnines.com/blog/performance-tuning-redis/

  • who is read NodeBB

    Customisation
    6
    0 Votes
    6 Posts
    632 Views

    @cagatay You should ask in the NodeBB forums. Perhaps reference this post

    https://discuss.flarum.org/d/23066-who-read

  • Top Ranked Forums

    Chitchat
    9
    3 Votes
    9 Posts
    570 Views

    The real issue here is that most people consider forums to be “dead” in the sense that nobody uses them anymore, and social media groups have taken their place. Their once dominant stance in the 90’s and early 00’s will never be experienced again, but having said that, there are a number of forums that did in fact survive the social media onslaught, and still enjoy a large user base.

    Forums tend to be niche. One that immediately sticks out is Reddit - despite looking like it was designed in the 80s, it still has an enormous user base. Another is Stack Overflow, which needs no introduction. The key to any forum is the content it offers, and the more people whom contribute in terms of posting , the more popular and widely respected it becomes as a reliable source of information.

    Forums are still intensely popular with gamers, alongside those that offer tips on hacking etc.

  • How to downgrade plugin version on NodeBB

    Solved Customisation
    11
    3 Votes
    11 Posts
    849 Views

    @cagatay no problems

  • IRC Server/Client - Chat App with NodeBB

    Linux
    6
    1 Votes
    6 Posts
    678 Views

    @Hari not sure from the consumer perspective, but Skype has been all but completely consumed by Microsoft Teams when it comes to business usage.