June 13, 20197 min read
Authors: Emil Waszkowski - Head of Digital Consulting
We’ve already discussed whether you should choose Node.js as your backend - now when you’re familiar with its advantages, it’s time to see it action. Here are the best examples of apps that fully embrace Node.js as part of a modern technology stack.
What are the best examples of Node.js applications, then?
Thanks to its Stream API, Node.js a great choice for streaming applications. Basically, it makes it possible to transmit parts of the app’s code to a local machine without closing the connection, caching, or temporary data - which means that new components can easily be downloaded on demand.
What’s more, one of the primary reasons for Netflix to switch to Node was the ability to build a single-page application. SPAs might come in different shapes and sizes - yet, they can all benefit from Node’s asynchronous data flow. Thanks to the event loop, the app receives new data without the need to refresh, which makes Node.js a popular choice for social networking apps.
LinkedIn, as an example, switched from Ruby on Rails to Node.js, which made the app two to ten times faster on the client side, with only a fraction of the resources on the server side. Given the rising number of LinkedIn users, the performance boost was definitely needed - and appreciated by its developers, mainly due to the speed of development. Actually, Node also forms part of Twitter Lite due to similar reasons.
Node.js also happens to be a powerful solution for collecting, visualising and analysing data in real-time. It’s probably the reason why there are increasingly more startups that revolve around data in particular, and take advantage of Node.js once they’re at it. Take Heap, as an example. It’s said to capture every web, mobile, and cloud interaction automatically (be it clicks, submits, transactions, emails, or any behavioural data), in order to understand and serve customers better.
When it comes to data visualisation, though, it’s rather YCharts that deserves more attention. It happens to be a cloud-based investment decision-making platform, which makes it easy to create technical charts in seconds to compare stocks and funds, just to name a few. Yet again, it collects data in real-time, constantly monitoring the market and providing relevant financial insights.
Speaking of financial data, Node.js also seems to be a good fit for handling digital payments. In fact, PayPal was one of the first company that gave Node.js a chance back in the days when this technology was just starting to gain some traction. This decision quickly resulted in improved performance: 35% decrease in the average response time for the same page, to be exact. It might be the reason why some startups, such as JUSPAY, seem to be following PayPal’s footsteps.
Let’s go back to maintaining live connections with the server and handling a lot of requests at the same time for a moment, which Node.js is definitely known for. These were one of the reasons why eBay decided to go for Node - along with its speed and simplicity, performance, scalability, and “feeling of control” it gives the developers. It should come as no surprise, then, that Node.js is also used by Alibaba for both frontend toolchains and backend servers.
Walmart also provides an interesting Node.js example. The company re-engineered its mobile app to provide more features on the client side, and decided to build a fast, reliable and usable system with Node in order to become a leader in the online retail space. Given its current position, Node.js definitely brought Walmart closer to this goal.
Walmart is not the only enterprise-level company that’s been successfully using Node.js, though. According to the Node.js User Survey, 43% of Node.js programmers claim to have used it for enterprise apps - and, interestingly, the majority of them seems to be working for Fortune 500 companies.
The biggest Central and Eastern European convenience store chain Żabka has its own example of an enterprise solution powered by Node.js: an award-winning “frappka” app. The aim here was to meet the needs of the franchisees and make it easier for them to manage Żabka stores, which wouldn’t be that easy to achieve without Node and microservices architecture. Basically, microservices are single self-contained units which make up an application, yet, can be independently deployable and scalable. This architecture works very well with complex applications, which is probably why many well-known enterprises have already embraced it.
Real-time applications, such as project management and communication tools that run across distributed devices, are also a common case of Node.js in use. Usually, such apps have plenty of users and thus, might be subject to heavy I/O operations (for example, a few users can edit, comment, post or attach something at the same time). This is when Node comes in useful - it makes the collaboration environment update seamlessly, handling both big traffic and intensive data exchange (mainly thanks to Event API and WebSockets).
Trello is a perfect example of a Node.js app that enables team collaboration. As written on the company’s blog, Node.js was first helpful when Trello was templating a tool for a one-page application. Yet, Node.js proved to have more benefits than that, which is why it eventually became the server-side of the application, along with MongoDB, Redis, and HAProxy.
Since Node.js can easily form part of collaboration tools, it shouldn’t be surprising that it happens to power e-learning platforms as well. Quizlet, for example, is said to be one of the largest online education platforms in the world with its 30 million active learners. Apparently, Node.js allowed scaling the app to handle over 600,000 visits a day.
CreativeLive also serves as a good example of a Node.js app that offers free live online classes in creative topics (such as photography, design, and craft). At the same time, Clever seems to be taking e-learning to the next level as it “powers technology in the classroom” and enables the management of all learning resources that every school owns.
Node.js has also become one of the preferred solutions for IoT development. The reason behind it it’s mostly its capability to handle multiple concurrent requests and events coming from multiple IoT devices, which are known for generating a large volume of data.
Skycatch is an interesting example of such a solution. Essentially, it uses drones to take photos of construction sites, then analyses and exports multiple data types, and, at last, makes it possible to create and work with customized maps and 3D models.
Connected Boat, on the other hand, is meant for fleet owners to ensure the safety of boats at all times. It constantly monitors key parameters of the vessels through smart IoT sensors and provides easy access to relevant information that streamlines servicing and maintenance of each boat thanks to its mobile app. With the growing popularity of both IoT and Node.js, however, we’re bound to see more examples of such a combination.
As can be seen, Node.js can be a good choice for developing many different types of applications, especially due to its ability to handle multiple concurrent requests and asynchronous data flow. Data streaming, social networking or project management apps are only a few popular use cases of Node.js that are worth exploring. In fact, Node.js applications happen to be increasingly more common as the technology becomes more mature.
Even though it might still be treated as a fairly new solution and has some drawbacks (such as not being a good fit for CPU-intensive apps), Node.js is definitely worth considering - if you’re in need of a data-driven app in particular.
Feeling inspired already? Let’s talk about developing your own Node.js application with us.