/awesome-javascript

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

MIT LicenseMIT

Awesome JavaScript

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

Web Frameworks

  • AngularJS - HTML enhanced for web apps. AngularJS lets you extend HTML vocabulary for your application.
  • Ember.js - A framework for creating ambitious web applications.
  • Express - Fast, unopinionated, minimalist web framework for Node.js.
  • Koa - Next generation web framework for Node.js.
  • Meteor - The JavaScript App Platform. Build apps that are a delight to use, faster than you ever thought possible.
  • Meatier - A Meteor alternative. Like Meteor but Meatier.
  • Derby - MVC framework making it easy to write realtime, collaborative applications that run in both Node.js and browsers.
  • Backbone.js - Give your JS app some Backbone with Models, Views, Collections, and Events.
  • Marionette - Simplifies your Backbone application code with robust views and architecture solutions.
  • Hapi - 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 - A tiny, fast and modular node.js web framework. Good for making fast & scalable apps and apis.
  • Sails.js - Realtime MVC framework for Node.js.
  • LoopBack - LoopBack is a highly-extensible, open-source Node.js framework for quickly create dynamic end-to-end REST APIs.
  • AquaJS - A Node.js Framework for your next API development. It gives you a quick and organized way to start developing an application.
  • Restify - Node.js REST framework specifically meant for web service APIs.
  • Aurelia - A JavaScript client framework for mobile, desktop and web leveraging simple conventions and empowering creativity.
  • Total.js - Free web application framework for building Web sites and Web applications using JavaScript, HTML and CSS. Node.js (HMVC) web application framework.
  • MERN - A scaffolding tool which makes it easy to build isomorphic apps using Mongo, Express, React and NodeJS.
  • MEAN - An opinionated fullstack javascript framework (MongoDB, Express, Angular and Node.JS) - which simplifies and accelerates web application development.

UI Libraries

  • React - A JavaScript library for building user interfaces using components, virtual DOM and implements one-way reactive data flow.
  • Preact - Fast 3kb React alternative with the same ES6 API. Components & Virtual DOM.
  • Vue.js - Reactive components for modern web interfaces.

Mobile

  • React Native - A framework for building native apps using React.

UI Interaction Libraries

  • Hammer.js - A javascript library for multi-touch gestures.
  • Slick - The last carousel you'll ever need.

Package Managers and Sources

  • NPM - Node Package Manager.
  • Atmosphere - The trusted source for Meteor packages.

Process Manager

  • PM2 - Production process manager for Node.js applications with a built-in load balancer.
  • Forever - A simple CLI tool for ensuring that a given script runs continuously (i.e. forever).
  • nodemon - Monitor for any changes in your node.js application and automatically restart the server - perfect for development.
  • 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 - A utility module which provides straight-forward, powerful functions for working with asynchronous JavaScript.
  • q - A tool for creating and composing asynchronous promises in JavaScript.
  • Bluebird - A full featured promise library with unmatched performance.
  • When.js - A solid, fast Promises/A+ and when() implementation, plus other async goodies.
  • Co - The ultimate generator based flow-control goodness for nodejs (supports thunks, promises, etc).

DOM

  • jQuery - Fast, small, and feature-rich JavaScript library.
  • Zepto - A minimalist JavaScript library for modern browsers with a largely jQuery-compatible API.
  • Cheerio - Fast, flexible, and lean implementation of core jQuery designed specifically for the server.

Real-time

  • 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 - A clusterable server that provides everything necessary to build powerful realtime applications.
  • Faye - A publish-subscribe messaging system based on the Bayeux protocol.
  • Primus - The creator god of transformers but now also known as universal wrapper for real-time frameworks.
  • SocketCluster - Highly scalable realtime microframework.

Testing

  • Mocha - A feature-rich JavaScript test framework running on Node.js and the browser, making asynchronous testing simple and fun.
  • Jest - A delightful JavaScript Testing Framework with a focus on simplicity.
  • Jasmine - A Behavior Driven Development testing framework for JavaScript. It's suited for websites, Node.js projects, or anywhere that JavaScript can run.
  • Vorlon.JS - An open source, extensible, platform-agnostic tool for remotely debugging and testing your JavaScript. Powered by node.js and socket.io.
  • Nightwatch.js - Write End-to-End tests in Node.js quickly and effortlessly that run against a Selenium server.
  • Chai - A BDD / TDD assertion library for node and the browser that can be delightfully paired with any javascript testing framework.
  • Intern - Software testing for humans.
  • QUnit - 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 - Modern era acceptance testing for Node.js.

Logging

  • Pino - Very low overhead Node.js logger, inspired by Bunyan.
  • Winston - A multi-transport async logging library for Node.js.
  • Bunyan - A simple and fast JSON logging module for Node.js services.

Profiling

  • Clinic.js - Tools to help diagnose and pinpoint Node.js performance issues.
  • 0x - Single-command flamegraph profiling.

CLI

  • Vorpal - A framework that makes it easy to build mature, immersive command-line applications in JavaScript.
  • Inquirer.js - A collection of common interactive command line user interfaces.
  • Cash - A cross-platform implementation of Unix shell commands written in pure ES6.
  • how2 - Stackoverflow from the terminal.

ORM

  • Sequelize - A promise-based Node.js ORM for Postgres, MySQL, MariaDB, SQLite and Microsoft SQL Server.
  • Bookshelf.js - A JavaScript ORM for Node.js, built on the Knex SQL query builder.
  • Objection.js - An SQL-friendly ORM for Node.js

