Useful Node.js Tools, Tutorials And Resources

Advertisement

Created by Ryan Dahl in 2009, Node.js1 is a relatively new technology which has gained a lot of popularity among Web developers recently. However, not everyone knows what it really is. Node.js is essentially a server-side JavaScript environment that uses an asynchronous event-driven model. What this means is simple: it’s an environment which is intended for writing scalable, high performance network applications. It’s like Ruby’s Event Machine or Python’s Twisted, but it takes the event model a bit further—it presents the event loop as a language construct instead of as a library.

And that’s not all: what’s really great about Node.js is the thousands of modules available for any purpose, as well as the vibrant community behind this young project. In this round-up, you will find the most useful resources for Node.js, from handy tools to detailed tutorials, not to mention in-depth articles and resources on this promising technology. Do you use Node.js already? Let us know in the comments to this post!

Useful Node.js Tools

Node Express Boilerplate2
Node Express Boilerplate gives the developer a clean slate, while bundling enough useful features to remove all of those redundant tasks that can derail a project before it even gets started.

Node Express Boilerplate3

Socket.IO4
Socket.IO is a cross-browser Web socket that aims to make real-time apps possible in every browser and mobile device, blurring the distinctions between the various transport mechanisms. It’s care-free real time, in JavaScript.

Socket.IO: Cross-browser WebSocket for realtime apps.5

Mastering Node6
With Mastering Node, you can write high-concurrency Web servers, using the CommonJS module system, Node.js’s core libraries, third-party modules, high-level Web development and more.

Mastering Node7

Log.io8
Your infrastructure may have hundreds of log files spread across dozens of machines. To help you monitor deployments and troubleshoot, Log.io lets you instantly see composite streams of log messages in a single user interface.

Log.io9

Formaline10
Formaline is a low-level, full-featured (Node.js) module for handling form requests (HTTP POSTs and PUTs) and for parsing uploaded files quickly. It is also ready to use with, for example, middleware such as Connect.

Formaline11

LDAPjs12
LDAPjs is a pure-JavaScript, from-scratch framework for implementing LDAP clients and servers in Node.js. It is intended for developers who are used to interacting with HTTP services in Node.js and Express.

ldapjs13

Node Supervisor14
This is a little supervisor script for Node.js. It runs your program and watches for code changes, so you can have hot-code reloading-ish behavior without worrying about memory leaks or having to clean up all of the inter-module references, and without a whole new require system.

Node Supervisor15

Stylus: An Expressive CSS Markup Language for Node.js16
Stylus is supposed to be an expressive language that can be converted to CSS. The compiler is written in Node.js.

Stylus: An Expressive CSS Markup Language for Node.js17

Jade – Template Engine18
Jade is a template engine for Node.js applications. It combines great power and flexibility with a nice and clean syntax.

Jade - Template Engine19

Express20
This is a Sinatra-inspired Web development framework for Node.js: fast, flexible and sexy.

Express - Node web framework21

Hook.io22
hook.io creates a distributed node.js EventEmitter that works cross-process / cross-platform / cross-browser. Think of it like a real-time event bus that works anywhere JavaScript is supported.

Hook.io23

Node Package Manager24
NPM is a package manager for node. You can use it to install and publish your node programs. It manages dependencies and does other cool stuff.

Node Package Manager25

Node-QRcode26
Despite being quite young, Node.js already has a huge number of libraries for every possible application. This one is a QR code generator.

Node QRCode Generator27

NWM28
NWM is a dynamic window manager for X that was written at NodeKO 2011. It uses libev to interface with X11, and it allows you to lay out windows in Node.js.

NWM - Node Window Manager29

Bricks.js30
Bricks.js is an advanced modular Web framework built on Node.js. It is highly flexible. Bricks.js can be used as a standalone static Web server, a basic routing framework or a multi-level Apache-like routing system; and it is modular enough to have the capability to completely switch out its routing engine.

Bricks.js31

Node.js Modules32
A list of almost all the Node.js most famous modules organized by category. This list definitively is worth a look.

Node.js Modules33

90 open-source Node.js modules34
Recently, Browserling released over 90 Node.js modules to the open-source community. Some of them are small and strange modules, others might be pretty useful for your next Node.js project.

90 Opensource Node.js modules35

Calipso36
Calipso is a content management system (CMS) based on the NodeJS server.

Calipso - A NodeJS CMS37

PDFKit38
PDFKit is a PDF document-generation library for Node.js that makes it easy to create complex, multi-page, printable documents. It is written in pure CoffeeScript, but you can use the API in plain ’ol JavaScript if you like. The API embraces chain-ability, and it includes both low-level functions as well as abstractions for higher-level functionality.

PDFKit - A PDF Generation Library for Node39

Forever40
A simple CLI tool to ensure that a given script runs continuously (i.e. forever).

