8 Node.js Projects Worth Looking At

Some known, some promising, all amazing

Juan Cruz Martinez
Oct 23 · 6 min read
A pair of binoculars overlooking the ocean.
A pair of binoculars overlooking the ocean.
Photo by Matt Howard on Unsplash

GitHub is the holy grail of the developer community when it comes to open-source development. As an open-source language itself, Node is gradually becoming one of the most used technologies on GitHub. So we decided to take a look at eight of the trending Node projects currently on GitHub.

We’ve omitted the obvious picks, like Express, Mocha, and ESlint, from this article. Go through the ones we’ve picked, and see if you can find a new open-source project to contribute to or use in one of your projects.

Electron

Image for post
Image for post
Electron home page

Electron is used to build cross-platform desktop applications using the technologies you already use for web development, HTML, CSS, and JavaScript. With Electron, you can easily make a desktop application that runs on Windows, Linux, and macOS — using the same code base.

Electron uses Node and Chromium as its core technologies. Its most significant feature, also the reason for some security concerns, is permitting the application to access the native APIs of the OS without worrying about the OS type.

Most of the popular desktop applications we see today are built using Electron. Visual Studio Code, Atom, Microsoft Teams, and Slack are some of the examples.

Electron is currently maintained by GitHub. It boasts 86,000 stars on GitHub, being one of the most popular Node projects currently available.

Strapi

Image for post
Image for post
Strapi home page

Strapi is a headless CMS system, and you can access its stored content through APIs. Headless, here, means that it’s focused only on storing and delivering content (back end) and not on how it’s displayed (front end).

You can easily develop APIs using Strapi’s user-friendly admin panel in a matter of hours. And then you can use a technology of your liking to build the front end without worrying about the back end of the application.

The set of features Strapi provides include autogenerated documentation, JWT authentication, and an in-built email system. It automatically generates the logic to handle CRUD operations whenever a new content type is created.

Strapi is still in its early stages as a development tool. But if its popularity on GitHub is any sign, developers already love Strapi very much.

Socket.IO

Image for post
Image for post
Socket.IO home page

Socket.IO allows real-time, bidirectional, and event-based communication between a Node server and a client.

It mainly uses the websocket technology to maintain bidirectional communication. If the server wants to send a newly received bit of information to the client without waiting for a client request, this is the technology you should use to achieve that.

It supports autoreconnection in case of server failure and detects when the connection between the server and the client is severed. It’s built on top of the Engine.IO library.

Even before this package, Node already had a reputation as a language friendly for real-time app development. With its availability, however, Node has come to the forefront as a technology used for real-time applications.

This project gives you a good opportunity to understand how websocket protocol works under the hood.

Check out my previous article on how to build a chat app with Node and Socket.IO.

Cytoscape.js

Image for post
Image for post
Cytoscape home page

Cytoscape is a fully functional graph theory library you can use to model and visualize relational data. For example, you can use this package to model social networks.

It supports many use cases of graph theory, like directed graphs, undirected graphs, and compound graphs. It also provides a set of features, including the ability to build interactive graphs that support panning, zooming, and box selection.

Cytoscape supports data visualization on desktop and mobile browsers. In addition to visualizing data, you can use this package for analyzing relational data on the server side.

If you’re someone interested in data science, this is a perfect project for you to contribute to.

PDFKit

Image for post
Image for post
PDFKit playground

PDFKit is a library you can use to generate complex, multipage, printable PDF documents. It supports an extensive set of features. including vector graphics, font embedding, image embedding, annotations, and encryption.

You can use PDFKit on the server side and on the browser. In the case of browser-side PDF generation, you have to use two additional libraries named Browserify and blob-stream for the package to work properly.

Hygen

Image for post
Image for post
Hygen home page

Hygen is a simple code generator you can use to generate code blocks without having to write them on your own.

Though there have been discussions about code generators that help you do more work in less time, most of the other code generators out there don’t provide a productivity bump as significant as Hygen does.

Hygen has a good contextual understanding and is agnostic to the language used in the program. When you want to generate new code blocks, you can invoke Hygen to take care of the mundane coding tasks.

Compared to other languages, it works really well with Redux, React Native, and Express. This tool is already used by leading products like Airbnb and Wix.

Cube.js

Image for post
Image for post
Cube home page

Cube is a framework used to build analytical web applications. Mostly, these tools are related to business intelligence or customer-facing analytics.

It was designed to work with serverless query engines like AWS Athena and Google BigQuery. With Cube, you can focus on creating large-scale analytics tools without having to worry about infrastructure.

Cube is a modular framework. It provides a set of modules, each doing only one thing: handling transformations and modeling, querying and caching, managing API gateways, and building UIs.

Being a rather new framework, Cube is a good place for you to make open-source contributions, especially if you’re interested in big data.

Zenbot

Image for post
Image for post
Zenbot logo

Zenbot is a command-line cryptocurrency trading bot. It uses Node and MongoDB as its core technologies.

A user can set up Zenbot on their machine according to their requirements. Zenbot uses AI to continually improve its algorithm, which is capable of trading at a very high frequency. It also has in-built support for other cryptocurrency exchange programs like GDAX, Quadriga, and Kraken.

Contributing to Zenbot gives you an opportunity to experiment with cryptocurrency, still a new technology to the world.

Conclusion

If you’re a Node developer, you won’t have a hard time discovering exciting open-source projects, like those mentioned in this post, on GitHub.

Most of these projects are well documented and provide clear guidelines for new contributors. You can visit their GitHub pages and go through the source code to identify opportunities to contribute to these projects.

So why wait? Go out there and continue your open-source experience as a Node developer.

Thanks for reading!

Better Programming

Advice for programmers.

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store