├── contributing.md └── readme.md /contributing.md: -------------------------------------------------------------------------------- 1 | # Contribution Guidelines 2 | 3 | Please ensure your pull request adheres to the following guidelines: 4 | 5 | - Search previous suggestions before making a new one, as yours may be a duplicate. 6 | - Suggested packages should be tested and documented. 7 | - Make an individual pull request for each suggestion. 8 | - Use the following format: `[package](link) - Description.` 9 | - New categories, or improvements to the existing categorization are welcome. 10 | - Keep descriptions short and simple, but descriptive. 11 | - End all descriptions with a full stop/period. 12 | - Check your spelling and grammar. 13 | - Make sure your text editor is set to remove trailing whitespace. 14 | - The pull request should include a link to the package and why it should be included. 15 | 16 | Thank you for your suggestions! 17 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # Awesome Node.js 2 | 3 | > A curated list of delightful Node.js [packages](#packages) and [resources](#resources). 4 | 5 | Inspired by the [awesome](https://github.com/sindresorhus/awesome) list thing. 6 | 7 | 8 | ## Packages 9 | 10 | - [Functional programming](#functional-programming) 11 | - [Command-line apps](#command-line-apps) 12 | - [HTTP](#http) 13 | - [Logging](#logging) 14 | - [Web frameworks](#web-frameworks) 15 | - [Command-line utilities](#command-line-utilities) 16 | - [Build tools](#build-tools) 17 | - [Templating](#templating) 18 | - [Documentation](#documentation) 19 | - [Filesystem](#filesystem) 20 | - [Control flow](#control-flow) 21 | - [Streams](#streams) 22 | - [Real-time](#real-time) 23 | - [Date](#date) 24 | - [Image](#image) 25 | - [Humanize](#humanize) 26 | - [Static site generators](#static-site-generators) 27 | - [Content management systems](#content-management-systems) 28 | - [Debugging](#debugging) 29 | - [Database](#database) 30 | - [Testing](#testing) 31 | - [Minifiers](#minifiers) 32 | - [Authentication](#authentication) 33 | - [Node.js management](#nodejs-management) 34 | - [Polyfills](#polyfills) 35 | - [Miscellaneous](#miscellaneous) 36 | 37 | 38 | ### Functional programming 39 | 40 | - [Lo-Dash](http://lodash.com) - A utility library delivering consistency, customization, performance, & extras. A better and faster Underscore.js. 41 | - [Underscore.js](http://underscorejs.org) - Provides a whole mess of useful functional programming helpers without extending any built-in objects. 42 | - [Mout](http://moutjs.com) - 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. 43 | 44 | 45 | ### Command-line apps 46 | 47 | - [npm](https://github.com/npm/npm/) - A package-manager for Node.js. 48 | - [Bower](http://bower.io) - A package manager for the web. 49 | - [Yo](https://github.com/yeoman/yo) - Run Yeoman generators. 50 | - [Pageres](https://github.com/sindresorhus/pageres) - Responsive website screenshots. 51 | - [trash](https://github.com/sindresorhus/trash) - A safer alternative to `rm`. 52 | - [ESLint](http://eslint.org) - The pluggable linting utility for JavaScript. 53 | - [JSHint](http://jshint.com) - A community-driven tool to detect errors and potential problems in JavaScript code. 54 | - [cpy](https://github.com/sindresorhus/cpy) - Copy files. 55 | 56 | 57 | ### HTTP 58 | 59 | - [request](https://github.com/mikeal/request) - Simplified HTTP request client. 60 | - [got](https://github.com/sindresorhus/got) - A nicer interface to the built-in `http` module. 61 | - [superagent](https://github.com/visionmedia/superagent) - A small progressive HTTP request library. 62 | - [hyperquest](https://github.com/substack/hyperquest) - Streaming HTTP requests. 63 | 64 | 65 | ### Logging 66 | 67 | - [winston](https://github.com/flatiron/winston) - A multi-transport async logging library. 68 | - [Bunyan](https://github.com/trentm/node-bunyan) - A simple and fast JSON logging library. 69 | 70 | 71 | ### Web frameworks 72 | 73 | - [Koa](http://koajs.com) - 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. 74 | - [Express](http://expressjs.com) - A minimal and flexible web application framework, providing a robust set of features for building single and multi-page, and hybrid web applications. 75 | - [Hapi](http://hapijs.com/) - A rich framework for building applications and services. 76 | 77 | 78 | ### Command-line utilities 79 | 80 | - [chalk](https://github.com/sindresorhus/chalk) - Terminal string styling done right. 81 | - [minimist](https://github.com/substack/minimist) - Parse command-line flags 82 | - [Inquirer.js](https://github.com/SBoudrias/Inquirer.js) - Interactive command-line prompt. 83 | - [update-notifier](https://github.com/yeoman/update-notifier) - Update notifications for your CLI app. 84 | - [sudo-block](https://github.com/sindresorhus/sudo-block) - Block users from running your app with root permissions. 85 | - [blessed](https://github.com/chjj/blessed) - A curses-like library. 86 | - [cli-table](https://github.com/LearnBoost/cli-table) - Pretty unicode tables. 87 | 88 | 89 | ### Build tools 90 | 91 | - [gulp.js](http://gulpjs.com) - Streaming and fast build system that favors code over config. 92 | - [grunt](http://gruntjs.com) - Task runner that can perform repetitive tasks like minification, compilation, unit testing, linting, etc. 93 | - [Broccoli](https://github.com/broccolijs/broccoli) - A fast, reliable asset pipeline, supporting constant-time rebuilds and compact build definitions. 94 | 95 | 96 | ### Templating 97 | 98 | - [handlebars.js](https://github.com/wycats/handlebars.js/) - Provides the power necessary to let you build semantic templates effectively with no frustration. 99 | - [Jade](https://github.com/visionmedia/jade) - High performance template engine heavily influenced by Haml. 100 | - [nunjucks](https://github.com/mozilla/nunjucks) - A powerful templating engine with inheritance, asynchronous control, and more (jinja2 inspired). 101 | 102 | 103 | ### Documentation 104 | 105 | - [Docco](http://jashkenas.github.io/docco/) - A quick-and-dirty documentation generator which produces an HTML document that displays your comments intermingled with your code. 106 | - [JSDoc](http://usejsdoc.org) - API documentation generator similar to JavaDoc or PHPDoc. 107 | - [dox](https://github.com/visionmedia/dox) - JavaScript documentation generator for Node.js using Markdown and JSDoc. 108 | 109 | 110 | ### Filesystem 111 | 112 | - [del](https://github.com/sindresorhus/del) - Delete files/folders using globs. 113 | - [globby](https://github.com/sindresorhus/globby) - Glob files with support for multiple patterns. 114 | - [cpy](https://github.com/sindresorhus/cpy) - Copy files. 115 | - [rimraf](https://github.com/isaacs/rimraf) - Recursively delete files like `rm -rf`. 116 | - [mkdirp](https://github.com/substack/node-mkdirp) - Recursively create directories like `mkdir -p`. 117 | - [graceful-fs](https://github.com/isaacs/node-graceful-fs) - Drop-in replacement for the `fs` module with various improvements. 118 | 119 | 120 | ### Control flow 121 | 122 | - [each-async](https://github.com/sindresorhus/each-async) - Async concurrent iterator like forEach. 123 | - [async](https://github.com/caolan/async) - Provides straight-forward, powerful functions for working with asynchronousity. 124 | - [co](https://github.com/visionmedia/co) - The ultimate generator based flow-control goodness. 125 | - [Highland.js](http://highlandjs.org) - Manages synchronous and asynchronous code easily, using nothing more than standard JavaScript and Node-like Streams. 126 | - [native-promise-only](https://www.npmjs.org/package/native-promise-only) - A polyfill for native ES6 Promises. 127 | - [Bluebird](https://github.com/petkaantonov/bluebird) - A fully featured promise library with focus on innovative features and performance. 128 | - [Q](https://github.com/kriskowal/q) - A tool for making and composing asynchronous promises. 129 | 130 | 131 | ### Streams 132 | 133 | - [through2](https://github.com/rvagg/through2) - Tiny wrapper around Node streams2 Transform to avoid explicit subclassing noise. 134 | - [concat-stream](https://github.com/maxogden/concat-stream) - Concatenates a stream into strings or binary data. 135 | - [simple-bufferstream](https://github.com/rvagg/node-simple-bufferstream) - Turn a Buffer into a ReadableStream. 136 | - [co-stream](https://github.com/juliangruber/co-stream) - [co](https://github.com/visionmedia/co) generator stream. 137 | - [byline](https://www.npmjs.org/package/byline) - Super-simple line-by-line Stream reader. 138 | 139 | 140 | ### Real-time 141 | 142 | - [Socket.io](http://socket.io) - Enables real-time bidirectional event-based communication. 143 | 144 | 145 | ### Date 146 | 147 | - [Moment.js](http://momentjs.com) - Parse, validate, manipulate, and display dates. 148 | - [dateformat](https://github.com/felixge/node-dateformat) - Date formatting. 149 | 150 | 151 | ### Image 152 | 153 | - [sharp](https://github.com/lovell/sharp) - The fastest module for resizing JPEG, PNG, WebP and TIFF images. 154 | 155 | 156 | ### Humanize 157 | 158 | - [pretty-bytes](https://github.com/sindresorhus/pretty-bytes) - Convert bytes to a human readable string: `1337` → `1.34 kB`. 159 | - [pretty-ms](https://github.com/sindresorhus/pretty-ms) - Convert milliseconds to a human readable string: `1337000000` → `15d 11h 23m 20s`. 160 | 161 | 162 | ### Static site generators 163 | 164 | - [Metalsmith](http://www.metalsmith.io) - An extremely simple, pluggable static site generator. 165 | - [Wintersmith](http://wintersmith.io) - Flexible, minimalistic, multi-platform static site generator. 166 | - [Assemble](http://assemble.io) - Static site generator for Node.js, Grunt.js, and Yeoman. 167 | 168 | 169 | ### Content management systems 170 | 171 | - [KeystoneJS](http://keystonejs.com) - CMS and web application platform built on Express and MongoDB. 172 | - [Calipso](http://calip.so) - A simple content management system, built along similar themes to Drupal and Wordpress, that is designed to be fast, flexible and simple. 173 | 174 | 175 | ### Debugging 176 | 177 | - [node-inspector](https://github.com/node-inspector/node-inspector) - Debugger based on Blink Developer Tools. 178 | - [Theseus](https://github.com/adobe-research/theseus) - A new type of JavaScript debugger featuring real-time code coverage, retroactive inspection and asynchronous call tree. 179 | - [longjohn](https://github.com/mattinsler/longjohn) - Long stack traces with configurable call trace length. 180 | 181 | 182 | ### Database 183 | 184 | - [LevelUP](https://github.com/rvagg/node-levelup) - LevelDB, Node.js style. 185 | 186 | 187 | ### Testing 188 | 189 | - [tape](https://github.com/substack/tape) - [TAP](http://testanything.org)-producing test harness. 190 | - [Mocha](http://visionmedia.github.io/mocha/) - A feature-rich test framework making asynchronous testing simple and fun. 191 | 192 | 193 | ### Minifiers 194 | 195 | - [UglifyJS2](http://lisperator.net/uglifyjs/) - JavaScript parser, minifier, compressor or beautifier toolkit. 196 | - [clean-css](https://github.com/GoalSmashers/clean-css) - A fast, efficient, and well tested CSS minifier. 197 | - [minimize](https://github.com/Moveo/minimize) - HTML minifier. 198 | - [imagemin](https://github.com/kevva/imagemin) - Minify images. 199 | 200 | 201 | ### Authentication 202 | 203 | - [Passport](http://passportjs.org) - Simple, unobtrusive authentication. 204 | 205 | 206 | ### Node.js management 207 | 208 | - [n](https://github.com/visionmedia/n) - Node.js version management. 209 | - [nave](https://github.com/isaacs/nave) - Virtual Environments for Node.js. 210 | 211 | 212 | ### Polyfills 213 | 214 | - [object-assign](https://github.com/sindresorhus/object-assign) - ES6 Object.assign() polyfill 215 | 216 | 217 | ### Miscellaneous 218 | 219 | - [opn](https://github.com/sindresorhus/opn) - Opens stuff like websites, files, executables. 220 | - [strip-json-comments](https://github.com/sindresorhus/strip-json-comments) - Strip comments from JSON. 221 | - [multiline](https://github.com/sindresorhus/multiline) - Multiline strings in JavaScript. 222 | - [marked](https://github.com/chjj/marked) - A markdown parser and compiler built for speed. 223 | - [semver](https://github.com/isaacs/node-semver) - [semver](http://semver.org) parser. 224 | - [cheerio](https://github.com/cheeriojs/cheerio) - Fast, flexible, and lean implementation of core jQuery designed specifically for the server. 225 | 226 | 227 | ## Resources 228 | 229 | ### Tutorials 230 | 231 | - [Nodeschool](http://nodeschool.io) - Learn Node.js with interactive lessons. 232 | - [The Art of Node](https://github.com/maxogden/art-of-node/#the-art-of-node) - An introduction to Node.js. 233 | - [stream-handbook](https://github.com/substack/stream-handbook) - How to write Node.js programs with streams. 234 | 235 | ### Articles 236 | 237 | - [Error Handling in Node.js](http://www.joyent.com/developers/node/design/errors) 238 | 239 | ### Videos 240 | 241 | - [Introduction to Node.js with Ryan Dahl](https://www.youtube.com/watch?v=jo_B4LTHi3I) 242 | 243 | ### Podcasts 244 | 245 | - [NodeUp](http://nodeup.com) 246 | 247 | ### Books 248 | 249 | - [Node.js in Action](http://www.amazon.com/Node-js-Action-Mike-Cantelon/dp/1617290572) 250 | - [Mastering Node](http://visionmedia.github.io/masteringnode/). 251 | 252 | ### Courses 253 | 254 | - [Real Time Web with Node.js](http://node.codeschool.com) 255 | 256 | 257 | ## Contribute 258 | 259 | Contributions welcome! Read the [contribution guidelines](contributing.md) first. 260 | 261 | 262 | ## License 263 | 264 | [![CC0](http://i.creativecommons.org/p/zero/1.0/88x31.png)](http://creativecommons.org/publicdomain/zero/1.0/) 265 | 266 | To the extent possible under law, [Sindre Sorhus](http://sindresorhus.com) has waived all copyright and related or neighboring rights to this work. 267 | --------------------------------------------------------------------------------