People Values
Tomek Jurek
Digital Advisory Customer Experience Technology
Izabela Franke
Digital Advisory CX Strategy Retail
Jakub Nawrocki
Digital Transformation Retail
Paweł Wasilewski
Values People
Tomek Jurek
Digital Advisory M-commerce
Izabela Franke

Featured Insights

Explore all insights
Close
People Values
Tomek Jurek
Digital Advisory Customer Experience Technology
Izabela Franke
Digital Advisory CX Strategy Retail
Jakub Nawrocki
Digital Transformation Retail
Paweł Wasilewski
Values People
Tomek Jurek
Digital Advisory M-commerce
Izabela Franke
Explore all insights

Featured Insights

EngineeringTechnology Web Development

Should You Use Node.js as Your Backend?

Should You Use Node.js as Your Backend?

As it has celebrated its 10th birthday only recently, Node.js can still be treated as a fairly new technology. Yet, it has already been recognised as a top-notch solution for many projects. Mostly because, thanks to this open-source and cross-platform JavaScript runtime environment, you can now do a lot more with JavaScript than just making your websites interactive. In fact, it makes it possible to develop applications with a single programming language, rather than use different languages for server- and client-side scripts.

Here’s whether you should use Node.js for your next project, along with the best Node.js examples to draw inspiration from.

What is Node.js, exactly?

Before Node.js web apps were written in a client/server model, in which the client would demand certain resources from the server, and get those resources in response. The server only reacted when the client made a request, and then closed the connection right after each response. In 2009, Ryan Dahl introduced a new approach to server-side runtime written in JavaScript. It enables requesting in and out of the web server (I/O) to be processed concurrently and asynchronously using a concept called non-blocking, or asynchronous I/O. That’s how Node.js has started.

The original idea behind the use of Node.js was to build websites with real-time push capability. Therefore, unlike the previous client/server model, it became possible to develop two-way connection websites with free data exchange. It’s mostly due to WebSockets, which allow opening an interactive communications session between a user’s browser and a server. Requests to a server are then processed as a loop (event loop, to be more precise), which makes Node.js a JavaScript runtime environment that takes a “non-blocking” approach to serving requests and thus, achieves low latency and high throughput along the way.

Basically, a Node.js app is run in a single process, without creating a new thread for every request. It makes such apps very efficient, mostly thanks to the V8 JavaScript engine which powers Node.js (and also happens to be the core of Google Chrome). The engine takes the JavaScript code and converts it into lower level or machine code - which don’t need to be interpreted first in order to be run. Then, running code on the server this way actually increases the processing speed.

Why use Node.js as your backend, then?

It’s worth keeping in mind that JavaScript is supported by all modern web browsers and employed by the majority of websites. As a matter of fact, it’s been the most commonly used programming language for a few years in a row, being valued especially for its simplicity and versatility. With Node.js, however, JavaScript is not limited to the front end but works outside of the browser as well. As a result, it’s possible to build fast and scalable applications with the same code for both server- and client-side. What is more, with frameworks such as Electron or NW.js, it’s possible to develop native desktop applications for Linux, Windows, and MacOS, using web technologies like HTML, CSS, and JavaScript.

In fact, Node.js is a perfect choice for data-intensive, real-time apps that run across distributed devices. Take chats, as an example. With Node.js, you can easily serve multiple users and devices, and handle both big traffic and intensive data exchange. Speaking of data - it is also possible to leverage the fact that HTTP requests & responses are essentially data streams, and stream large files or even process them while they’re being uploaded (to encode audio & video, for example). It’s also a powerful solution for collecting and visualizing real-time data in the form of advanced dashboards. GraphQL is an interesting example. Although this query language for APIs can work together with other programming languages, such as Python or Java, it’s Node.js that helped GraphQL to become a new standard for asking for data. This is also the case with Prisma - a brand-new solution that replaces traditional ORMs (Object-Relational Mapping) and simplifies database workflows.

No matter the common uses of Node.js, it’s also worth keeping in mind that there’s a robust and helpful community behind it. It makes it much easier to solve any problem at hand - not to mention that Node package manager (npm), which is included in Node.js by default, is said to be the fastest-growing and one of the largest ecosystems of open source libraries in the world. Node.js also comes with fine documentation and instrumentation, as well as a set of best practices to ease app development.

On the other hand, Node.js is not the best choice for handling CPU-intensive apps. Take editing graphics as an example - it requires an efficiency that an event-based and a single-threaded environment can’t really provide. It’s also being criticized for not being mature enough - at least not just yet. Even though the main Node.js modules are stable, there are many entries in the npm registry that are low-quality or just haven’t been tested and/or documented properly.

The examples of Node.js applications

Despite a few drawbacks, the words that best describe Node.js by its users happen to be: fast, simple, and easy - but also powerful and flexible. It might be the reason why Node.js is widely used by both emerging startups and some well-known companies.

Rumour has it that Netflix and PayPal have already implemented Node.js, and saw significant results afterwards - both economically and in performance.  Actually, Node.js is said to boost business productivity by the majority of companies that decided to take advantage of it. It also powers the two biggest online marketplaces - eBay and AliExpress (and Amazon on top of that).

While there’s still some debate about the maturity of Node.js, its popularity is still growing. In fact, it was downloaded more than 360 million times in 2018 - and all versions of Node.js show a 40% year-by-year growth in downloads. Given these numbers, it’s likely that there will be more great Node.js examples in the future as well. Especially since Node.js is scalable and relatively easy to learn and use, which often matters for startups.


If you’re considering it for your own venture, the above-mentioned stats should give you more confidence that you’re on the right track. Now it’s time to discuss developing your Node.js application with us.

Related insights

Arrange consultation with our Digital Advisory & Delivery Team

describe your challenge
Get in touch with our experts to learn more about the benefits of having us by your side.
We engineer
digital business

Subscribe to our insights

A better experience for your customers with Future Mind.

This field is required. Please fill it in, so we can stay in touch
This field is required.
© 2024 Future mind
all rights reserved