mirror of
https://github.com/sindresorhus/awesome-nodejs.git
synced 2024-11-20 11:27:17 -05:00
⚡ Delightful Node.js packages and resources
https://node.cool
2e126d5877
Add trevor to Testing |
||
---|---|---|
contributing.md | ||
readme.md |
Awesome Node.js
A curated list of delightful Node.js packages and resources.
Inspired by the awesome list thing.
Packages
- Mad science
- Command-line apps
- Functional programming
- HTTP
- Debugging / Profiling
- Logging
- Command-line utilities
- Build tools
- Hardware
- Templating
- Web frameworks
- Documentation
- Filesystem
- Control flow
- Streams
- Real-time
- Image
- Text
- Number
- Math
- Date
- URL
- Data validation
- Parsing
- Humanize
- Compression
- Network
- Database
- Testing
- Benchmarking
- Minifiers
- Authentication
- Node.js management
- Polyfills
- Natural language processing
- Process management
- Automation
- AST
- Static site generators
- Content management systems
- Forum
- Blogging
- Weird
- Miscellaneous
Mad science
- webtorrent - Streaming torrent client for Node.js and the browser.
- GitTorrent - Peer-to-peer network of Git repositories being shared over BitTorrent.
- 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 - A 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.
- js-git - JavaScript implementation of Git.
- NodeOS - The first operating system powered by npm.
Command-line apps
- pageres - Capture website screenshots.
- trash - A safer alternative to
rm
. - npm-name - Check whether a package name is available on npm.
- XO - Enforce strict code style using the JavaScript happiness style.
- speed-test - Test your internet connection speed and ping.
- np - A better
npm publish
. - yo - Run Yeoman generators.
- ESLint - The pluggable linting utility for JavaScript.
- JSCS - JavaScript Code Style checker.
- Standard - JavaScript Standard Style — One style to rule them all.
- cpy - Copy files.
- fkill - Fabulously kill processes. Cross-platform.
- vantage - Distributed, realtime CLI for your live app.
- vtop - More better top, with nice charts.
- tmpin - Adds stdin support to any CLI app that accepts file input.
- 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.
- dark-mode - Toggle the Dark Mode in OS X 10.10 from the command-line.
- ttystudio - Record your terminal and compile it to a GIF or APNG without any external dependencies, bash scripts, gif concatenation, etc.
- David - Tells you when your package npm dependencies are out of date.
- http-server - Simple, zero-config command-line HTTP server.
- Live Server - A simple development HTTP-server with livereload capability.
- bcat - Pipe command output to web browsers.
- normit - Google Translate with speech synthesis in your terminal.
- slap - Sublime-like terminal-based text editor.
- jsinspect - Detect copy-pasted and structurally similar code.
- esformatter - JavaScript code beautifier/formatter.
- 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.
- modhelp - Syntax-highlighted module READMEs in terminal with ANSI-friendly pager.
- wifi-password - Get the current wifi password.
- wallpaper - Change the desktop wallpaper.
- brightness - Change the screen brightness.
- torrent - Download torrents.
- tfa - Two-factor authentication client.
- rtail - Terminal output to the browser in seconds, using UNIX pipes.
- 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.
Functional programming
- lodash - A utility library delivering consistency, customization, performance, & extras. A better and faster Underscore.js.
- immutable - Immutable data collections.
- mori - A library for using ClojureScript's persistent data structures and supporting API from the comfort of vanilla JavaScript.
- Ramda - A utility library with a focus on flexible functional composition enabled by automatic currying and reversed argument order. Avoids mutating data.
- Folktale - A suite of libraries for generic functional programming in JavaScript that allows you to write elegant, modular applications with fewer bugs, and more reuse.
- underscore-contrib - The brass buckles on Underscore's utility belt.
- 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.
HTTP
- got - A nicer interface to the built-in
http
module. - gh-got - Convenience wrapper for
got
to interact with the GitHub API. - request - Simplified HTTP request client.
- Nock - A HTTP mocking and expectations library.
- hyperquest - Streaming HTTP requests.
- axios - Promise based HTTP client (works in the browser too).
- spdy - Creates SPDY servers with the same API as the built-in
https
module. - wreck - HTTP Client Utilities.
- download - Download and extract files effortlessly.
- http-proxy - A full-featured HTTP proxy.
- rocky - Featured, middleware-oriented HTTP proxy with traffic replay and intercept.
- superagent - A small progressive HTTP request library.
Debugging / Profiling
- ironNode - Node.js debugger supporting ES2015 out of the box.
- node-inspector - Debugger based on Blink Developer Tools.
- Theseus - A new type of JavaScript debugger featuring real-time code coverage, retroactive inspection and asynchronous call tree.
- longjohn - Long stack traces with configurable call trace length.
- debug - Tiny debugging utility.
- jstrace - Dynamic tracing for JavaScript, similar to dtrace, ktap etc.
- 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.
- TraceGL - Transforms your JavaScript, injecting monitoring code that produces a log of everything that happens.
Logging
- winston - A multi-transport async logging library.
- Bunyan - A simple and fast JSON logging library.
- intel - A comprehensive logging library (handlers, filters, formatters, console injection).
Command-line utilities
- chalk - Terminal string styling done right.
- meow - CLI app helper.
- minimist - Parse command-line flags.
- get-stdin - Easier stdin.
- user-home - Get the path to the user home directory.
- log-update - Log by overwriting the previous output in the terminal. Useful for rendering progress bars, animations, etc.
- Inquirer.js - Interactive command-line prompt.
- update-notifier - Update notifications for your CLI app.
- ansi-escapes - ANSI escape codes for manipulating the terminal.
- sudo-block - Block users from running your app with root permissions.
- configstore - Easily load and persist config without having to think about where and how.
- insight - Helps you understand how your tool is being used by anonymously reporting usage metrics to Google Analytics.
- log-symbols - Colored symbols for various log levels.
- figures - Unicode symbols with Windows CMD fallbacks.
- string-width - Get the visual width of a string - the number of columns required to display it.
- first-run - Check if it's the first time the process is run.
- sparkly - Generate sparklines ▁▂▃▅▂▇
- blessed - A curses-like library.
- yn - Parse yes/no like values.
- cli-table - Pretty unicode tables.
- drawille - Draw on the terminal with unicode braille characters.
- googleauth - Create and load persistent Google authentication tokens for command-line apps.
- ascii-charts - ASCII bar chart in the terminal.
- progress - Flexible ascii progress bar.
- cli-cursor - Toggle the CLI cursor.
- columnify - Create text-based columns suitable for console output. Supports cell wrapping.
- cfonts - Sexy ASCII fonts for the console.
Build tools
- gulp - Streaming and fast build system that favors code over config.
- grunt - Task runner that can perform repetitive tasks like minification, compilation, unit testing, linting, etc.
- Broccoli - A fast, reliable asset pipeline, supporting constant-time rebuilds and compact build definitions.
- browserify - Browser-side require() the Node.js way.
- webpack - Packs CommonJS/AMD modules for the browser.
- Brunch - Front-end web app build tool with simple declarative config, fast incremental compilation, and an opinionated workflow.
- strong-build - Build a node app package and prepare to deploy it as a package to production or use git to commit to a deploy branch.
Hardware
- johnny-five - Firmata based Arduino Framework.
- serialport - Access serial ports for reading and writing.
- usb - USB library.
- cylon.js - Next generation robotics framework with support for 26 different platforms.
- i2c-bus - I2C serial bus access.
Templating
- handlebars.js - A superset of Mustache templates which adds powerful features like helpers and more advanced blocks.
- marko - A fast and lightweight HTML-based templating engine that compiles templates to CommonJS modules and supports streaming, async rendering and custom tags.
- nunjucks - A powerful templating engine with inheritance, asynchronous control, and more (jinja2 inspired).
- hogan.js - Twitter's small, fast, phase-separated compiler for Mustache templates.
- EJS - Simple unopinionated templating language.
- Jade - High-performance template engine heavily influenced by Haml.
Web frameworks
- Koa - A new web 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 - A minimal and flexible web application framework, providing a robust set of features for building single and multi-page, and hybrid web applications.
- Hapi - A rich framework for building applications and services.
- 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)
- SailsJS - An MVC web framework with a modern twist, supporting WebSockets, streams, and a data-driven API.
- Restify - A node framework built specifically to enable you to build correct REST web services.
- Interfake - Rapid prototyping framework for making mock HTTP APIs, with a Node.js, command-line and HTTP interface.
- Derby - MVC framework, making it easy to write realtime, collaborative applications that run in both Node.js and browsers.
- Restberry - Framework for setting up RESTful JSON APIs, applied to your database models without needing to write any code.
- Catberry - Framework with Flux architecture, isomorphic web-components, and progressive rendering.
Documentation
- Docco - A quick-and-dirty documentation generator which produces an HTML document that displays your comments intermingled with your code.
- JSDoc - API documentation generator similar to JavaDoc or PHPDoc.
- dox - JavaScript documentation generator using Markdown and JSDoc.
- jsdox - JSDoc3 to Markdown documentation generator.
- apiDoc - Inline documentation for RESTful web APIs.
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
. - mkdirp - 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
andfs.watchFile
as well as using nativefsevents
on OS X. - 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.
Control flow
- Callbacks
- each-async - Async concurrent iterator like forEach.
- async - Provides straight-forward, powerful functions for working with asynchronicity.
- async-chainable - Chainable, pluggable async functionality.
- after-all-results - Bundle results of async functions calls into one callback with all the results.
- Generators
- co - The ultimate generator based flow-control goodness.
- suspend - Generator-based control flow that plays nice with callbacks, promises, and thunks.
- bluebird-co - A set of high performance yield handlers for Bluebird coroutines.
- Promises
- Bluebird - A fully featured promise library with focus on innovative features and performance.
- pinkie-promise - Promise ponyfill.
- Streams
- Highland.js - Manages synchronous and asynchronous code easily, using nothing more than standard JavaScript and Node-like Streams.
- Channels
- js-csp - Communicating sequential processes for JavaScript (like Clojurescript core.async, or Go).
- Other
- zone - Provides a way to group and track resources and errors across asynchronous operations.
Streams
- through2 - Tiny wrapper around streams2 Transform to avoid explicit subclassing noise.
- from2 - Convenience wrapper for ReadableStream, inspired by
through2
. - concat-stream - Concatenates a stream into strings or binary data.
- 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 - A fast 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.
- graphicsmagick-stream - Fast conversion/scaling of images using a pool of long lived GraphicsMagick processes.
Real-time
- Socket.io - Enables real-time bidirectional event-based communication.
- SockJS - Low latency, full duplex, cross-domain channel browser-server, with WebSockets or without.
- 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.
- Straw - Real-time dataflow framework.
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.
- is-progressive - Check if a JPEG image is progressive.
- probe-image-size - Get the size of most image formats without a full download.
Text
- Underscore.string - Collection of string manipulation utilities.
- iconv-lite - Convert character encodings.
- repeating - Repeat a string.
- 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 - A robust HTML entity encoder/decoder.
- i18n-node - Simple translation module with dynamic JSON storage.
- babelfish - i18n with very easy syntax for plurals.
- parse-columns - Parse text columns, like the output of Unix commands.
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-sum - Sum numbers.
- math-clamp - Clamp a number.
Date
- Moment.js - Parse, validate, manipulate, and display dates.
- Moment Timezone - IANA Time Zone Database + Moment.js.
- dateformat - Date formatting.
URL
- normalize-url - Normalize a URL.
- humanize-url - Humanize a URL: http://sindresorhus.com → 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.
Parsing
- mdast - Markdown processor powered by plugins.
- markdown-it - A very fast 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.
- URI.js - URL mutation.
- PostCSS - CSS parser / stringifier.
- JSONStream - Streaming JSON.parse and stringify.
- csv-parser - Streaming CSV parser that aims to be faster than everyone else.
- neat-csv - Fast CSV parser. Callback interface for the above.
- PEG.js - Simple parser generator that produces fast parsers with excellent error reporting.
- x-ray - A web scraping utility to see through the
<html>
noise. - nearley - Simple, fast, powerful parsing for JavaScript.
- binary-extract - Extract a value from a buffer of JSON without parsing the whole thing.
- json-mask - Tiny language and engine for selecting parts of an object, hiding/masking the rest.
- Stylecow - Parse, manipulate and convert modern CSS to make it compatible with all browsers. Extensible with plugins.
- js-yaml - Very fast YAML parser.
- excel-stream - Streaming Excel spreadsheet to JSON parser.
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.
- humanize - Data formatter for human readability.
- read-art - Extract readable content from any page.
Compression
- Archiver - Streaming interface for archive generation, supporting ZIP and TAR.
- decompress-zip - Unzip.
- pako - High speed zlib port to pure js (deflate, inflate, gzip).
- tar-stream - Streaming tar parser and generator. Also see tar-fs.
- decompress - A pluggable decompression module with support for
tar
,tar.gz
andzip
files out of the box.
Network
- get-port - Get an available port.
- ipify - Get your public IP address.
- getmac - Get the computer MAC address.
Database
- Drivers
- LevelUP - LevelDB.
- MongoDB - MongoDB driver.
- PostgreSQL - PostgreSQL client. Pure JavaScript and native libpq bindings.
- MySQL - MySQL client.
- Redis - Redis client.
- ODM / ORM
- Bookshelf - ORM for PostgreSQL, MySQL and SQLite3 in the style of Backbone.js.
- Mongoose - Elegant MongoDB object modeling.
- Sequelize - Multi-dialect ORM. Supports PostgreSQL, SQLite, MySQL.
- Waterline - Datastore-agnostic tool that dramatically simplifies interaction with one or more databases.
- Iridium - A high performance MongoDB ORM with support for promises, distributed caching, preprocessing, validation and plugins.
- OpenRecord - ORM for PostgreSQL, MySQL, SQLite3 and RESTful datastores. Similar to ActiveRecord.
- orm2 - ORM for PostgreSQL, MariaDB, MySQL, Amazon Redshift, SQLite, MongoDB.
- firenze - Adapter-based ORM for MySQL, Memory, Redis, localStorage and more.
- Query builder
- Knex - A query builder for PostgreSQL, MySQL and SQLite3, designed to be flexible, portable, and fun to use.
- Other
- NeDB - Embedded persistent database written in JavaScript.
Testing
- AVA - Simple concurrent test runner.
- tape - TAP-producing test harness.
- Mocha - A feature-rich test framework making asynchronous testing simple and fun.
- Mochify - TDD with Browserify, Mocha, PhantomJS and WebDriver.
- loadtest - Run load tests for your web application, with an API for automation.
- istanbul - A code coverage tool that computes statement, line, function and branch coverage with module loader hooks to transparently add coverage when running tests.
- Sinon.JS - Test spies, stubs and mocks.
- navit - PhantomJS / SlimerJS wrapper to simplify browser test scripting.
- nock - HTTP mocking and expectations.
- intern - A next-generation code testing stack for JavaScript.
- toxy - Hackable HTTP proxy to simulate failure scenarios and network conditions.
- trevor - Run tests against multiple versions of Node.js without switching versions manually or pushing to Travis CI.
Benchmarking
- Benchmark.js - A robust benchmarking library that works on nearly all JavaScript platforms, supports high-resolution timers, and returns statistically significant results.
- matcha - A caffeine-driven, simplistic approach to benchmarking.
Minifiers
- UglifyJS2 - JavaScript minifier.
- clean-css - CSS minifier.
- minimize - HTML minifier.
- imagemin - Image minifier.
Authentication
- Passport - Simple, unobtrusive authentication.
- everyauth - Authentication and authorization (password, Facebook, etc) for your Connect and Express apps.
- passwordless - Token-based authentication middleware for Express allowing authentication without passwords.
- Lockit - Full featured authentication solution for Express. Supports a variety of databases, predefined routes, email and two-factor authentication.
- Grant - OAuth middleware for Express, Koa, and Hapi.
- Nodemailer - The fastest way to handle email.
Node.js management
- n - Node.js version management.
- nave - Virtual Environments for Node.js.
- nodeenv - A Node.js virtual environment compatible to Python's virtualenv.
- nvm for Windows - Version management for Windows.
Polyfills
- Node.js
- set-immediate-shim - Simple
setImmediate()
ponyfill. - path-is-absolute - Node.js 0.12
path.isAbsolute()
ponyfill. - os-tmpdir - Node.js
os.tmpdir()
ponyfill. - os-homedir - Node.js 4.0
os.homedir()
ponyfill. - debug-log - Node.js 0.12
util.debuglog()
ponyfill. - buffer-equals - Node.js 0.12
buffer.equals()
ponyfill. - buf-indexof - Node.js 4.0
buffer.indexOf()
ponyfill. - buf-compare - Node.js 0.12
Buffer.compare()
ponyfill. - fs-access - Node.js 0.12
fs.access()
&fs.accessSync()
ponyfill. - exec-file-sync - Node.js 0.12
childProcess.execFileSync()
ponyfill. - child-process-ctor - Node.js 4.0
childProcess.ChildProcess
ponyfill. - node-status-codes - Node.js
http.STATUS_CODES
ponyfill. - exit-code - Node.js 0.12
process.exitCode
polyfill. - core-assert - Node.js
assert
as a standalone module. - deep-strict-equal - Test for deep equality - Node.js
assert.deepStrictEqual()
algorithm as a standalone module.
- set-immediate-shim - Simple
- JavaScript
- object-assign - ES2015
Object.assign()
ponyfill. - pinkie-promise - ES2015
Promise
ponyfill. - harmony-reflect - ES2015
Reflect
andProxy
polyfill. - es6-shim - Collection of ES2015 polyfills.
- More ES2015 polyfills at es6-tools.
- object-assign - ES2015
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 - A general natural language facility.
Process management
- node-windows - Run scripts as a native Windows service and log to the Event viewer.
- 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.
- forever - A simple CLI tool for ensuring that a given script runs continuously (i.e. forever).
- supervisor - Restart scripts when they crash or restart when a
*.js
file changes. - PM2 - Advanced Process Manager.
- Phusion Passenger - Friendly process manager that integrates directly into Nginx.
- naught - Process manager with zero downtime deployment.
Automation
- robotjs - Desktop Automation: control the mouse, keyboard and read the screen.
AST
Static site generators
- Metalsmith - An extremely simple, pluggable static site generator.
- 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.
Content management systems
- KeystoneJS - CMS and web application platform built on Express and MongoDB.
- Calipso - A simple content management system, built along similar themes to Drupal and Wordpress, that is designed to be fast, flexible and simple.
- Apostrophe2 - A content management system with an emphasis on intuitive front end content editing and administration built on Express and MongoDB.
Forum
- nodeBB - A better forum platform for the modern web.
Blogging
- ghost - Simple, powerful publishing platform that allows you to share your story with the world.
- Hexo - Fast, simple and powerful blogging framework.
Weird
- superb - Get superb like words.
- cat-names - Get popular cat names.
- dog-names - Get popular dog names.
- superheroes - Get superhero names.
- supervillains - Get supervillain names.
- cool-ascii-faces - Get some cool ascii faces.
- cat-ascii-faces - ₍˄·͈༝·͈˄₎◞ ̑̑ෆ⃛ (=ↀωↀ=)✧ (^・o・^)ノ”
Miscellaneous
- 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)
- opn - 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.
- require-uncached - Require a module bypassing the cache.
- stringify-object - Stringify an object/array like JSON.stringify just without all the double-quotes.
- strip-bom - Strip UTF-8 byte order mark (BOM) from a string/buffer/stream.
- shelljs - Portable Unix shell commands.
- os-locale - Get the system locale.
- nan - A header file filled with macro and utility goodness for making add-on development for across Node.js versions easier.
- multiline - Multiline strings in JavaScript.
- ssh2 - An SSH2 client module.
- lazy-req - Require modules lazily.
- file-type - Detect the file type of a Buffer.
- Bottleneck - A powerful rate limiter that makes throttling easy.
- webworker-threads - Lightweight Web Worker API implementation with native threads.
- 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.
- common-errors - Common error classes and utility functions.
- agenda - Lightweight job scheduling on MongoDB.
- dotenv - Load environment variables from .env file.
- remote-git-tags - Get tags from a remote git repo.
- semver - semver parser.
- nar - Create self-contained executable binaries.
- node-bell - Real-time anomalies detection for periodic time series.
- Faker.js - Generate massive amounts of fake data.
Resources
Tutorials
- 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.
- browserify-handbook - The definitive guide for browserify.
- module-best-practices - Some good practices when writing new npm modules.
Discovery
- node-modules.com - An alternative npm search engine with a more intelligent and personal results ranking.
Articles
Newsletters
- node weekly - Weekly e-mail round-up of Node.js news and articles.
- nmotw - Node Module Of The Week, weekly dose of hand picked node modules.
Videos
- Introduction to Node.js with Ryan Dahl
- LearnAllTheNodes - Series of useful tips, tricks, and packages.
- Introduction to Node.js Fundamentals
- Hands on with Node.js
- Full Streams Ahead - Introduction to streams.
- StrongLoop Talks - Series of talks.
Podcasts
Books
- Node.js in Action
- Node.js in Practice
- Mastering Node
- Professional Node.js: Building Javascript Based Scalable Software
- Practical Node.js: Building Real-World Scalable Web Apps
- Mixu's Node book
- Web Development with Node and Express
Blogs
- Node.js blog
- HowToNode - Teaching how to do various tasks in Node.js as well as teach fundamental concepts that are needed to write effective code.
Courses
Cheatsheets
- Express.js
- Stream FAQs - Answering common questions about streams, covering pagination, events, and more.
Tools
- GitHub Linker - 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.
Miscellaneous
- nodebots - Robots powered by JavaScript.
- node-module-boilerplate - Boilerplate to kickstart creating a node module.
- generator-nm - Scaffold out a node module.
Contribute
Contributions welcome! Read the contribution guidelines first.
License
To the extent possible under law, Sindre Sorhus has waived all copyright and related or neighboring rights to this work.