Awesome Lists

awesome-nodejs

by sindresorhus

awesome listpushed almost 2 years ago

zap Delightful Node.js packages and resources

AI summary

Node package list

A curated collection of Node.js packages and resources for developers

stars
58.9K
forks
5.8K
watching
1.6K
awesome lists
17
entries
591
View on GitHubnode.cool

Embed the badge

Show how many awesome lists link to your project. The count updates automatically.

Awesome Lists badge
Markdown
[![Awesome Lists Badge](https://awesome.facts.dev/shield/sindresorhus/awesome-nodejs/links.svg)](https://awesome.facts.dev/awesome/sindresorhus/awesome-nodejs)
HTML
<a href="https://awesome.facts.dev/awesome/sindresorhus/awesome-nodejs"><img src="https://awesome.facts.dev/shield/sindresorhus/awesome-nodejs/links.svg" alt="Awesome Lists Badge" /></a>
Image URL
https://awesome.facts.dev/shield/sindresorhus/awesome-nodejs/links.svg

What's in the list

591 links in 69 sections, with live GitHub stats.activeno commit in 2y

Official

Mad science

  • webtorrent

    Streaming torrent client for Node.js and the browser

  • peerflix

    Streaming torrent client

  • ipfs

    Distributed file system that seeks to connect all computing devices with the same system of files

  • stackgl

    Open software ecosystem for WebGL, built on top of browserify and npm

  • peerwiki

    All of Wikipedia on BitTorrent

  • peercast

    Stream a torrent video to Chromecast

  • BitcoinJS

    Clean, readable, proven Bitcoin library

  • Bitcore

    Pure and powerful Bitcoin library

  • PDFKit

    PDF generation library

  • turf

    Modular geospatial processing and analysis engine

  • webcat

    p2p pipe across the web using WebRTC that uses your GitHub private/public key for authentication

  • NodeOS

    The first operating system powered by npm

  • YodaOS

    AI operating system

  • Brain.js

    Machine-learning framework

  • Pipcook

    Front-end algorithm framework to create a machine learning pipeline

  • Cytoscape.js

    Graph theory (a.k.a. network) modeling and analysis

  • js-git

    JavaScript implementation of Git

  • xlsx

    Pure JS Excel spreadsheet reader and writer

  • isomorphic-git

    Pure JavaScript implementation of Git

Command-line apps

  • np

    Better

  • npm-name

    Check a package name's availability on npm

  • gh-home

    Open the GitHub page of the repo in the current directory

  • npm-home

    Open the npm page of a package

  • trash

    Safer alternative to

  • speed-test

    Test your internet connection speed and ping

  • pageres

    Capture website screenshots

  • cpy

    Copy files

  • vtop

    More better top, with nice charts

  • empty-trash

    Empty the trash

  • is-up

    Check whether a website is up or down

  • is-online

    Check if the internet connection is up

  • public-ip

    Get your public IP address

  • clipboard-cli

    Copy & paste on the terminal

  • XO

    Enforce strict code style using the JavaScript happiness style

  • ESLint

    The pluggable linting utility for JavaScript

  • David

    Tells you when your package npm dependencies are out of date

  • http-server

    Simple, zero-config command-line HTTP server

  • Live Server

    Development HTTP-server with livereload capability

  • bcat

    Pipe command output to web browsers

  • normit

    Google Translate with speech synthesis in your terminal

  • fkill

    Fabulously kill processes. Cross-platform

  • pjs

    Pipeable JavaScript. Quickly filter, map, and reduce from the terminal

  • license-checker

    Check licenses of your app's dependencies

  • browser-run

    Easily run code in a browser environment

  • tmpin

    Adds stdin support to any CLI app that accepts file input

  • wallpaper

    Change the desktop wallpaper

  • pen

    Live Markdown preview in the browser from your favorite editor

  • dark-mode

    Toggle the macOS Dark Mode

  • Jsome

    Pretty prints JSON with configurable colors and indentation

  • mobicon

    Mobile app icon generator

  • mobisplash

    Mobile app splash screen generator

  • diff2html-cli

    Pretty git diff to HTML generator

  • trymodule

    Try out npm packages in the terminal

  • jscpd

    Copy/paste detector for source code

  • atmo

    Server-side API mocking

  • auto-install

    Auto installs dependencies as you code

  • lessmd

    Markdown in the terminal

  • cost-of-modules

    Find out which dependencies are slowing you down

  • localtunnel

    Expose your localhost to the world

  • svg-term-cli

    Share terminal sessions via SVG

  • gtop

    System monitoring dashboard for the terminal

  • themer

    Generate themes for your editor, terminal, wallpaper, Slack, and more

  • carbon-now-cli

    Beautiful images of your code — from right inside your terminal

  • cash-cli

    Convert between 170 currencies

  • taskbook

    Tasks, boards & notes for the command-line habitat

  • discharge

    Easily deploy static websites to Amazon S3

  • npkill

    Easily find and remove old and heavy node_modules folders

Functional programming

  • lodash

    Utility library delivering consistency, customization, performance, & extras. A better and faster Underscore.js

  • immutable

    Immutable data collections

  • Ramda

    Utility library with a focus on flexible functional composition enabled by automatic currying and reversed argument order. Avoids mutating data

  • Mout

    Utility library with the biggest difference between other existing solutions is that you can choose to load only the modules/functions that you need, no extra overhead

  • RxJS

    Functional reactive library for transforming, composing, and querying various kinds of data

  • Kefir.js

    Reactive library with focus on high performance and low memory usage

HTTP

  • got

    Nicer interface to the built-in module

  • undici

    High performance HTTP client written from scratch with zero dependencies

  • ky-universal

    Universal HTTP client based on Fetch

  • node-fetch

    for Node.js

  • axios

    Promise based HTTP client (works in the browser too)

  • superagent

    HTTP request library

  • http-fake-backend

    Build a fake backend by providing the content of JSON files or JavaScript objects through configurable routes

  • cacheable-request

    Wrap native HTTP requests with RFC compliant cache support

  • gotql

    GraphQL request library built on

  • global-agent

    Global HTTP/HTTPS proxy agent that is configurable using environment variables

  • smoke

    File-based HTTP mock server with recording abilities

  • purest

    REST client

Debugging / Profiling

  • debug

    Tiny debugging utility

  • why-is-node-running

    Node.js is running but you don't know why?

  • njsTrace

    Instrument and trace your code, see all function calls, arguments, return values, as well as the time spent in each function

  • vstream

    Instrumentable streams mix-ins to inspect a pipeline of streams

  • stackman

    Enhance an error stacktrace with code excerpts and other goodies

  • locus

    Starts a REPL at runtime that has access to all variables

  • 0x

    Flamegraph profiling

  • ctrace

    Well-formatted and improved trace system calls and signals

  • leakage

    Write memory leak tests

  • llnode

    Post-mortem analysis tool which allows you to inspect objects and get insights from a crashed Node.js process

  • thetool

    Capture different CPU, memory, and other profiles for your app in Chrome DevTools friendly format

  • swagger-stats

    Trace API calls and monitor API performance, health, and usage metrics

  • NiM

    Manages DevTools debugging workflow

  • dats

    Minimalistic and zero-dependencies client

Logging

  • pino

    Extremely fast logger inspired by Bunyan

  • winston

    Multi-transport async logging library

  • console-log-level

    The most simple logger imaginable with support for log levels and custom prefixes

  • storyboard

    End-to-end, hierarchical, real-time, colorful logs and stories

  • consola

    Console logger

Command-line utilities

  • chalk

    Terminal string styling done right

  • meow

    CLI app helper

  • yargs

    Command-line parser that automatically generates an elegant user-interface

  • ora

    Elegant terminal spinner

  • get-stdin

    Easier stdin

  • log-update

    Log by overwriting the previous output in the terminal. Useful for rendering progress bars, animations, etc

  • Ink

    React for interactive command-line apps

  • listr2

    Terminal task list

  • conf

    Simple config handling for your app or module

  • ansi-escapes

    ANSI escape codes for manipulating the terminal

  • log-symbols

    Colored symbols for various log levels

  • figures

    Unicode symbols with Windows CMD fallbacks

  • boxen

    Create boxes in the terminal

  • terminal-link

    Create clickable links in the terminal

  • terminal-image

    Display images in the terminal

  • string-width

    Get the visual width of a string - the number of columns required to display it

  • cli-truncate

    Truncate a string to a specific width in the terminal

  • blessed

    Curses-like library

  • Inquirer.js

    Interactive command-line prompt

  • yn

    Parse yes/no like values

  • cli-table3

    Pretty unicode tables

  • drawille

    Draw on the terminal with unicode braille characters

  • ascii-charts

    ASCII bar chart in the terminal

  • progress

    Flexible ascii progress bar

  • insight

    Helps you understand how your tool is being used by anonymously reporting usage metrics to Google Analytics

  • cli-cursor

    Toggle the CLI cursor

  • cli-columns

    Columnated unicode and ansi-safe text lists

  • cfonts

    Sexy ASCII fonts for the console

  • multispinner

    Multiple, simultaneous, individually controllable CLI spinners

  • omelette

    Shell autocompletion helper

  • cross-env

    Set environment variables cross-platform

  • shelljs

    Portable Unix shell commands

  • sudo-block

    Block users from running your app with root permissions

  • sparkly

    Generate sparklines

  • Bit

    Create, maintain, find and use small modules and components across repositories

  • gradient-string

    Beautiful color gradients in terminal output

  • oclif

    CLI framework complete with parser, automatic documentation, testing, and plugins

  • terminal-size

    Reliably get the terminal window size

  • Cliffy

    Framework for interactive CLIs

  • zx

    Write shell scripts JavaScript

Build tools

  • parcel

    Blazing fast, zero config web app bundler

  • webpack

    Packs modules and assets for the browser

  • rollup

    Next-generation ES2015 module bundler

  • gulp

    Streaming and fast build system that favors code over config

  • Broccoli

    Fast, reliable asset pipeline, supporting constant-time rebuilds and compact build definitions

  • Brunch

    Front-end web app build tool with simple declarative config, fast incremental compilation, and an opinionated workflow

  • FuseBox

    Fast build system that combines the power of webpack, JSPM and SystemJS, with first-class TypeScript support

  • pkg

    Package your Node.js project into an executable

  • Vite

    Front-end build tool with hot module replacement and static asset bundling

Hardware

  • johnny-five

    Firmata based Arduino Framework

  • serialport

    Access serial ports for reading and writing

  • usb

    USB library

  • i2c-bus

    I2C serial bus access

  • onoff

    GPIO access and interrupt detection

  • spi-device

    SPI serial bus access

  • pigpio

    Fast GPIO, PWM, servo control, state change notification, and interrupt handling on the Raspberry Pi

  • gps

    NMEA parser for handling GPS receivers

  • modbus-serial

    A pure JavaScript implementation of MODBUS-RTU (serial and TCP)

Templating

  • marko

    HTML-based templating engine that compiles templates to CommonJS modules and supports streaming, async rendering and custom tags

  • nunjucks

    Templating engine with inheritance, asynchronous control, and more (jinja2 inspired)

  • handlebars.js

    Superset of Mustache templates which adds powerful features like helpers and more advanced blocks

  • EJS

    Simple unopinionated templating language

  • Pug

    High-performance template engine heavily influenced by Haml

Web frameworks

  • Fastify

    Fast and low overhead web framework

  • Next.js

    Minimalistic framework for server-rendered universal JavaScript web apps

  • Nuxt.js

    Minimalistic framework for server-rendered Vue.js apps

  • Hapi

    Framework for building applications and services

  • Micro

    Minimalistic microservice framework with an async approach

  • Koa

    Framework designed by the team behind Express, which aims to be a smaller, more expressive, and more robust foundation for web applications and APIs

  • Express

    Web application framework, providing a robust set of features for building single and multi-page, and hybrid web applications

  • Feathers

    Microservice framework built in the spirit of Express

  • LoopBack

    Powerful framework for creating REST APIs and easily connecting to backend data sources

  • Meteor

    An ultra-simple, database-everywhere, data-on-the-wire, pure-Javascript web framework

  • Restify

    Enables you to build correct REST web services

  • ThinkJS

    Framework with ES2015+ support, WebSockets, REST API

  • ActionHero

    Framework for making reusable & scalable APIs for TCP sockets, WebSockets, and HTTP clients

  • seneca

    Toolkit for writing microservices

  • AdonisJs

    A true MVC framework for Node.js built on solid foundations of Dependency Injection and IoC container

  • Moleculer

    Fast & powerful microservices framework

  • Nest

    Angular-inspired framework for building efficient and scalable server-side apps

  • TypeGraphQL

    Modern framework for creating GraphQL APIs with TypeScript, using classes and decorators

  • Tinyhttp

    Modern and fast Express-like web framework

  • Marble.js

    Functional reactive framework for building server-side apps, based on TypeScript and RxJS

  • Lad

    Framework made by a former Express TC and Koa member that bundles web, API, job, and proxy servers

  • Ts.ED

    Intuitive TypeScript framework for building server-side apps on top of Express.js or Koa.js

  • Hono

    Small and fast web framework

Documentation

  • documentation.js

    API documentation generator with support for ES2015+ and flow annotation

  • Docco

    Documentation generator which produces an HTML document that displays your comments intermingled with your code

  • JSDoc

    API documentation generator similar to JavaDoc or PHPDoc

  • Docusaurus

    Documentation website generator that leverages React and Markdown, and comes with translation and versioning features

Filesystem

  • del

    Delete files/folders using globs

  • globby

    Glob files with support for multiple patterns

  • chokidar

    Filesystem watcher which stabilizes events from and as well as using native on macOS

  • find-up

    Find a file by walking up parent directories

  • proper-lockfile

    Inter-process and inter-machine lockfile utility

  • load-json-file

    Read and parse a JSON file

  • write-json-file

    Stringify and write JSON to a file atomically

  • fs-write-stream-atomic

    Like , but atomic

  • filenamify

    Convert a string to a valid filename

  • istextorbinary

    Check if a file is text or binary

  • fs-jetpack

    Completely redesigned file system API for convenience in everyday use

  • fs-extra

    Extra methods for the module

  • pkg-dir

    Find the root directory of an npm package

  • filehound

    Flexible and fluent interface for searching the file system

  • move-file

    Move a file, even works across devices

  • tempy

    Get a random temporary file or directory path

Control flow / Promises

  • pify

    Promisify a callback-style function

  • delay

    Delay a promise a specified amount of time

  • promise-memoize

    Memoize promise-returning functions, with expire and prefetch

  • valvelet

    Limit the execution rate of a promise-returning function

  • p-map

    Map over promises concurrently

Control flow / Observables

Control flow / Streams

  • Highland.js

    Manages synchronous and asynchronous code easily, using nothing more than standard JavaScript and Node-like Streams

Streams

  • get-stream

    Get a stream as a string or buffer

  • from2

    Convenience wrapper for ReadableStream, inspired by

  • into-stream

    Convert a buffer/string/array/object into a stream

  • duplexify

    Turn a writeable and readable stream into a single streams2 duplex stream

  • pumpify

    Combine an array of streams into a single duplex stream

  • peek-stream

    Transform stream that lets you peek the first line before deciding how to parse it

  • binary-split

    Newline (or any delimiter) splitter stream

  • byline

    Super-simple line-by-line Stream reader

  • first-chunk-stream

    Transform the first chunk in a stream

  • pad-stream

    Pad each line in a stream

  • multistream

    Combine multiple streams into a single stream

  • readable-stream

    Mirror of Streams2 and Streams3 implementations in core

  • through2-concurrent

    Transform object streams concurrently

Real-time

  • µWebSockets

    Highly scalable WebSocket server & client library

  • Socket.io

    Enables real-time bidirectional event-based communication

  • Faye

    Real-time client-server message bus, based on Bayeux protocol

  • SocketCluster

    Scalable HTTP + WebSocket engine which can run on multiple CPU cores

  • Primus

    An abstraction layer for real-time frameworks to prevent module lock-in

  • deepstream.io

    Scalable real-time microservice framework

  • Kalm

    Low-level socket router and middleware framework

  • MQTT.js

    Client for MQTT - Pub-sub based messaging protocol for use on top of TCP/IP

  • rpc-websockets

    JSON-RPC 2.0 implementation over WebSockets

  • Aedes

    Barebone MQTT server that can run on any stream server

Image

  • sharp

    The fastest module for resizing JPEG, PNG, WebP and TIFF images

  • image-type

    Detect the type of an image

  • image-dimensions

    Get the dimensions of an image

  • gm

    GraphicsMagick and ImageMagick wrapper

  • lwip

    Lightweight image processor which does not require ImageMagick

  • pica

    High quality & fast resize (lanczos3) in pure JS. Alternative to canvas drawImage(), when no pixelation allowed

  • jimp

    Image processing in pure JavaScript

  • qrcode

    QR code and bar code generator

  • ImageScript

    Image processing in JavaScript, utilizing WebAssembly for performance

Text

  • iconv-lite

    Convert character encodings

  • string-length

    Get the real length of a string - by correctly counting astral symbols and ignoring ansi escape codes

  • camelcase

    Convert a dash/dot/underscore/space separated string to camelCase: foo-bar → fooBar

  • escape-string-regexp

    Escape RegExp special characters

  • splice-string

    Remove or replace part of a string like

  • indent-string

    Indent each line in a string

  • strip-indent

    Strip leading whitespace from every line in a string

  • detect-indent

    Detect the indentation of code

  • he

    HTML entity encoder/decoder

  • i18n-node

    Simple translation module with dynamic JSON storage

  • babelfish

    i18n with very easy syntax for plurals

  • matcher

    Simple wildcard matching

  • unhomoglyph

    Normalize visually similar unicode characters

  • i18next

    Internationalization framework

  • nanoid

    Tiny, secure, URL-friendly, unique string ID generator

  • StegCloak

    Conceal secrets within strings, in plain sight

Number

  • random-int

    Generate a random integer

  • random-float

    Generate a random float

  • unique-random

    Generate random numbers that are consecutively unique

  • round-to

    Round a number to a specific number of decimal places: →

Math

  • ndarray

    Multidimensional arrays

  • mathjs

    An extensive math library

  • math-clamp

    Clamp a number

  • algebra

    Algebraic structures

  • multimath

    Core to create fast image math in WebAssembly and JS

Date

  • Luxon

    Library for working with dates and times

  • date-fns

    Modern date utility

  • Day.js

    Immutable date library alternative to Moment.js

  • dateformat

    Date formatting

  • tz-format

    Format a date with timezone:

  • cctz

    Fast parsing, formatting, and timezone conversation for dates

URL

  • normalize-url

    Normalize a URL

  • humanize-url

    Humanize a URL: → sindresorhus.com

  • url-unshort

    Expand shortened URLs

  • speakingurl

    Generate a slug from a string with transliteration

  • linkify-it

    Link patterns detector with full unicode support

  • url-pattern

    Easier than regex string matching patterns for URLs and other strings

  • embedza

    Create HTML snippets/embeds from URLs using info from oEmbed, Open Graph, meta tags

Data validation

  • joi

    Object schema description language and validator for JavaScript objects

  • is-my-json-valid

    JSON Schema validator that uses code generation to be extremely fast

  • property-validator

    Easy property validation for Express

  • schema-inspector

    JSON API sanitization and validation

  • ajv

    The fastest JSON Schema validator. Supports v5, v6 and v7 proposals

  • Superstruct

    Simple and composable way to validate data in JavaScript (and TypeScript)

  • yup

    Object schema validation

  • zod

    TypeScript-first schema validation with static type inference

Parsing

  • remark

    Markdown processor powered by plugins

  • markdown-it

    Markdown parser with 100% CommonMark support, extensions and syntax plugins

  • parse5

    Fast full-featured spec compliant HTML parser

  • @parcel/css

    A CSS parser, transformer, and minifier written in Rust

  • strip-json-comments

    Strip comments from JSON

  • strip-css-comments

    Strip comments from CSS

  • parse-json

    Parse JSON with more helpful errors

  • URI.js

    URL mutation

  • JSONStream

    Streaming JSON.parse and stringify

  • neat-csv

    Fast CSV parser. Callback interface for the above

  • csv-parser

    Streaming CSV parser that aims to be faster than everyone else

  • PEG.js

    Simple parser generator that produces fast parsers with excellent error reporting

  • x-ray

    Web scraping utility

  • nearley

    Simple, fast, powerful parsing for JavaScript

  • binary-extract

    Extract a value from a buffer of JSON without parsing the whole thing

  • Stylecow

    Parse, manipulate and convert modern CSS to make it compatible with all browsers. Extensible with plugins

  • js-yaml

    Very fast YAML parser

  • xml2js

    XML to JavaScript object converter

  • Jison

    Friendly JavaScript parser generator. It shares genes with Bison, Yacc and family

  • google-libphonenumber

    Parse, format, store and validate phone numbers

  • ref

    Read/write structured binary data in Buffers

  • xlsx-populate

    Read/write Excel XLSX

  • Chevrotain

    Very fast and feature rich parser building toolkit for JavaScript

  • fast-xml-parser

    Validate and parse XML

Humanize

  • pretty-bytes

    Convert bytes to a human readable string: →

  • pretty-ms

    Convert milliseconds to a human readable string: →

  • ms

    Tiny millisecond conversion utility

  • pretty-error

    Errors with less clutter

  • read-art

    Extract readable content from any page

Compression

  • yazl

    Zip

  • yauzl

    Unzip

  • Archiver

    Streaming interface for archive generation, supporting ZIP and TAR

  • pako

    High speed zlib port to pure js (deflate, inflate, gzip)

  • tar-stream

    Streaming tar parser and generator. Also see

Network

  • get-port

    Get an available port

  • ipify

    Get your public IP address

  • getmac

    Get the computer MAC address

  • DHCP

    DHCP client and server

  • netcat

    Netcat port in pure JS

Database / Drivers

  • PostgreSQL

    PostgreSQL client. Pure JavaScript and native libpq bindings

  • Redis

    Redis client

  • LevelUP

    LevelDB

  • MySQL

    MySQL client

  • couchdb-nano

    CouchDB client

  • Aerospike

    Aerospike client

  • Couchbase

    Couchbase client

  • MongoDB

    MongoDB driver

Database / ODM / ORM

  • Sequelize

    Multi-dialect ORM. Supports PostgreSQL, SQLite, MySQL, and more

  • Bookshelf

    ORM for PostgreSQL, MySQL and SQLite3 in the style of Backbone.js

  • Mongoose

    Elegant MongoDB object modeling

  • Waterline

    Datastore-agnostic tool that dramatically simplifies interaction with one or more databases

  • OpenRecord

    ORM for PostgreSQL, MySQL, SQLite3 and RESTful datastores. Similar to ActiveRecord

  • pg-promise

    PostgreSQL framework for native SQL using promises

  • slonik

    PostgreSQL client with strict types, detailed logging and assertions

  • Objection.js

    Lightweight ORM built on the SQL query builder Knex

  • TypeORM

    ORM for PostgreSQL, MariaDB, MySQL, SQLite, and more

  • MikroORM

    TypeScript ORM based on Data Mapper, Unit of Work and Identity Map patterns. Supports MongoDB, PostgreSQL, MySQL and SQLite

  • Prisma

    Modern database access (ORM alternative). Auto-generated and type-safe query builder in TypeScript. Supports PostgreSQL, MySQL & SQLite

  • Drizzle ORM

    TypeScript ORM that supports various databases such as PostgreSQL

Database / Query builder

  • Knex

    Query builder for PostgreSQL, MySQL and SQLite3, designed to be flexible, portable, and fun to use

Database / Other

  • NeDB

    Embedded persistent database written in JavaScript

  • Lowdb

    Small JavaScript database powered by Lodash

  • Keyv

    Simple key-value storage with support for multiple backends

  • Finale

    RESTful endpoint generator for your Sequelize models

  • database-js

    Wrapper for multiple databases with a JDBC-like connection

  • Mongo Seeding

    Populate MongoDB databases with JavaScript and JSON files

  • @databases

    Query PostgreSQL, MySQL and SQLite3 with plain SQL without risking SQL injection

  • pg-mem

    In-memory PostgreSQL instance for your tests

Testing

  • AVA

    Futuristic test runner

  • Mocha

    Feature-rich test framework making asynchronous testing simple and fun

  • nyc

    Code coverage tool built on istanbul that works with subprocesses

  • tap

    TAP test framework

  • tape

    TAP-producing test harness

  • power-assert

    Provides descriptive assertion messages through the standard assert interface

  • Mochify

    TDD with Browserify, Mocha, PhantomJS and WebDriver

  • trevor

    Run tests against multiple versions of Node.js without switching versions manually or pushing to Travis CI

  • loadtest

    Run load tests for your web application, with an API for automation

  • Sinon.JS

    Test spies, stubs and mocks

  • navit

    PhantomJS / SlimerJS wrapper to simplify browser test scripting

  • Nock

    HTTP mocking and expectations

  • intern

    Code testing stack

  • toxy

    Hackable HTTP proxy to simulate failure scenarios and network conditions

  • hook-std

    Hook and modify stdout/stderr

  • testen

    Run tests for multiple versions of Node.js locally with NVM

  • Nightwatch

    Automated UI testing framework based on Selenium WebDriver

  • WebdriverIO

    Automated testing based on the WebDriver protocol

  • Jest

    Painless JavaScript testing

  • TestCafe

    Automated browser testing

  • abstruse

    Continuous Integration server

  • CodeceptJS

    End-to-end testing

  • Puppeteer

    Headless Chrome

  • Playwright

    Headless Chromium, WebKit, and Firefox with a single API

  • nve

    Run any command on multiple versions of Node.js locally

  • axe-core

    Accessibility engine for automated Web UI testing

  • testcontainers-node

    Provides lightweight, throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container

Security

  • upash

    Unified API for all password hashing algorithms

  • themis

    Multilanguage framework for making typical encryption schemes easy to use: data at rest, authenticated data exchange, transport protection, authentication, and so on

  • GuardRails

    GitHub app that provides security feedback in pull requests

  • rate-limiter-flexible

    Brute-force and DDoS attack protection

  • crypto-hash

    Async non-blocking hashing

  • jose-simple

    Encryption and decryption of data using the JOSE (JSON Object Signing and Encryption) standard

Benchmarking

  • Benchmark.js

    Benchmarking library that supports high-resolution timers and returns statistically significant results

Minifiers

  • babel-minify

    ES2015+ aware minifier based on the Babel toolchain

  • UglifyJS2

    JavaScript minifier

  • clean-css

    CSS minifier

  • minimize

    HTML minifier

  • imagemin

    Image minifier

Authentication

  • Passport

    Simple, unobtrusive authentication

  • Grant

    OAuth providers for Express, Koa, Hapi, Fastify, AWS Lambda, Azure, Google Cloud, Vercel, and many more

Authorization

  • CASL

    Isomorphic authorization for UI and API

  • node-casbin

    Authorization library that supports access control models like ACL, RBAC and ABAC

Email

  • Nodemailer

    The fastest way to handle email

  • emailjs

    Send text/HTML emails with attachments to any SMTP server

  • email-templates

    Create, preview, and send custom email templates

  • MJML

    Markup language designed to reduce the pain of creating responsive emails

Job queues

  • bull

    Persistent job and message queue

  • agenda

    MongoDB-backed job scheduling

  • idoit

    Redis-backed job queue engine with advanced job control

  • node-resque

    Redis-backed job queue

  • rsmq

    Redis-backed message queue

  • bee-queue

    High-performance Redis-backed job queue

  • RedisSMQ

    Simple high-performance Redis message queue with real-time monitoring

  • sqs-consumer

    Build Amazon Simple Queue Service (SQS) based apps without the boilerplate

  • better-queue

    Simple and efficient job queue when you cannot use Redis

  • bullmq

    Persistent job and message queue

  • bree

    Job task scheduler with worker threads, cron, date, and human syntax support

Node.js management

  • n

    Node.js version management

  • nave

    Virtual Environments for Node.js

  • nodeenv

    Node.js virtual environment compatible to Python's virtualenv

  • nvm for Windows

    Version management for Windows

  • nodenv

    Version manager that is similar to Ruby's rbenv. It supports auto version switching

  • fnm

    Cross-platform Node.js version manager built in Rust

Cross-platform integration

  • napi-rs

    Framework for building compiled Node.js add-ons in Rust via Node-API

  • Neon

    Rust bindings for writing safe and fast native Node.js modules

  • Edge.js

    Run .NET and Node.js code in the same process on Windows, macOS, and Linux

  • DotNetJS

    Consume .NET libraries in Node.js using this .NET interoperability layer

Natural language processing

  • retext

    An extensible natural language system

  • franc

    Detect the language of text

  • leven

    Measure the difference between two strings using the Levenshtein distance algorithm

  • natural

    Natural language facility

  • nlp.js

    Building bots, with entity extraction, sentiment analysis, automatic language identify, and more

Process management

  • PM2

    Advanced Process Manager

  • nodemon

    Monitor for changes in your app and automatically restart the server

  • node-mac

    Run scripts as a native Mac daemon and log to the console app

  • node-linux

    Run scripts as native system service and log to syslog

  • node-windows

    Run scripts as a native Windows service and log to the Event viewer

  • supervisor

    Restart scripts when they crash or restart when a file changes

  • Phusion Passenger

    Friendly process manager that integrates directly into Nginx

Automation

  • robotjs

    Desktop Automation: control the mouse, keyboard and read the screen

  • nut.js

    Cross-platform native GUI automation / testing framework with image matching capabilities which integrates with Jest

AST

  • Acorn

    Tiny, fast JavaScript parser

  • babel-parser

    JavaScript parser used in Babel

Static site generators

  • DocPad

    Static site generator with dynamic abilities and huge plugin ecosystem

  • docsify

    Markdown documentation site generator with no statically built HTML files

  • Charge

    Opinionated, zero-config static site generator using JSX and MDX

Content management systems

  • KeystoneJS

    CMS and web application platform built on Express and MongoDB

  • ApostropheCMS

    Content management system with an emphasis on intuitive front end content editing and administration built on Express and MongoDB

  • Strapi

    Content Management Framework (headless-CMS) to build powerful APIs

  • Factor

    Vue.js dashboard framework and headless CMS

  • AdminBro

    Auto-generated admin panel with CRUD for all your resources

  • Graphweaver

    CMS and headless GraphQL API

Forum

  • nodeBB

    Forum platform for the modern web

Blogging

  • Ghost

    Simple, powerful publishing platform

  • Hexo

    Fast, simple and powerful blogging framework

Weird

Serialization

  • snappy

    Native bindings for Google's Snappy compression library

  • protobuf

    Implementation of Protocol Buffers

  • compactr

    Implementation of the Compactr protocol

Miscellaneous

  • execa

    Better

  • cheerio

    Fast, flexible, and lean implementation of core jQuery designed specifically for the server

  • open

    Opens stuff like websites, files, executables

  • hasha

    Hashing made simple. Get the hash of a buffer/string/stream/file

  • dot-prop

    Get a property from a nested object using a dot path

  • onetime

    Only run a function once

  • mem

    Memoize functions - an optimization technique used to speed up consecutive function calls by caching the result of calls with identical input

  • strip-bom

    Strip UTF-8 byte order mark (BOM) from a string/buffer/stream

  • os-locale

    Get the system locale

  • ssh2

    SSH2 client and server module

  • adit

    SSH tunneling made simple

  • file-type

    Detect the file type of a Buffer

  • Bottleneck

    Rate limiter that makes throttling easy

  • webworker-threads

    Lightweight Web Worker API implementation with native threads

  • clipboardy

    Access the system clipboard (copy/paste)

  • node-pre-gyp

    Makes it easy to publish and install Node.js C++ addons from binaries

  • opencv

    Bindings for OpenCV. The defacto computer vision library

  • dotenv

    Load environment variables from .env file

  • semver

    Semantic version parser

  • nodegit

    Native bindings to Git

  • json-strictify

    Safely serialize a value to JSON without data loss or going into an infinite loop

  • jsdom

    JavaScript implementation of HTML and the DOM

  • @sindresorhus/is

    Type check values

  • env-dot-prop

    Get, set, or delete nested properties of process.env using a dot path

  • node-video-lib

    Pure JavaScript library for working with MP4 and FLV video files and creating MPEG-TS chunks for HLS streaming

  • basic-ftp

    FTP/FTPS client

  • cashify

    Currency conversion

  • genepi

    Automatically generate a native Node.js addon from C++ code

  • husky

    Create Git hook scripts

  • patch-package

    Make and preserve fixes to npm dependencies

  • editly

    Declarative video editing API

  • wild-wild-path

    Object property paths with wildcards and regexes

  • uint8array-extras

    Useful utilities for working with Uint8Array and Buffer

Package Manager

  • npm

    The default package manager

  • pnpm

    Disk space efficient package manager

  • yarn

    Alternative package manager

  • bun

    All-in-one toolkit for JavaScript and TypeScript apps

Resources / Tutorials

  • Node.js Best Practices

    Summary and curation of the top-ranked content on Node.js best practices, available in multiple languages

  • Nodeschool

    Learn Node.js with interactive lessons

  • The Art of Node

    An introduction to Node.js

  • module-best-practices

    Some good practices when writing new npm modules

  • The Node Way

    An entire philosophy of Node.js best practices and guiding principles exists for writing maintainable modules, scalable applications, and code that is actually pleasant to read

  • You Don't Know Node.js

    Introduction to Node.js core features and asynchronous JavaScript

  • Portable Node.js guide

    Practical guide on how to write portable/cross-platform Node.js code

  • Build a real web app with no frameworks

    A set of video tutorials/livestreams to help you build and deploy a real, live web app using a handful of simple libraries and the core Node.js modules

Resources / Discovery

  • npms

    Superb package search with deep analysis of package quality using a

  • npm addict

    Your daily injection of npm packages

  • npm-compare.com

    Compare and discover npm packages

Resources / Articles

Resources / Newsletters

  • Node Weekly

    Weekly e-mail round-up of Node.js news and articles

Resources / Videos

Resources / Books

Resources / Blogs

  • webapplog.com

    Blog posts on Node.js and JavaScript from the author of Practical Node.js and Pro Express.js Azat Mardan

Resources / Courses

Resources / Cheatsheets

  • Stream FAQs

    Answering common questions about streams, covering pagination, events, and more

  • Strong Node.js

    Checklist for source code security analysis of a Node.js web service

Resources / Tools

  • OctoLinker

    Chrome extension that linkifies dependencies in package.json, .js, .jsx, .coffee and .md files on GitHub

  • npm-hub

    Chrome extension to display npm dependencies at the bottom of a repo's readme

  • RunKit

    Embed a Node.js environment on any website

  • github-npm-stats

    Chrome extension that displays npm download stats on GitHub

  • npm semver calculator

    Visually explore what versions of a package a semver range matches

  • CodeSandbox

    Online IDE and prototyping

  • Amplication

    Auto-generates fully functional apps

  • RunJS

    Desktop JavaScript playground

Resources / Community

Resources / Miscellaneous

  • nodebots

    Robots powered by JavaScript

  • node-module-boilerplate

    Boilerplate to kickstart creating a node module

  • modern-node

    Toolkit for creating node modules with Jest, Prettier, ESLint, and Standard

  • generator-nm

    Scaffold out a node module

  • Microsoft Node.js Guidelines

    Tips, tricks, and resources for working with Node.js on Microsoft platforms

  • Module Requests & Ideas

    Request a JavaScript module you wish existed or get ideas for modules

  • v8-perf

    Notes and resources related to V8 and thus Node.js performance

More related projects

Add a GitHub project

Missing a project or an awesome list? Paste its GitHub URL and we fetch it right away.