The NodeBB Team is proud to announce the release of NodeBB v1.0.0!
This milestone has been a long time in coming, and the previous release, v0.9.3, had been out for several months already.
Click here to see the full blog post
The NodeBB Team is proud to announce the release of NodeBB v1.0.0!
This milestone has been a long time in coming, and the previous release, v0.9.3, had been out for several months already.
Click here to see the full blog post
We've had some really great contributions to our language files since we started supporting translations in NodeBB core, although keeping up with the changes has been quite hard. Specifically:
To that end, we've registered NodeBB as a project on Transifex! Using a web site like this will allow us to see at a glance how complete each language is, and allow translators to quickly see which strings need translating, and which do not.
(clap)
In a nutshell, this plugin allows you to share sessions between your application and NodeBB. You'll need to set a
special cookie with a common domain, containing a JSON Web Token with user data. If sufficient, this plugin will
handle the rest (user registration/login).
Single Sign-On allows a user to log into NodeBB through a third-party service. It is best (and most securely)
achieved via OAuth2 provider, although other alternatives exist. An example of a single sign-on plugin is
nodebb-plugin-sso-facebook.
Single sign-on does not allow a session to become automatically created if a login is made to another site.
This is the one misconception that people hold when thinking about SSO and session sharing.
This session sharing plugin will allow NodeBB to automatically log in users (and optionally, log out users)
if the requisite shared cookie is found (more on that below).
You can use this plugin and single sign-on plugins together, but they won't be seamlessly integrated.
This plugin checks incoming requests for a shared cookie that is saved by your application when a user
logs in. This cookie contains in its value, a specially crafted signed token containing unique identifying
information for that user.
If the user can be found in NodeBB, that user will be logged in. If not, then a user is created, and that
unique indentifier is saved for future reference.
Following up from here, in the lead-up to ForumCon, the NodeBB developers are hosting a Google Hangouts AMA (Ask Me Anything) session!
Date: Monday, June 16th, 2014
Time: 20:00 (8pm) Eastern Daylight Time (GMT -0400)
Location: Google Hangouts, link will be posted here (and twitter, and facebook, etc) when it begins.
Tell your friends, tell everybody! We'll be talking about ForumCon and some really exciting things we have planned for NodeBB v0.5.0 and beyond. Hope to see you there!
I suppose in the grand scheme of things, the wait between the last NodeBB release (v1.4.6) and this release, v1.5.0, has not actually been long, though it has felt like so because the development team has been working on it for quite some time. In fact, the first closed issue of this milestone was actually completed in mid-December, and we've been anxiously waiting for the right time to release it.
The reason why we've held off on releasing v1.5.0 until today is so we could fit in as many breaking changes as we could at one time. We've received constructive criticism in the past about how difficult it was to upgrade NodeBB due to breaking changes (some unintentional), and so since the last minor release (v1.4.0), we've changed our strategy once again so that subsequent releases along the same branch should be more stable.
Click here to see the full blog post
Just some teaser screenshots of what you can expect to see when it comes to user groups, in v0.6.1.
Right now, groups are more of an administrative concept -- users are slotted into groups based on an administrator's decision. These changes introduce the concept of a private group, where members must request access from the owner. In addition, groups can be made public, so anybody may join.
Let me know if you have any questions about how this will work
Recently, a milestone had passed me by without my knowing β the original start date for my very first programming job was May 3rd, 2010. Ten years have flown by (or in some cases, have dragged by), and much has changed both in my personal and professional life, and much has stayed the same. I thought it would be a nice exercise to look back and see where I came from.
Click here to see the full blog post
Hello everybody,
The NodeBB team is proud to release v0.7.2, the second revision along the v0.7.x branch. As mentioned in an earlier post, we're aiming to launch more often (roughly every week or so), and the Persona theme is now standard across all new installations.
Since v0.7.0, we've also added Serbian and Danish to our list of supported translations, bringing our total up to 38 languages! More languages are undergoing translations at the moment, and supported languages will always need updating. If you speak a language other than English, please check out our internationalisation project on Transifex!
Concurrent with this release, I'm also releasing a Two-Factor Authentication plugin for NodeBB. To my knowledge, this is a feature unique to forum softwares, and one that is definitely in-demand. In fact, we're already seeing downloads of the plugin, and it hasn't even been formally announced yet!
For those of you in the San Francisco/Silicon Valley area, @psychobunny will be in town for the next two weeks! If you want to grab a coffee or otherwise meet one of the founders (and not to mention, our main designer) in person, feel free to send him an email
This past week, we also happened to hit 10,000 commits on GitHub, which we couldn't have done without our 99 contributors! Who will be the 100th?
For all of our supporters who have been with us since the beginning, and to those who are just joining us recently, thank you for spreading the word about NodeBB -- simply seeing NodeBBs in the wild still makes my day, and we're all happy to make a difference in the forum ecosystem, one community at a time.
The version history can be found on the project's GitHub wiki, and will be updated periodically.
Today we're announcing that we've released the first release candidate of NodeBB v3.0.0.
bootstrap5
. That branch has now been merged into develop
, which is reserved for the next minor or major release version. In this case, the next version is v3, a major release version.develop
contains v3 code, all of the new language strings have been pushed to Transifex for active localisation.bootstrap5
to develop
?If you were on the bootstrap5
branch, that branch no longer exists. You will want to switch to the develop
branch going forward:
git fetch && git checkout develop && git reset --hard origin/develop
Just a reminder that if you have a custom theme, there are quite a few breaking changes that could bite you. We put together a migration guide just for those admins.
Please take a look at the official Plugin Writing Guide
Spring has finally arrived in Toronto, and that means it's time for a brand new NodeBB release!
We initially planned this release for late April, although we ran into a couple of last-minute blockers that necessitated pushing back the launch until today. We're excited to share this new version with you as it contains a couple of new features that allow for compliance with GDPR, as well as fixing a number of issues present in the current stable release.
Click here to see the full blog post
Perhaps I can work this into the markdown plugin, so that WYSIWYG integration is toggleable via ACP/frontend...
After much anticipated demand, I'm proud to say that Push Notifications have landed in NodeBB!
We've been in touch with PushBullet, a Y Combinator-funded startup in San Francisco, and they granted us early access to their OAuth based integration, allowing me to bring this to you guys. We're going into full testing mode with this now that the plugin is more or less complete, so you can try it out here on this forum (by clicking the "Pushbullet" menu option in your user settings), or by clicking here
Pushbullet released their OAuth interface yesterday, and so now's the perfect time to unveil our integration with it too!
This plugin is a premium plugin. What this means is that upon release, it is available exclusively to members of our hosted community and select partners. After a short period, it will be released publically and published on npm like other plugins.
Tentatively, the release date is scheduled for: When NodeBB v0.5.0 lands
EDIT: The plugin is now available to the general public! Install it via
npm install nodebb-plugin-pushbullet
Hello all,
Yesterday (and today, technically), we released v3.0.0-alpha.1, the first alpha release of NodeBB v3.0.0
An alpha release is not meant to be production-ready, although at this point we feel confident enough to deploy it onto some sites.
An alpha release probably means most of your plugins are not upgraded for v3, although most of the changes are stylistic and just means they may function fine, but don't look nice. We did try to upgrade some of the most used plugins, and maintained a list as well.
An alpha release means there may be breaking changes that we did not document, although we tried our best to maintain a complete list. If you find any breaking changes not in this list, let us know here or by filing a new issue.
Warning β plugins will not automatically upgrade, as v3.0.0-alpha.1
is technically a lesser version compared to v3.0.0
, which is what upgraded plugins are advertised as compatible against. You will want to manually upgrade plugins to their latest versions via npm
.
There is one neat oddity about v3.0.0, is that there have been no schema changes since v1.19.3.. it means if you encounter issues with this alpha, you can go back to v2.x (or really, all the way back to v1.19.3, but why would you?)
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.1
./nodebb upgrade -mi
# now upgrade all your plugins to the latest version if available
./nodebb build
When no flags are passed to ./nodebb upgrade
, the flags -mipsb
are used. -psb
is omitted above because p
(plugins) don't upgrade for pre-releases, s
(schema) there are no schema updates, and b
(build) I assume you want to build separately.
To go back to v2.x, git checkout master
and git reset --hard {hash}
where {hash}
is that value you saved earlier. Then run ./nodebb upgrade -mib
Enjoy!
Recently, the team at IFramely reached out to us and express their interest in getting an IFramely plugin made, and in return, they authorised a special, completely free domain for use in all* NodeBB forums!
Here's how it looks
We'll be working with the IFramely team to deliver a seamless url unfurling experience for NodeBBs, hoping to eventually bundle it with core.
* Note: If you are using NodeBB in a commercial environment, your use of IFramely may not be as clear cut. Feel free to contact them for more details!
Hello all,
Thanks to the tireless work of @baris, we're able to present to you a pre-release version of the upcoming NodeBB v2.0.0.
Let it be known that this is a pre-release version, is not meant to be production-ready, and can very well cause very very bad things to happen to your NodeBB forum, sanity, or friendships, and not necessarily in that order
... because who doesn't like GIFs?
Immature, you say? Waste of time, eh? Totally.
NodeBB now has a plugin allowing you to search and reply with GIFs. It is available now, installable via the plugin name nodebb-plugin-tenor-gif
. As the name suggests, it is powered by Tenor GIF.
The only acceptable replies to this topic are GIFs. Thank you.
Welcome to release week!
I want to start off with a retrospective of the Persona theme β why it factored in to the Harmony theme project, what we aimed to achieve, etc.
Some of this was highlighted back in September, in our design preview, but I did not go into further details about how Persona influenced our decision.
The elephant in the room is why we decided to start fresh, and not continue to iterate on Persona. It's a very good question that deserves a proper answer.
As originally written in my internal high-level writeup:
Our current theme (Persona) has been developed organically over time, with new additions [often] made without the oversight of a designer. Additionally, we do not have a consistent design language and style guide. Different parts of the site have different design influences based on who developed it. Over time, this style of development has led to a theme that is functional, but not cohesive.
In addition to the above, we wanted to make the jump from the now-outdated Bootstrap 3 base (on LESS), to Bootstrap 5 (on SCSS). Doing so already necessitated an audit (and oftentimes a rewrite) of every template in Persona, and a rewrite of every stylesheet used. Even prior to the decision to work on a new theme, we were finding artifacts in Persona that showed its age: fallbacks for Internet Explorer 8, design decisions that were naive in retrospect, among many others.
The prevailing wisdom is to never rewrite your codebase from scratch. While we're definitely not rewriting NodeBB core, the front-end is a significant piece of the overall puzzle, and I will be the first to admit that we took a gamble here.
Did we go too far? Did we not go far enough? Did we miss anything in Harmony that Persona has?
At least on that last point β most definitely. Again, as per Joel:
The idea that new code is better than old is patently absurd. Old code has been used. It has been tested. Lots of bugs have been found, and theyβve been fixed.
It is a given that Persona contains fixes that Harmony does not. It does mean we'll run into them again (and we have already run into a number). What we're hoping here is that the perceived benefit will far outweigh the initial teething pain of a brand new theme.
What we do know already is that continuing to iterate on a Bootstrap 3 era theme in a Bootstrap 5 world would mean each individual feature would take longer, and that that debt builds over time.
All this is not to say that we dislike Persona. A great number of our clients use Persona, and will continue to use Persona, even once they upgrade to v3. Persona has served us β and will continue to serve us β well. The theme will continue to be supported by the NodeBB team.
What started it all was the need for a refreshed user profile page.
As per a different internal document, and audit revealed the following problem areas:
- Sub-pages are hidden inside of the overflow menu, which has a discoverability problem (label A in Appendix A screenshot)
- Theο»Ώ"profile stats" (profile views, posts, followers, etc.) seem too front-and-center for something that is at-most glanced at occasionally (label B in Appendix A screenshot)
- Conversely, items like "website" and "location" are more noteworthy but are rather muted in their presentation. (label C in Appendix A screenshot)
- βFeedβ style display of user posts is actually two lists on top of each other: The userβs βbestβ posts, and the userβs βlatestβ posts. Only the latter need be kept in the re-designed page.
- The current design does not make the best use of available negative space, weβd be looking for a more efficient presentation of the elements on this page.
Once we took that critical eye to the user profile page, we started seeing other areas that needed improvement. At that time, we were still firmly aboard the "continue iterating on Persona" train, but what ultimately changed our mind was our revised long-term planning meeting. We identified the need to upgrade core aspects of NodeBB (that being our minifier and front-end framework), and those structural projects dovetailed nicely with the need to rework portions of the Persona theme.
To give a rough timeline for all of this:
While I am relieved to (soon) wrap up this latest chapter culminating in the release of v3, we have not closed the book on NodeBB development quite yet β we will continue as we have always done, by iterating on our code, tackling technical debt, and making sure that NodeBB remains one of the top community forum platforms available.
If we did everything correctly, week immediately following a release should be quite quiet indeed.
In reality, of course, that almost never happens. Bugs are discovered quickly as usage is expanded beyond the open beta group of forum admins.
The question afterwards is what comes next. For a long time, we've operated on a system where we didn't have a long-running roadmap. Being a small team, our priorities were few, and easy-to-remember.
For the first couple years, our priorities were feature-parity. After that, it was a race to profitability. We managed to reach that point with our hosted plans, and with help of custom development work. What followed was a rather long period of incremental improvements to NodeBB β build a better product, and the people will come. What we lacked was direction.
By the time v1.19.x rolled around, we knew we needed to make a change. We needed to take a step back and take a closer look at what our priorities and values were. We had our first roadmap meeting last February, which culminated in our plan to release v2, and later v3.
We plan to have another meeting in May, where we'll hold a brief retrospective and plan out our next year of development. While I can't make any big announcements just yet, I can at least share some maybes that we've discussed:
This is happening.
Topic thumbnails were a minor feature added a very long time ago (might've been around v1, even). It hasn't gotten much love since, but we're looking to integrate it more. We updated the composer to better handle thumbs in v2, and we're working on integrating thumbnails into the Harmony theme as well.
My favourite phrase of the week. We've pledged to continue evolving the Read and Write API, and we're getting closer to the point where we can rename the APIs to better reflect their use. There's still a great many write operations still carried out by our socket.io implementation, so that will continue to be worked on piecemeal as we port those methods over to the Write API.
The other half of potentially deprecating socket.io is to implement Server-sent events. Socket.io was quite popular when we first started NodeBB, but using the native built-in library is a more future-proof solution. We'll look into potentially going this route.
this idea's in its infancy, but...
NodeBB being a piece of software that is installable and configurable by individual admins means we've already achieved half of the formula for federation. It's theoretically possible to hook NodeBBs together and share content.
I've often said that Twitter is like shouting into the wind. Starting a forum is often like talking to an empty room. It's very possible we can take steps to change that.
We like Harmony so much, we're turning our gaze towards the admin panel this time
Ha ha, just kidding. Or am I?
What do you want to see in NodeBB? What big ideas do you think we should pursue? Maybe we should just take a beat and fix more bugs instead, let us know