https://github.com/sindresorhus/awesome-nodejs css
Special thanks to: Botpress is an open-source conversational assistant creation platform. They welcome contributions from anyone, whether you're into machine learning, want to get started in open-source, or just have an improvement idea. Save time setting up analytics with Segment. We're hiring! html
Just type node.cool
to go here. Check out my blog and follow me on Twitter . node
Contents
Packages
Mad science
webtorrent - Streaming torrent client for Node.js and the browser.
peerflix - Streaming torrent client.
dat - Real-time replication and versioning for data sets.
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.
Cytoscape.js - Graph theory (a.k.a. network) modeling and analysis.
Kadence - Kademlia distributed hash table.
seedshot - Temporary P2P screenshot sharing from your browser.
js-git - JavaScript implementation of Git.
skale - High performance distributed data processing engine.
xlsx - Pure JS Excel spreadsheet reader and writer.
isomorphic-git - Pure JavaScript implementation of Git.
Command-line apps
np - Better npm publish
.
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 rm
.
speed-test - Test your internet connection speed and ping.
emoj - Find relevant emoji from text on the command-line.
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.
Standard - JavaScript Standard Style — One style to rule them all.
ESLint - The pluggable linting utility for JavaScript.
dev-time - Get the current local time of a GitHub user.
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.
wifi-password - Get the current wifi password.
wallpaper - Change the desktop wallpaper.
brightness - Change the screen brightness.
torrent - Download torrents.
kill-tabs - Kill all Chrome tabs to improve performance, decrease battery usage, and save memory.
alex - Catch insensitive, inconsiderate writing.
pen - Live Markdown preview in the browser from your favorite editor.
subdownloader - Subtitle downloader for movies and TV series.
dark-mode - Toggle the macOS Dark Mode.
iponmap - IP location finder.
Jsome - Pretty prints JSON with configurable colors and indentation.
itunes-remote - Interactively control iTunes.
mobicon - Mobile app icon generator.
mobisplash - Mobile app splash screen generator.
diff2html-cli - Pretty git diff to HTML generator.
Cash - Cross-platform Unix shell commands in pure JavaScript.
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.
Folktale - Suite of libraries for generic functional programming in JavaScript that allows you to write elegant, modular applications with fewer bugs, and more reuse.
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.
Bacon.js - Functional reactive programming.
RxJS - Functional reactive library for transforming, composing, and querying various kinds of data.
Lazy.js - Utility library similar to lodash/Underscore but with lazy evaluation, which can translate to superior performance in many cases.
Kefir.js - Reactive library with focus on high performance and low memory usage.
HTTP
got - Nicer interface to the built-in http
module.
gh-got - Convenience wrapper for got
to interact with the GitHub API.
axios - Promise based HTTP client (works in the browser too).
wreck - HTTP Client Utilities.
download - Download and extract files effortlessly.
http-proxy - HTTP proxy.
superagent - HTTP request library.
node-fetch - window.fetch
for Node.js.
flashheart - REST client.
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 got .
global-agent - Global HTTP/HTTPS proxy agent that is configurable using environment variables.
Debugging / Profiling
ndb - Improved debugging experience, enabled by Chrome DevTools.
ironNode - Node.js debugger supporting ES2015 out of the box.
node-inspector - Debugger based on Blink Developer Tools.
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.
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.
signale - Console logger.
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.
listr - 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.
first-run - Check if it's the first time the process is run.
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.
update-notifier - Update notifications for your CLI app.
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.
columnify - Create text-based columns suitable for console output. Supports cell wrapping.
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.
loud-rejection - Make unhandled promise rejections fail loudly instead of the default silent fail.
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.
term-size - Reliably get the terminal window size.
Cliffy - Framework for interactive CLIs.
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.
Start - Functional task runner with shareable presets.
ygor - Promising task runner for when npm run
isn't enough and everything else is too much.
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.
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.
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
Hapi - Framework for building applications and services.
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. (You might like awesome-meteor )
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.
Next.js - Minimalistic framework for server-rendered universal JavaScript web apps.
Nuxt.js - Minimalistic framework for server-rendered Vue.js apps.
seneca - Toolkit for writing microservices.
AdonisJs - A true MVC framework for Node.js built on solid foundations of Dependency Injection and IoC container.
Hemera - Write reliable and fault-tolerant microservices with NATS .
Micro - Minimalistic microservice framework with an async approach.
Moleculer - Fast & powerful microservices framework.
Fastify - Fast and low overhead web framework.
Nest - Angular-inspired framework for building efficient and scalable server-side apps.
Zeronode - Minimal building block for reliable and fault-tolerant microservices.
TypeGraphQL - Modern framework for creating GraphQL APIs with TypeScript, using classes and decorators.
Documentation
documentation.js - API documentation generator with support for ES2015+ and flow annotation.
ESDoc - Documentation generator targeting ES2015, attaching test code and measuring documentation coverage.
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.
cpy - Copy files.
rimraf - Recursively delete files like rm -rf
.
make-dir - Recursively create directories like mkdir -p
.
graceful-fs - Drop-in replacement for the fs
module with various improvements.
chokidar - Filesystem watcher which stabilizes events from fs.watch
and fs.watchFile
as well as using native fsevents
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 fs.createWriteStream()
, but atomic.
filenamify - Convert a string to a valid filename.
lnfs - Force create symlinks like ln -fs
.
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 fs
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
Bluebird - Promise library with focus on innovative features and performance.
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.
More…
Observables
Streams
Highland.js - Manages synchronous and asynchronous code easily, using nothing more than standard JavaScript and Node-like Streams.
Callbacks
each-async - Async concurrent iterator like forEach.
async - Provides straight-forward, powerful functions for working with asynchronicity.
Channels
js-csp - Communicating sequential processes for JavaScript (like Clojurescript core.async, or Go).
Streams
through2 - Tiny wrapper around streams2 Transform to avoid explicit subclassing noise.
from2 - Convenience wrapper for ReadableStream, inspired by through2
.
get-stream - Get a stream as a string or buffer.
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.
stream-combiner2 - Turn a pipeline 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 image type of a Buffer/Uint8Array.
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.
probe-image-size - Get the size of most image formats without a full download.
qrcode - QR code and bar code generator.
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.
execall - Find multiple RegExp matches in a string.
splice-string - Remove or replace part of a string like Array#splice
.
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.
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: 1.234
→ 1.2
.
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.
Moment.js - Parse, validate, manipulate, and display dates.
Day.js - Immutable date library alternative to Moment.js.
dateformat - Date formatting.
tz-format - Format a date with timezone: 2015-11-30T10:40:35+01:00
.
cctz - Fast parsing, formatting, and timezone conversation for dates.
URL
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.
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.
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.
PostCSS - CSS parser / stringifier.
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: 1337
→ 1.34 kB
.
pretty-ms - Convert milliseconds to a human readable string: 1337000000
→ 15d 11h 23m 20s
.
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 tar-fs .
decompress - Decompression module with support for tar
, tar.gz
and zip
files out of the box.
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
ODM / ORM
Sequelize - Multi-dialect ORM. Supports PostgreSQL, SQLite, MySQL.
Bookshelf - ORM for PostgreSQL, MySQL and SQLite3 in the style of Backbone.js.
Massive - PostgreSQL data access tool.
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.
Query builder
Knex - Query builder for PostgreSQL, MySQL and SQLite3, designed to be flexible, portable, and fun to use.
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.
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.
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.
matcha - Simplistic approach to benchmarking.
Minifiers
Authentication
Passport - Simple, unobtrusive authentication.
Grant - OAuth middleware for Express, Koa, and Hapi.
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.
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.
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 *.js
file changes.
Phusion Passenger - Friendly process manager that integrates directly into Nginx.
Automation
robotjs - Desktop Automation: control the mouse, keyboard and read the screen.
AST
Acorn - Tiny, fast JavaScript parser.
babel-parser - JavaScript parser used in Babel.
cherow - JavaScript parser with focus on performance and stability.
Static site generators
Wintersmith - Flexible, minimalistic, multi-platform static site generator.
Assemble - Static site generator for Node.js, Grunt.js, and Yeoman.
DocPad - Static site generator with dynamic abilities and huge plugin ecosystem.
Phenomic - Modern static website generator based on the React and Webpack 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.
Tipe - Developer-first content management system with GraphQL and REST API from a schema file.
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 child_process
.
cheerio - Fast, flexible, and lean implementation of core jQuery designed specifically for the server.
Electron - Build cross platform desktop apps with web technologies. (You might like awesome-electron )
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.
import-fresh - Import a module while bypassing the cache.
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.
import-lazy - Import a module lazily.
file-type - Detect the file type of a Buffer.
Bottleneck - Rate limiter that makes throttling easy.
ow - Function argument validation for humans.
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.
remote-git-tags - Get tags from a remote git repo.
semver - Semantic version parser.
Faker.js - Generate massive amounts of fake data.
nodegit - Native bindings to Git.
json-strictify - Safely serialize a value to JSON without data loss or going into an infinite loop.
resolve-from - Resolve the path of a module like require.resolve()
but from a given path.
simplecrawler - Event driven web crawler.
jsdom - JavaScript implementation of HTML and the DOM.
hypernova - Server-side rendering your JavaScript views.
@sindresorhus/is - Type check values.
env-dot-prop - Get, set, or delete nested properties of process.env using a dot path.
emittery - Simple and modern async event emitter.
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.
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.
stream-handbook - How to write Node.js programs with streams.
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.
Discovery
Articles
Newsletters
Videos
Books
Blogs
Node.js blog
webapplog.com - Blog posts on Node.js and JavaScript from the author of Practical Node.js and Pro Express.js Azat Mardan.
Courses
Cheatsheets
Express.js
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.
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.
RequireBin - Shareable JavaScript programs powered by npm and browserify.
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.
Community
Miscellaneous
Related lists