We like to spread the word of Node.js and the incredible things it can do by profiling creative, interesting and fun uses of Node.js in various products and projects. We call it “In the Loop.”
This time around, we are looking at Nodejs Forums – a forum for Node.js developers. We caught up with site’s lead developer, Stephen Keep to find out what the forums are all about and what the lessons learned are.
What was the best piece of advice you’ve received from Node experts?
Node.js was the first time that I was working with an evented, single threaded design. I was using a few synchronous file saving methods in my project and I could see that performance was not as expected. I came across a good article written by the LinkedIn engineering team titled “10 performance tips from LinkedIn Mobile”, it’s still a great read and I would urge all to go and have a look. The article’s first point discussed my exact problem: Synchronous functions remove some complexity from your code, but block the main thread causing huge performance problems. In LinkedIn’s tests the synchronous code could only handle tens of connections per second in comparison to thousands with asynchronous code. When adding a module from NPM it is also worth checking that there are is no synchronous blocking code inside.
What was your node.js learning curve like? What drew you to Node.js in the first place?
I think most of us go through the same process when starting node.js development for the first time. We figure out how to separate code into modules. Then quickly we get callback hell, which leads us onto promises. There are many promise modules on NPM that solve the callback problem, leaving us with the question, which is the best? I see a lot of questions on Twitter and IRC along the lines of “What is the best NPM module for x?”. This is the best and worst of node.js development at the moment. We have this great open source library of reusable code, nevertheless, it’s getting so large now that someone new to the scene struggles to make the correct decisions without asking for help.
What are your thoughts on the node.js community? How can they help out with this site?
I see so many questions being asked on the IRC channel and many community members that are willing to help. However, these questions are then lost in time, cannot be easily retrieved, read back, searched or built upon. I hope that nodejsforums.com will provide a place for these discussions to live on permanently and grow over time, providing better answers and increasing the knowledge within the community.
What is your vision for this site? You have sections on announcements, node development, tutorials and so on. Is this the main focus for the site, or do you have growth plans?
When I was starting with node.js, tutorials online were sporadic and Twitter was the best place to discover them. Things are getting better, there is some great educational content from nodeschool.io and we need to build upon this great work. Our plan for the early part of this year is very much on useful learning material, either created on the nodejsforums.com site or links to external blogs. In order for node.js to continue its growth, we need to educate those who are new, making sure their projects are a success. The forums will help these new members, give them somewhere to ask beginner questions and provide detailed recourses to learn from.
Can you tell us about the site architecture?
Currently the site is running vanilla nodebb, it is using redis for backend storage and is hosted on Heroku.
Are there any node.js projects you’ve worked on you’re particularly happy with.
I have been working on a lot of enterprise grade projects using node.js and I think this is a sign of its maturity. These projects have varied in size and scope and have predominantly been either websocket or express.js projects. I have also released an NPM module for using the Bugsense API within node.js, and the kind people at Bugsense sent over a full license for free.
What’s the future hold for NodejsForums?
I believe that with great content being added to the site over the next few months’ nodejsforums will be one of the best places to go for node news, tutorials and discussion. I hope those reading this will go and create an account on the site and start giving back to the community by helping others.
Thanks for discussing this important project with us. We look forward to watching its progress!
- If you have a cool Node.js project or product you think we should profile, click here to tell us about it.
- Looking for Node.js training? Check out the schedule of events to see when it is coming to a city near you.
- A bunch of great videos including What’s New in Node.js v0.12 and how to Debug Node apps are on the StrongLoop Videos page.
- Want to read more articles like this? Check out past “In the Loop” profiles on CasinoRPG, FlightOffice.com and the 365 Project.