Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/iwanjunaid/awesome-javascript

A Curated List of Awesome JavaScript Frameworks, Libraries, Tools and Resources
https://github.com/iwanjunaid/awesome-javascript

List: awesome-javascript

Last synced: about 1 month ago
JSON representation

A Curated List of Awesome JavaScript Frameworks, Libraries, Tools and Resources

Awesome Lists containing this project

README

        

# Awesome JavaScript

A curated list of awesome JavaScript frameworks, libraries, tools and resources.

* [Web Frameworks](#web-frameworks)
* [UI Libraries](#ui-libraries)
* [Mobile](#mobile)
* [Package Managers and Sources](#package-managers-and-sources)
* [Process Manager](#process-manager)
* [Control Flow](#control-flow)
* [DOM](#dom)
* [Real-time](#real-time)
* [Testing](#testing)
* [Logging](#logging)
* [Profiling](#profiling)
* [CLI](#cli)
* [ORM](#orm)
* [Migration](#migration)
* [HTTP](#http)
* [Network](#network)
* [Functional Programming](#functional-programming)
* [Regular Expression](#regular-expression)
* [String](#string)
* [Number](#number)
* [Date](#date)
* [Math](#math)
* [Data Structure](#data-structure)
* [WYSIWYG](#wysiwyg)
* [ASCII] (#ascii)
* [Linter](#linter)
* [Editors](#editors)
* [Blog Engine](#blog-engine)
* [CMS](#cms)
* [Social Media](#social-media)
* [Animation](#animation)
* [Data Visualization](#data-visualization)
* [Data Processing](#data-processing)
* [Keyboard](#keyboard)
* [PDF](#pdf)
* [Image Processing](#image-processing)
* [Audio](#audio)
* [Video](#video)
* [Robotics and IoT](#robotics-and-iot)
* [Science](#science)
* [Satellite](#satellite)
* [Miscellaneous Libraries](#miscellaneous-libraries)
* [Desktop App](#desktop-app)
* [Resources](#resources)

## Web Frameworks

* [AngularJS](https://angularjs.org/) - HTML enhanced for web apps. AngularJS lets you extend HTML vocabulary for your application.
* [Ember.js](http://emberjs.com/) - A framework for creating ambitious web applications.
* [Express](http://expressjs.com) - Fast, unopinionated, minimalist web framework for Node.js.
* [Koa](http://koajs.com/) - Next generation web framework for Node.js.
* [Meteor](https://www.meteor.com) - The JavaScript App Platform. Build apps that are a delight to use, faster than you ever thought possible.
* [Meatier](https://github.com/mattkrick/meatier) - A Meteor alternative. Like Meteor but Meatier.
* [Derby](http://derbyjs.com/) - MVC framework making it easy to write realtime, collaborative applications that run in both Node.js and browsers.
* [Backbone.js](http://backbonejs.org/) - Give your JS app some Backbone with Models, Views, Collections, and Events.
* [Marionette](http://marionettejs.com/) - Simplifies your Backbone application code with robust views and architecture solutions.
* [Hapi](http://hapijs.com/) - A rich framework for building applications and services. It enables developers to focus on writing reusable application logic instead of spending time building infrastructure.
* [Diet](http://dietjs.com/) - A tiny, fast and modular node.js web framework. Good for making fast & scalable apps and apis.
* [Sails.js](http://sailsjs.org/) - Realtime MVC framework for Node.js.
* [LoopBack](http://loopback.io/) - LoopBack is a highly-extensible, open-source Node.js framework for quickly create dynamic end-to-end REST APIs.
* [AquaJS](http://www.aquajsio.com/) - A Node.js Framework for your next API development. It gives you a quick and organized way to start developing an application.
* [Restify](https://github.com/restify/node-restify) - Node.js REST framework specifically meant for web service APIs.
* [Aurelia](http://aurelia.io/) - A JavaScript client framework for mobile, desktop and web leveraging simple conventions and empowering creativity.
* [Total.js](https://www.totaljs.com/) - Free web application framework for building Web sites and Web applications using JavaScript, HTML and CSS. Node.js (HMVC) web application framework.
* [MERN](http://mern.io/) - A scaffolding tool which makes it easy to build isomorphic apps using Mongo, Express, React and NodeJS.
* [MEAN](http://mean.io/) - An opinionated fullstack javascript framework (MongoDB, Express, Angular and Node.JS) - which simplifies and accelerates web application development.

## UI Libraries

* [React](https://facebook.github.io/react/) - A JavaScript library for building user interfaces using components, virtual DOM and implements one-way reactive data flow.
* [Preact](https://github.com/developit/preact) - Fast 3kb React alternative with the same ES6 API. Components & Virtual DOM.
* [Vue.js](http://vuejs.org/) - Reactive components for modern web interfaces.

## Mobile

* [React Native](https://facebook.github.io/react-native/) - A framework for building native apps using React.

## UI Interaction Libraries

* [Hammer.js](https://github.com/hammerjs/hammer.js) - A javascript library for multi-touch gestures.
* [Slick](https://github.com/kenwheeler/slick) - The last carousel you'll ever need.

## Package Managers and Sources

* [NPM](https://www.npmjs.com/) - Node Package Manager.
* [Atmosphere](https://atmospherejs.com/) - The trusted source for Meteor packages.

## Process Manager

* [PM2](http://pm2.keymetrics.io/) - Production process manager for Node.js applications with a built-in load balancer.
* [Forever](https://github.com/foreverjs/forever) - A simple CLI tool for ensuring that a given script runs continuously (i.e. forever).
* [nodemon](https://github.com/remy/nodemon) - Monitor for any changes in your node.js application and automatically restart the server - perfect for development.
* [node-supervisor](https://github.com/petruisfan/node-supervisor) - A little supervisor script for nodejs. It runs your program, and watches for code changes, so you can have hot-code reloading-ish behavior, without worrying about memory leaks and making sure you clean up all the inter-module references, and without a whole new require system.

## Control Flow

* [Async](https://github.com/caolan/async) - A utility module which provides straight-forward, powerful functions for working with asynchronous JavaScript.
* [q](https://github.com/kriskowal/q) - A tool for creating and composing asynchronous promises in JavaScript.
* [Bluebird](https://github.com/petkaantonov/bluebird) - A full featured promise library with unmatched performance.
* [When.js](https://github.com/cujojs/when) - A solid, fast Promises/A+ and when() implementation, plus other async goodies.
* [Co](https://github.com/tj/co) - The ultimate generator based flow-control goodness for nodejs (supports thunks, promises, etc).

## DOM

* [jQuery](https://jquery.com/) - Fast, small, and feature-rich JavaScript library.
* [Zepto](http://zeptojs.com/) - A minimalist JavaScript library for modern browsers with a largely jQuery-compatible API.
* [Cheerio](https://github.com/cheeriojs/cheerio) - Fast, flexible, and lean implementation of core jQuery designed specifically for the server.

## Real-time

* [Socket.io](http://socket.io/) - The fastest and most reliable real-time engine. Works on every platform, browser or device, focusing equally on reliability and speed.
* [Deepstream.io](https://deepstream.io/) - A clusterable server that provides everything necessary to build powerful realtime applications.
* [Faye](http://faye.jcoglan.com/) - A publish-subscribe messaging system based on the Bayeux protocol.
* [Primus](https://github.com/primus/primus) - The creator god of transformers but now also known as universal wrapper for real-time frameworks.
* [SocketCluster](https://github.com/SocketCluster/socketcluster) - Highly scalable realtime microframework.

## Testing

* [Mocha](http://mochajs.org/) - A feature-rich JavaScript test framework running on Node.js and the browser, making asynchronous testing simple and fun.
* [Jest](https://jestjs.io/) - A delightful JavaScript Testing Framework with a focus on simplicity.
* [Jasmine](http://jasmine.github.io/) - A Behavior Driven Development testing framework for JavaScript. It's suited for websites, Node.js projects, or anywhere that JavaScript can run.
* [Vorlon.JS](http://vorlonjs.com/) - An open source, extensible, platform-agnostic tool for remotely debugging and testing your JavaScript. Powered by node.js and socket.io.
* [Nightwatch.js](http://nightwatchjs.org/) - Write End-to-End tests in Node.js quickly and effortlessly that run against a Selenium server.
* [Chai](http://chaijs.com/) - A BDD / TDD assertion library for node and the browser that can be delightfully paired with any javascript testing framework.
* [Intern](https://theintern.github.io/) - Software testing for humans.
* [QUnit](https://qunitjs.com/) - A powerful, easy-to-use JavaScript unit testing framework. It's used by the jQuery, jQuery UI and jQuery Mobile projects and is capable of testing any generic JavaScript code, including itself!
* [CodeceptJS](http://codecept.io/) - Modern era acceptance testing for Node.js.

## Logging

* [Pino](http://getpino.io/#/) - Very low overhead Node.js logger, inspired by Bunyan.
* [Winston](https://github.com/winstonjs/winston) - A multi-transport async logging library for Node.js.
* [Bunyan](https://github.com/trentm/node-bunyan) - A simple and fast JSON logging module for Node.js services.

## Profiling

* [Clinic.js](https://clinicjs.org/) - Tools to help diagnose and pinpoint Node.js performance issues.
* [0x](https://github.com/davidmarkclements/0x) - Single-command flamegraph profiling.

## CLI

* [Vorpal](http://vorpal.js.org/) - A framework that makes it easy to build mature, immersive command-line applications in JavaScript.
* [Inquirer.js](https://github.com/SBoudrias/Inquirer.js) - A collection of common interactive command line user interfaces.
* [Cash](https://github.com/dthree/cash) - A cross-platform implementation of Unix shell commands written in pure ES6.
* [how2](https://github.com/santinic/how2) - Stackoverflow from the terminal.

## ORM

* [Sequelize](https://sequelize.org/) - A promise-based Node.js ORM for Postgres, MySQL, MariaDB, SQLite and Microsoft SQL Server.
* [Bookshelf.js](https://bookshelfjs.org/) - A JavaScript ORM for Node.js, built on the Knex SQL query builder.
* [Objection.js](https://vincit.github.io/objection.js/) - An SQL-friendly ORM for Node.js

## Migration

* [migrate](https://github.com/tj/node-migrate) - Abstract migration framework for node.

## HTTP

* [Request](https://github.com/request/request) - Simplified HTTP request client.
* [SuperAgent](https://github.com/visionmedia/superagent) - A small progressive client-side HTTP request library, and Node.js module with the same API, sporting many high-level HTTP client features.
* [Nock](https://github.com/pgte/nock) - HTTP mocking and expectations library.
* [node-http-proxy](https://github.com/nodejitsu/node-http-proxy) - A full-featured http proxy for Node.js.
* [http-server](https://github.com/indexzero/http-server) - A simple zero-configuration command-line http server.

## Network

### Email

* [Nodemailer](https://github.com/nodemailer/nodemailer) - Send e-mails with Node.JS – easy as cake!
* [emailjs](https://github.com/eleith/emailjs) - Send emails, html and attachments (files, streams and strings) from node.js to any smtp server
* [node-imap](https://github.com/mscdex/node-imap) - An IMAP client module for Node.js.

### SSH

* [SSH2](https://github.com/mscdex/ssh2) - SSH2 client and server modules written in pure JavaScript for Node.js.

### FTP

* [node-ftp](https://github.com/mscdex/node-ftp) - An FTP client module for Node.js.

### Torrent

* [Torrent](https://github.com/maxogden/torrent) - Download torrents with node from the CLI.

## Git

* [NodeGit](https://github.com/nodegit/nodegit) - Native Node bindings to Git.

## Functional Programming

* [Underscrore](http://underscorejs.org/) - JavaScript library that provides a whole mess of useful functional programming helpers without extending any built-in objects.
* [Lodash](https://lodash.com/) - A modern JavaScript utility library delivering modularity, performance, & extras.
* [Lazy.js](http://danieltao.com/lazy.js/) - Similar to Underscore and Lodash, but with an underlying engine that supports many more use cases than those libraries, while offering comparable or superior performance in most scenarios.
* [Vitals](https://www.npmjs.com/package/node-vitals) - Do more with less. A simple, high-performing, functional JavaScript library.

## Regular Expression

* [VerbalExpressions](https://github.com/VerbalExpressions/JSVerbalExpressions) - A JavaScript library that helps to construct difficult regular expressions.

## String

* [Chance](http://chancejs.com/) - A minimalist generator of random strings, numbers, etc. to help reduce some monotony particularly while writing automated tests or anywhere else you need anything random.
* [faker.js](https://github.com/Marak/Faker.js) - Generate massive amounts of fake data in Node.js and the browser.

## Number

* [Accounting.js](https://github.com/openexchangerates/accounting.js) - A tiny JavaScript library providing simple and advanced number, money and currency formatting.
* [Numeral.js](http://numeraljs.com/) - A javascript library for formatting and manipulating numbers.

## Date

* [Moment.js](http://momentjs.com/) - Parse, validate, manipulate, and display dates in JavaScript.
* [Date](https://github.com/MatthewMueller/date) - Date for humans.

## Math

* [Math.js](http://mathjs.org/) - An extensive math library for JavaScript and Node.js
* [NumJs](https://github.com/nicolaspanel/numjs) - A npm/bower package for scientific computing with JavaScript.

## Data Structure

* [Buckets](https://github.com/mauriciosantos/Buckets-JS) - A complete, fully tested and documented data structure library written in pure JavaScript.
* [TreeModel](https://github.com/joaonuno/tree-model-js) - Manipulate and traverse tree-like structures in javascript.

## WYSIWYG

* [MediumEditor](https://github.com/yabwe/medium-editor) - Medium.com WYSIWYG editor clone. Uses contenteditable API to implement a rich text solution.
* [ContentTools](http://getcontenttools.com/) - A JS library for building WYSIWYG editors for HTML content.

## ASCII

* [blessed](https://github.com/chjj/blessed) - A curses-like library with a high level terminal interface API for node.js.
* [blessed-contrib](https://github.com/yaronn/blessed-contrib) - Build dashboards (or any other application) using ascii/ansi art and javascript.
* [oo-ascii-tree](https://www.npmjs.com/package/oo-ascii-tree) - Renders ASCII trees from an object-oriented object graph.

## Linter

* [ESLint](http://eslint.org/) - The pluggable linting utility for JavaScript and JSX.
* [JSLint](https://github.com/douglascrockford/JSLint) - The JavaScript code quality tool.

## Editors

* [NTVS](https://github.com/Microsoft/nodejstools) - A free, open source plugin that turns Visual Studio into a Node.js IDE. It is designed, developed, and supported by Microsoft and the community.
* [Abricotine](https://github.com/brrd/Abricotine) - A markdown editor for desktop.

## Blog Engine

* [Ghost](https://ghost.org/) - An open source publishing platform which is beautifully designed, easy to use, and free for everyone.
* [Hexo.io](https://hexo.io/) - A fast, simple & powerful blog framework.

## CMS

* [Relax](https://github.com/relax/relax) - New generation CMS on top of React, Redux and GraphQL.

## Social Media

* [fb-sleep](https://github.com/sqren/fb-sleep-stats) - Use Facebook to track your friends’ sleeping habits.

## Animation

* [mo.js](https://github.com/legomushroom/mojs) - Motion graphics toolbelt for the web.

## Data Visualization

* [D3.js](https://d3js.org/) - A JavaScript library for manipulating documents based on data and helps you bring data to life using HTML, SVG, and CSS.
* [Sigma](http://sigmajs.org/) - A JavaScript library dedicated to graph drawing.
* [Timesheet.js](https://github.com/sbstjn/timesheet.js) - JavaScript library for HTML5 & CSS3 time sheets.

## Data Processing

* [EclairJS](https://github.com/EclairJS/eclairjs-node) - Node.js API for Apache Spark with Remote Client.

## Keyboard

* [Mousetrap](https://craig.is/killing/mice) - A simple library for handling keyboard shortcuts in Javascript.
* [Keymaster](https://github.com/madrobby/keymaster) - A simple micro-library for defining and dispatching keyboard shortcuts. It has no dependencies.

## PDF

* [PDFkit](https://github.com/devongovett/pdfkit) - A JavaScript PDF generation library for Node and the browser.
* [PDF.js](https://github.com/mozilla/pdf.js) - A Portable Document Format (PDF) viewer that is built with HTML5.
* [pdfmake](http://pdfmake.org/) - Client/server side PDF printing in pure JavaScript.

## Image Processing

* [CamanJS](http://camanjs.com/) - A combination of a simple-to-use interface with advanced and efficient image/canvas editing techniques.
* [Jimp](https://github.com/oliver-moran/jimp) - An image processing library written entirely in JavaScript for Node, with zero external or native dependencies.

## Audio

* [SoundJS](http://www.createjs.com/soundjs) - A JavaScript library that provides a simple API, and powerful features to make working with audio a breeze.
* [JuliusJS](https://github.com/zzmp/juliusjs) - A speech recognition library for the web.

## Video

* [Fluent ffmpeg](https://github.com/fluent-ffmpeg/node-fluent-ffmpeg) - A fluent API to FFMPEG.

## Robotics and IoT

* [Johnny-Five](https://github.com/rwaldron/johnny-five) - The JavaScript robotics programming framework.
* [Cylon.js](https://cylonjs.com/) - Next generation robotics framework with support for 43 different platforms.
* [Node-RED](http://nodered.org/) - A tool for wiring together hardware devices, APIs and online services in new and interesting ways.

## Science

### Satellite

* [Himawari](https://github.com/jakiestfu/himawari.js) - Download real-time images of Earth from the Himawari-8 satellite.

## Miscellaneous Libraries

* [is.js](https://github.com/arasatasaygin/is.js) - Micro check library.

## Desktop App

* [N1](https://github.com/nylas/N1) - An open-source mail client built on the modern web with Electron, React, and Flux.
* [Wmail](https://github.com/Thomas101/wmail) - The missing desktop client for Gmail & Google Inbox. Bringing the Gmail & Google Inbox experience to your desktop in a neatly packaged app.

## Resources

### Courses

* [Free Code Camp](http://www.freecodecamp.com/) - An open source community that helps you learn to code and help nonprofits.

### Lessons

* [JS Bits](https://github.com/vasanthk/js-bits) - JavaScript concepts explained with proper code samples.
* [Angular 2 Education](https://github.com/timjacobi/angular2-education) - A curated list of helpful material to get started with education on Angular 2.
* [Beginner Webpack Tutorial](https://github.com/AriaFallah/WebpackTutorial) - A simple webpack tutorial.
* [You Don't Need jQuery](https://github.com/oneuijs/You-Dont-Need-jQuery) - Examples of how to do query, style, dom, ajax, event etc like jQuery with plain JavaScript.
* [You don't (may not) need Lodash/Underscore](https://github.com/cht8687/You-Dont-Need-Lodash-Underscore) - Lists of Javascript methods which you can use natively to replace Lodash or Underscore.
* [Regular Expressions in JavaScript](http://javascript.info/tutorial/regular-expressions-javascript) - Regular expressions in JavaScript

### Tips and Tricks

* [ES6 Cheatsheet](https://github.com/DrkSephy/es6-cheatsheet) - A cheatsheet containing ES2015 (ES6) tips, tricks, best practices and code snippet examples for your day to day workflow.
* [JS Tips](https://github.com/loverajoel/jstips) - This is about one JS tip every day!
* [JavaScript Style](https://github.com/airbnb/javascript) - Airbnb JavaScript style guide.

### Web Reference

* [Mozilla Developer Network](https://developer.mozilla.org) - The official Mozilla Foundation website for development documentation of web standards and Mozilla projects.

### Books

* [JavaScript: The Good Parts](http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742) by Douglas Crockford
* [The Principles of Object-Oriented JavaScript](https://www.nostarch.com/oojs) by Nicholas C. Zakas

## License

[![CC0](http://i.creativecommons.org/p/zero/1.0/88x31.png)](http://creativecommons.org/publicdomain/zero/1.0/)

To the extent possible under law, [iwanjunaid](https://github.com/iwanjunaid) has waived all copyright and related or neighboring rights to this work.