What is Node.js? 

Node.js is an increasingly popular back-end application runtime environment that allows a user to develop server side Javascript applications. Node.js implements an asynchronous I/O model which excels at scalable and real-time applications, both of which are central to our operations here at WMFS. 

How is Node.js different from vanilla JS? 

Syntactically, there is little difference between Node.jsand vanilla Javascript. Node.js, though, does offer different tools to the user in the form of a set of APIs. Compared to the front-end focused abilities of client side Javascript such as DOM manipulation, Node gives the user more back-end oriented superpowers. Things like file system support, streams, and HTTP request management make Node.js a backend powerhouse. 


Why use Node.js? 

Using Node.js for our backend allows us to normalise a fair amount of our development stack. With the growth in popularity of Javascript UI frameworks/packages such as Angular 2.0 and React (another day, another blog post…), utilising Node.js for our backend means we can use Javascript throughout the stack, heralding benefits such as code reuse, familiarity between front end and back end development, and general comfort from not having to switch syntax when moving through parts of the system.

Node.js and Tymly are also both open source, hurray! Our open source ethos is important to us at WMFS, so this was also a contributing factor for us when choosing to use Node.js. 

Our decision to use Node.js comes down to the root of our application area. Our applications must be scalable, responsive, and work in real time. Node.js provides us with ways to satisfy all of these needs and more.