Forever - Make Scripts run Forever41

Introducing Node.js

Node.js Step by Step42
Node.js is an amazing new technology, but unless you’re a JavaScript developer, the process of becoming acquainted with it can quickly become a bit overwhelming. If you want to learn how to use Node.js, this set of articles and screencasts might do the trick.

Node.js Step by Step43

What Is Node.js?44
Another interesting discussion on StackOverflow about what Node.js is and is not. Recommended for those who are approaching Node.js for the first time.

What is node.js? - Stack Overflow45

Learning Server-Side JavaScript46
Node.js is all the buzz at the moment, and it makes creating high-performance, real-time Web applications easy. It allows JavaScript to be used end to end, on both the server and client. This tutorial walks you through from installing Node.js and writing your first “Hello World” program to building a scalable streaming Twitter server.

Learning Server-Side JavaScript47

Node.js Is Important: An Introduction48
“Once in a while, you come across a technology and are blown away by it. You feel that something like this should have been around much earlier and that it will be a significant milestone, not just in your own life as a developer but in general.

Node.js is Important. An Introduction49

The Secrets of Node’s Success50
In the short time since its initial release in late 2009, Node.js has captured the interest of thousands of experienced developers, grown a package manager and a corpus of interesting modules and applications, and even spawned a number of start-ups. What is it about this technology that makes it interesting to developers? And why has it succeeded while other server-side JavaScript implementations linger in obscurity or fail altogether?

The secrets of Node’s success51

Asynchronous Code Design with Node.js52
The asynchronous event-driven I/O of Node.js is currently evaluated by many enterprises as a high-performance alternative to the traditional synchronous I/O of multi-threaded enterprise application server. The asynchronous nature means that enterprise developers have to learn new programming patterns, and unlearn old ones

Asynchronous Code Design with Node.js53

A Giant Step Backwards?54
In this article, Fenn Bailey expresses his opinion of Node.js and why he sometimes thinks Node.js is a step backward compared to other solutions.

A giant step backwards?55

Node.js Is Backwards56
A hot topic in computing is parallel programming in languages such as Erlang. Will JavaScript join the party?

Node.js is backwards57

Videos And Screencasts On Node.js

Node.js Meetup: Distributed Web Architectures58
A series of videos from the Node.js Meetup at Joyent headquarters, discussing how to build distributed Web architectures with Node.js.

Node.js Meetup: Distributed Web Architectures59

Introduction to Node.js with Ryan Dahl60
In this presentation Ryan Dahl, the man behind Node.js will introduce you to this event-driven I/O framework with a few examples showing Node.js in action.

Introduction to Node.js with Ryan Dahl61

SenchaCon 2010: Server-side JavaScript with Node, Connect and Express on Vimeo62
Node.js has unleashed a new wave of interest in server side Javascript. In this session, you’ll learn how to get productive with node.js by leveraging Connect and Express node middleware.

SenchaCon 2010: Server-side JavaScript with Node, Connect and Express on Vimeo63

Technical Articles And Tutorials On Node.js

Proxying HTTP and Web Sockets in Node64
This guide is geared to beginners and people who are unfamiliar with reverse HTTP proxying, Web socket proxying, load balancing, virtual host configuration, request forwarding and other Web proxying concepts.

Proxying HTTP and Websockets in Node65

Bulletproof Node.js Coding66
“Right around the time that I started the third refactoring/rewrite of the code, I felt like I had gotten a feel for how to write bulletproof code, and I thought it would be worth sharing some of the style and conventions I came to adopt.”

Bulletproof Node.js Coding67

How to Write a Native Node.js Extension68
In this tutorial, you will learn how to write a native Node.js extension the right way, from the very basics to packaging the extension for NPM.

How to write a native Node.js extension69

Let’s Make a Web App: Nodepad70
This series will walk you through building a Web app with Node.js, covering all of the major areas you’ll face when building your own applications.

Let’s Make a Web App: Nodepad71

HTML5 Canvas Drawing with Web Sockets, Node.JS and Socket.io72
Web sockets and canvas are two really cool features that are currently being implemented in browsers. This tutorial gives you a quick rundown of how they both work, and you’ll create a real-time drawing canvas that is powered by Node.js and Web sockets.

HTML5 Canvas Drawing with WebSockets, Node.JS and Socket.io73

Developing Multiplayer HTML5 Games with Node.js74
Inspired by the famous iOS game Osmos, developer Boris Smus has created an alternative version of the game using HTML5 canvas and Node.js. This article explains the main phases of the project.

Developing Multiplayer HTML5 Games with Node.js75

Deploying Node.js on Amazon EC276
Amazon’s EC2 is a popular choice for cloud applications. This tutorial shows how Node.js can be deployed on an EC2 instance.

Deploying node.js on Amazon EC277