Migration

  • migrate - Abstract migration framework for node.

HTTP

  • Request - Simplified HTTP request client.
  • 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 - HTTP mocking and expectations library.
  • node-http-proxy - A full-featured http proxy for Node.js.
  • http-server - A simple zero-configuration command-line http server.

Network

Email

  • Nodemailer - Send e-mails with Node.JS – easy as cake!
  • emailjs - Send emails, html and attachments (files, streams and strings) from node.js to any smtp server
  • node-imap - An IMAP client module for Node.js.

SSH

  • SSH2 - SSH2 client and server modules written in pure JavaScript for Node.js.

FTP

  • node-ftp - An FTP client module for Node.js.

Torrent

  • Torrent - Download torrents with node from the CLI.

Git

  • NodeGit - Native Node bindings to Git.

Functional Programming

  • Underscrore - JavaScript library that provides a whole mess of useful functional programming helpers without extending any built-in objects.
  • Lodash - A modern JavaScript utility library delivering modularity, performance, & extras.
  • 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 - Do more with less. A simple, high-performing, functional JavaScript library.

Regular Expression

  • VerbalExpressions - A JavaScript library that helps to construct difficult regular expressions.

String

  • Chance - 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 - Generate massive amounts of fake data in Node.js and the browser.

Number

  • Accounting.js - A tiny JavaScript library providing simple and advanced number, money and currency formatting.
  • Numeral.js - A javascript library for formatting and manipulating numbers.

Date

  • Moment.js - Parse, validate, manipulate, and display dates in JavaScript.
  • Date - Date for humans.

Math

  • Math.js - An extensive math library for JavaScript and Node.js
  • NumJs - A npm/bower package for scientific computing with JavaScript.

Data Structure

  • Buckets - A complete, fully tested and documented data structure library written in pure JavaScript.
  • TreeModel - Manipulate and traverse tree-like structures in javascript.

WYSIWYG

  • MediumEditor - Medium.com WYSIWYG editor clone. Uses contenteditable API to implement a rich text solution.
  • ContentTools - A JS library for building WYSIWYG editors for HTML content.

ASCII

  • blessed - A curses-like library with a high level terminal interface API for node.js.
  • blessed-contrib - Build dashboards (or any other application) using ascii/ansi art and javascript.
  • oo-ascii-tree - Renders ASCII trees from an object-oriented object graph.

Linter

  • ESLint - The pluggable linting utility for JavaScript and JSX.
  • JSLint - The JavaScript code quality tool.

Editors

  • NTVS - 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 - A markdown editor for desktop.

Blog Engine

  • Ghost - An open source publishing platform which is beautifully designed, easy to use, and free for everyone.
  • Hexo.io - A fast, simple & powerful blog framework.

CMS

  • Relax - New generation CMS on top of React, Redux and GraphQL.

Social Media

  • fb-sleep - Use Facebook to track your friends’ sleeping habits.

Animation

  • mo.js - Motion graphics toolbelt for the web.

Data Visualization

  • D3.js - A JavaScript library for manipulating documents based on data and helps you bring data to life using HTML, SVG, and CSS.
  • Sigma - A JavaScript library dedicated to graph drawing.
  • Timesheet.js - JavaScript library for HTML5 & CSS3 time sheets.

Data Processing

  • EclairJS - Node.js API for Apache Spark with Remote Client.

Keyboard

  • Mousetrap - A simple library for handling keyboard shortcuts in Javascript.
  • Keymaster - A simple micro-library for defining and dispatching keyboard shortcuts. It has no dependencies.

PDF

  • PDFkit - A JavaScript PDF generation library for Node and the browser.
  • PDF.js - A Portable Document Format (PDF) viewer that is built with HTML5.
  • pdfmake - Client/server side PDF printing in pure JavaScript.

Image Processing

  • CamanJS - A combination of a simple-to-use interface with advanced and efficient image/canvas editing techniques.
  • Jimp - An image processing library written entirely in JavaScript for Node, with zero external or native dependencies.

Audio

  • SoundJS - A JavaScript library that provides a simple API, and powerful features to make working with audio a breeze.
  • JuliusJS - A speech recognition library for the web.

Video

Robotics and IoT

  • Johnny-Five - The JavaScript robotics programming framework.
  • Cylon.js - Next generation robotics framework with support for 43 different platforms.
  • Node-RED - A tool for wiring together hardware devices, APIs and online services in new and interesting ways.

Science

Satellite

  • Himawari - Download real-time images of Earth from the Himawari-8 satellite.

Miscellaneous Libraries

  • is.js - Micro check library.

Desktop App

  • N1 - An open-source mail client built on the modern web with Electron, React, and Flux.
  • 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 - An open source community that helps you learn to code and help nonprofits.

Lessons

Tips and Tricks

  • ES6 Cheatsheet - A cheatsheet containing ES2015 (ES6) tips, tricks, best practices and code snippet examples for your day to day workflow.
  • JS Tips - This is about one JS tip every day!
  • JavaScript Style - Airbnb JavaScript style guide.

Web Reference

  • Mozilla Developer Network - The official Mozilla Foundation website for development documentation of web standards and Mozilla projects.

Books

License

CC0

To the extent possible under law, iwanjunaid has waived all copyright and related or neighboring rights to this work.