A Simple Node.js + CouchDB Calendar78
In this tutorial by Chris Storm, you will learn how to build a Web calendar with Node.js and CouchDB.

A Simple Node.js + CouchDB Calendar79

IIS780
The IISnode project provides a native IIS 7.x module that enables hosting of Node.js applications on IIS. The project uses the Windows build of node.exe, which has recently seen major improvements.

Hosting node.js applications on IIS81

Node.js + Phone to Control a Browser Game82
Someone wondered how easily a smart phone – specifically using its gyroscopes and accelerometers – could be used as a controller for a multi-player game on a larger screen. With a bit of Node.js and HTML5 magic, it turned out to be pretty simple.

Node.js + Phone to Control a Browser Game83

Is There a Template Engine for Node.js?84
An engaging discussion appeared on StackOverflow about the template engines that are available for Node.js. Really useful arguments came out of this discussion.

Blogs, Podcasts, Resources On Node.js

How to Node85
How to Node is a community-supported blog created by Tim Caswell. Its purpose is to teach how to do various tasks in Node.js and the fundamental concepts needed to write effective code.

How To Node86

Nodejitsu87
A really interesting blog about scaling Node.js apps in the cloud and about the Node.js events in general.

Nodejitsu Blog88

Node Up89
A podcast that reviews Node.js, explains its philosophy and goes over many of its popular libraries.

Node Up: Node.js Podcast90

Node Tuts91
Free screencast tutorials.

Node Tuts - Node.js Free screencast tutorials92

Minute With Node.js93
Node.js is constantly changing and growing with each new version. New libraries and frameworks are coming out daily that allow you to write JavaScript for new and exciting projects that were previously impossible. This is a one-stop shop for news updates on the entire Node.js eco-system, with a heavy slant on hardcore nerdery.

Minute With Node.js94

Felix’s Node.js Guide95
Over the past few months, Felix have given a lot of talks and done a lot of consulting on Node.js. He found himself repeating a lot of things over and over, so he used some of his recent vacation to start this opinionated and unofficial guide to help people getting started in Node.js.

Felix’s Node.js Guide96

Node.js Knockout97
Node.js Knockout is a 48-hour hackathon for Node.js. It’s an online virtual competition, with contestants worldwide.

Node.js Knockout98

References And Books

Node.JS Help Sheet99
“Node.JS is an evented I/O framework for the V8 JavaScript engine. It’s ideal for writing scalable network programs, such as Web servers. We’ve been working on some exciting things with Node.js, and we felt it was only fair to share our knowledge in the form of an easy-to-read Help Sheet.”

Node.JS Help Sheet100

The Node Beginner Book101
The aim of this document is to get you started with developing applications for Node.js. It teaches you everything you need to know about advanced JavaScript along the way. It goes way beyond your typical “Hello World” tutorial.

The Node Beginner Book102

Up and Running With Node.js103
“Many people use the JavaScript programming languages extensively for programming the interfaces of websites. Node.js allows this popular programming language to be applied in many more contexts, in particular on Web servers. There are several notable features about Node.js that make it worthy of interest.”

Up and Running with Node.js104

Poll: Do You Use Node.js In Your Projects?

How often have you used Node.js in your projects? Have you found some particular tools or articles useful? Share your experience in the comments to this post. Thank you.

Related Posts

You might be interested in the following related posts:

(al)

↑ Back to topShare on Twitter

Fascinated by the latest developments of the Web, Luca Degasperi is a developer with a great passion for design and also student of Cognitive Sciences at the University of Trento, Italy. In his free time you can find Luca biking, snowboarding or climbing rocks. Luca is currently a (proud) trainee at Smashing Magazine.

  1. 1

    So many useful links. Got a better understanding of node.js.

    1
  2. 2

    awesome list! :)

    1
  3. 3

    This is going to sound a little trollish, but I actually think this is one of the most lazy articles I’ve seen here at Smashing. It’s just a google search with screenshots of the first 3 pages of results. For your first node.js related article, I would expect something a little more … editorial?

    Someone who has no idea what node.js would not come away with anything but a bunch of homework. In my opinion, a short walk-through of installing node.js, npm and doing a quick 40-line express app would give people a better glance at the technology. Then, by all means include some links to the top community sites and tutorials.

    18
  4. 4

    I’ve just discovered some modules I’ve never heard anything about, thanks.

    0
  5. 5

    haha yeah this is pretty lazy, you’re also forgetting pretty crucial stuff like cluster

    1
  6. 6

    I concur this could have been more thorough, but it does cover some good highlights.

    Missed http://docs.nodejitsu.com, a community powered documentation site for node.js. Contributions and suggested articles welcome at http://github.com/nodejitsu/docs

    1
  7. 7

    @Brian: I found the article helpful. Coming from a Java background, one of my primary concerns with node.js would be libraries. Seeing LDAP, pdfkit, socket, etc certainly alleviates that to some extent for me. Clearly there’s more to node.js that I previously thought.

    0
  8. 8

    If anyone is further interested in hook.io, I have created 20 short and slightly entertaining video lessons about hook.io at:

    http://youtube.com/maraksquires

    Enjoy!

    2
  9. 9

    Brian,

    Thanks for the feedback. A more detailed introduction on Node.js is coming. It will be published on Smashing Coding. Please stay tuned.

    0
  10. 10

    Great article! There’s a pretty hot discussion on the “A Giant Step Backwards?” post.

    I am really happy that the node.js community is growing. The project and its developers (core & modules) deserve their merits to full extent.

    0
  11. 11

    Indeed, cluster is a must :)

    0
  12. 12

    thanks for sharing these useful links with us….

    0
  13. 13

    Cool. I will keep an eye out for it. Though this is primarily a design and UX site, I’m glad to see some attention given to ‘the backend’.

    0
  14. 14

    @nobody: Perhaps I was a little harsh. Mainly I think you can pack in a bunch of links at the end of a more editorial post. Lots of scrolling through screenshots when a link and a sentence would suffice for 90% of the resources here.

    0
  15. 15

    Just wrote a tutorial of getting starting with node.js for Mac OSX

    http://theoutliers.com/getting-started-with-nodejs-on-mac-osx

    0
  16. 16

    Useful Post

    0
  17. 17

    I agree with the other commenters that a list of links is tough to learn from. In case it helps anyone else I wrote a guide that strings together some of the best Node tutorials together.

    http://project70.com/2011/11/learning-node-js/.

    3
  18. 18

    If you wish to obtain Microsoft office 2010 professional you may either but it from the market or maybe you can purchase it from internet. If you’re buying it from the on the internet option you need to satisfy a number of conditions which will be very helpful for you. It is just about the term and scenarios which you have to follow and then you can potentially buy it.

    -1
  19. 19

    Posted on Sal,Ce ineasmna pentru noi Maratomul DHL?Inseamna competitie, ineasmna caritate, ineasmna noi prieteni, multa voie buna si distractie.Am participat si eu anul trecut si chiar daca am iesit pe un loc 26 la o echipa mixta de baieti nu a fost nici un fel de suparare pentru ca pana la urma conteaza in primul rand participarea la un astfel de eveniment.Pentru cei care nu ati participat pana acum la nici un Maraton DHL inscrieti-va ca nu aveti ce pierde , aveti numai de castigat.Haideti sa incercam cu toti in aceste vremuri putin mai grele pentru toti sa incercam sa facem ceva caritabil in primul rand pentru ca pana la urma acest maraton se face in scop caritabil si cu ocazia asta tin sa multumesc DHL INT. pentru faptul ca si in acest an s-a gandit la Stafeta Carpatilor si nu in ultimul rand sanatatea noastra, sa mai scapam un pic de orase unde aerul a devenit cam irespirabil si sa incercam macar pentru cateva ore sa respiram un aer curat.Va astept la start pe 6 iunie2009 daca am inteles bine.

    -4
  20. 20

    I wrote a basic beginners guide to Node.js which covers a basic hello world application.
    If it’s any help to anyone:
    http://www.theprojectspot.com/tutorial-post/Node-js-for-beginners-part-1-hello-world/2

    0
  21. 21

    Thanks for putting this comprehensive list together.

    0
  22. 22

    Another great Node.js resource with a social touch is GitMoon:

    http://www.gitmoon.com/#project/socket.io

    http://www.gitmoon.com/#compare/redis/mongodb

    1
  23. 23

    Wow, Create list!
    saved my life :)

    0
  24. 24

    I thought it was genius to include screenshots for the links, even the ones that show mostly text (such as links to github projects). The fact that such screenshots are helpful is a powerful statement about visuals and marketing. I say this as an engineer.

    0
  25. 25

    Another resource for clean markup that compiles to HTML with integration for Grunt:

    https://github.com/vail130/wieldymarkup-js
    https://github.com/vail130/grunt-wieldyjs

    0
  26. 26

    im new in node.js.i wrote an expmple hoe to capture data form using node.js
    any one want to learn more about it can check here:
    stirring-interactive.com/blog/node-js-in-a-nutshell/

    0
  27. 27

    Came here after looking at your node command line article.

    Shocked that you missed Node-RED; http://nodered.org/

    Doing so much more with node since getting this web interface up and running.

    0
  28. 28

    Nice post….Express, I love it…

    I made an example of Modular Node.js app with Bootstrap here https://github.com/codetrash/nodemonkey

    0
  29. 29

    Great list.

    Check out also the tool for inspecting node.js dependencies. http://npmview.herokuapp.com

    0

↑ Back to top