List.community

Awesome JavaScript Awesome

A collection of awesome browser-side JavaScript libraries, resources and shiny things.


Package Managers

Host the javascript libraries and provide tools for fetching and packaging them.

  • npm - npm is the package manager for javascript.
  • Bower17k 3k - A package manager for the web.
  • component4k 240 - Client package management for building better web applications.
  • spm1k 228 - Brand new static package manager.
  • jam1k 93 - A package manager using a browser-focused and RequireJS compatible repository.
  • jspm4k 406 - Frictionless browser package management.
  • Ender2k 92 - The no-library library.
  • volo2k 127 - Create front end projects from templates, add dependencies, and automate the resulting projects.
  • Duo4k 163 - Next-generation package manager that blends the best ideas from Component, Browserify and Go to make organizing and writing front-end code quick and painless.
  • yarn - Fast, reliable, and secure dependency management.

Loaders

Module or loading system for JavaScript.

  • RequireJS2k 654 - A file and module loader for JavaScript.
  • browserify12k 1k - Browser-side require() the node.js way.
  • SeaJS8k 3k - A Module Loader for the Web.
  • HeadJS4k 315 - The only script in your HEAD.
  • curl2k 228 - A small, fast, extensible module loader that handles AMD, CommonJS Modules/1.1, CSS, HTML/text, and legacy scripts.
  • lazyload916 178 - Tiny, dependency-free async JavaScript and CSS loader.
  • script.js2k 334 - Asyncronous JavaScript loader and dependency manager.
  • systemjs10k 937 - AMD, CJS & ES6 spec-compliant module loader.
  • LodJS289 67 - Module loader based on AMD
  • ESL739 273 - Module loader browser first, support lazy define and AMD.
  • modulejs106 15 - Lightweight JavaScript module system.

Bundlers

  • browserify12k 1k - Browserify lets you require('modules') in the browser by bundling up all of your dependencies.
  • webpack42k 6k - Packs CommonJs/AMD modules for the browser.
  • Rollup12k 627 - Next-generation ES6 module bundler.
  • Brunch6k 542 - Fast front-end web app build tool with simple declarative config.
  • Parcel19k 702 - Blazing fast, zero configuration web application bundler.

Testing Frameworks

Frameworks

  • mocha16k 3k - Simple, flexible, fun javascript test framework for node.js & the browser.
  • jasmine15k 2k - DOM-less simple JavaScript testing framework.
  • qunit4k 835 - An easy-to-use JavaScript Unit Testing framework.
  • jest16k 3k - Painless Javascript Unit Testing.
  • prova222 21 - Node & Browser test runner based on Tape and Browserify
  • DalekJS491 56 - Automated cross browser functional testing with JavaScript
  • Protractor8k 2k - Protractor is an end-to-end test framework for AngularJS applications.
  • tape4k 281 - Tap-producing test harness for node and browsers.
  • TestCafe4k 229 - Automated browser testing for the modern web development stack.
  • ava10k 893 - 🚀 Futuristic JavaScript test runner

Assertion

  • chai5k 643 - BDD / TDD assertion framework for node.js and the browser that can be paired with any testing framework.
  • Enzyme - Enzyme is a JavaScript Testing utility for React that makes it easier to assert, manipulate, and traverse your React Components' output.
  • Sinon.JS3k 364 - Test spies, stubs, and mocks for JavaScript.
  • expect.js905 134 - Minimalistic BDD-style assertions for Node.JS and the browser.

Coverage

  • istanbul6k 699 - Yet another JS code coverage tool.
  • blanket1k 243 - A simple code coverage library for javascript. Designed to be easy to install and use, for both browser and nodejs.
  • JSCover343 86 - JSCover is a tool that measures code coverage for JavaScript programs.

Runner

  • phantomjs24k 6k - Scriptable Headless WebKit.
  • slimerjs2k 289 - A PhantomJS-like tool running Gecko.
  • casperjs1k 235 - Navigation scripting & testing utility for PhantomJS and SlimerJS.
  • zombie5k 564 - Insanely fast, full-stack, headless browser testing using node.js.
  • totoro393 75 - A simple and stable cross-browser testing tool.
  • karma10k 2k - Spectacular Test Runner for JavaScript.
  • nightwatch4k 493 - UI automated testing framework based on node.js and selenium webdriver.
  • intern4k 354 - A next-generation code testing stack for JavaScript.
  • yolpo - A statement-by-statement javascript interpreter in the browser.

QA Tools

  • prettier18k 1k - Prettier is an opinionated code formatter.
  • JSHint8k 2k - JSHint is a tool that helps to detect errors and potential problems in your JavaScript code.
  • jscs6k 788 - JavaScript Code Style checker.
  • jsfmt2k 69 - For formatting, searching, and rewriting JavaScript.
  • jsinspect2k 69 - Detect copy-pasted and structurally similar code.
  • buddy.js565 20 - Magic number detection for JavaScript.
  • ESLint12k 3k - A fully pluggable tool for identifying and reporting on patterns in JavaScript.
  • JSLint2k 293 - High-standards, strict & opinionated code quality tool, aiming to keep only good parts of the language.

MVC Frameworks and Libraries

  • angular.js67k 37k - HTML enhanced for web apps.
  • aurelia - A Javascript client framework for mobile, desktop and web.
  • backbone29k 7k - Give your JS App some Backbone with Models, Views, Collections, and Events.
  • ember.js21k 5k - A JavaScript framework for creating ambitious web applications.
  • meteor46k 7k - An ultra-simple, database-everywhere, data-on-the-wire, pure-Javascript web framework.
  • ractive6k 535 - Next-generation DOM manipulation.
  • vue84k 14k - Intuitive, fast & composable MVVM for building interactive interfaces.
  • knockout10k 2k - Knockout makes it easier to create rich, responsive UIs with JavaScript.
  • spine4k 505 - Lightweight MVC library for building JavaScript applications.
  • espresso.js556 23 - A minimal javascript library for crafting user interfaces.
  • canjs413 132 - Can do JS, better, faster, easier.
  • react - A library for building user interfaces. It's declarative, efficient, and extremely flexible. Works with a Virtual DOM.
  • hyperapp11k 601 - 1kb JavaScript library for building frontend applications.
  • preact16k 885 - Fast 3kb React alternative with the same ES6 API. Components & Virtual DOM.
  • nativescript14k 1k - Build truly native cross-platform iOS and Android apps with JavaScript
  • react-native69k 18k - A framework for building native apps with React.
  • riot7k 798 - React-like library, but with very small size.
  • thorax1k 149 - Strengthening your Backbone.
  • chaplin3k 251 - An architecture for JavaScript applications using the Backbone.js library.
  • marionette8k 2k - A composite application library for Backbone.js that aims to simplify the construction of large scale JavaScript applications.
  • ripple1k 37 - A tiny foundation for building reactive views.
  • rivets3k 334 - Lightweight and powerful data binding + templating solution.
  • derby5k 301 - MVC framework making it easy to write realtime, collaborative applications that run in both Node.js and browsers.
  • way.js2k 129 - Simple, lightweight, persistent two-way databinding.
  • mithril.js8k 839 - Mithril is a client-side MVC framework (Light-weight, Robust, Fast).
  • jsblocks3k 168 - jsblocks is better MV-ish framework.
  • LiquidLava - Transparent MVC framework for building user interfaces.
  • feathers9k 375 - A minimalist real-time JavaScript framework for tomorrow's apps.
  • Keo225 12 - Functional stateless React components with Shadow DOM support.

Node-Powered CMS Frameworks

  • KeystoneJS12k 2k - powerful CMS and web app framework
  • Reaction Commerce7k 2k - reactive CMS, real-time architecture and design
  • Ghost - simple, powerful publishing platform
  • Apostrophe2k 308 - CMS with content editing and essential services
  • We.js194 35 - framework for real time apps, sites or blogs
  • Hatch.js31 16 - CMS platform with social features.
  • TaracotJS15 5 - fast and minimalist CMS based on Node.js.
  • Nodizecms172 27 - CMS for CoffeeScript lovers
  • Cody661 214 - CMS with WSYWYG editor
  • PencilBlue2k 387 - CMS and blogging platform

Templating Engines

Templating engines allow you to perform string interpolation.

  • mustache.js12k 3k - Minimal templating with {{mustaches}} in JavaScript.
  • handlebars.js13k 2k - An extension to the Mustache templating language.
  • hogan.js4k 318 - A compiler for the Mustache templating language.
  • doT4k 891 - The fastest + concise javascript template engine for nodejs and browsers.
  • dustjs3k 508 - Asynchronous templates for the browser and node.js.
  • eco2k 57 - Embedded CoffeeScript templates.
  • JavaScript-Templates1k 373 - < 1KB lightweight, fast & powerful JavaScript templating engine with zero dependencies.
  • t.js649 57 - A tiny javascript templating framework in ~400 bytes gzipped.
  • Pug6k 515 - Robust, elegant, feature rich template engine for nodejs. (formerly known as Jade)
  • EJS2k 253 - Effective JavaScript templating.
  • xtemplate318 87 - eXtensible Template Engine lib for node and the browser
  • marko6k 338 - A fast, lightweight, HTML-based templating engine for Node.js and the browser with async, streaming, custom tags and CommonJS modules as compiled output.
  • swig - A simple, powerful, and extendable Node.js and browser-based JavaScript template engine.

Articles and Posts

Data Visualization

Data visualization tools for the web.

  • d326k 7k - A JavaScript visualization library for HTML and SVG.
    • metrics-graphics7k 525 - A library optimized for concise, principled data graphics and layouts.
  • pykcharts.js292 66 - Well designed d3.js charting without the complexity of d3.js.
  • three.js44k 18k - JavaScript 3D library.
  • Chart.js17k 4k - Simple HTML5 Charts using the tag.
  • paper.js9k 949 - The Swiss Army Knife of Vector Graphics Scripting – Scriptographer ported to JavaScript and the browser, using HTML5 Canvas.
  • fabric.js10k 2k - Javascript Canvas Library, SVG-to-Canvas (& canvas-to-SVG) Parser.
  • peity4k 433 - Progressive bar, line and pie charts.
  • raphael10k 2k - JavaScript Vector Library.
  • echarts27k 9k - Enterprise Charts.
  • vis7k 1k - Dynamic, browser-based visualization library.
  • two.js5k 370 - A renderer agnostic two-dimensional drawing api for the web.
  • g.raphael1k 458 - Charts for Raphaël.
  • sigma.js8k 1k - A JavaScript library dedicated to graph drawing.
  • arbor2k 461 - A graph visualization library using web workers and jQuery.
  • cubism4k 374 - A D3 plugin for visualizing time series.
  • dc.js6k 2k - Multi-Dimensional charting built to work natively with crossfilter rendered with d3.js
  • vega3k 319 - A visualization grammar.
  • processing.js - Processing.js makes your data visualizations work using web standards and without any plug-ins
  • envisionjs1k 201 - Dynamic HTML5 visualization.
  • rickshaw6k 1k - JavaScript toolkit for creating interactive real-time graphs.
  • flot4k 996 - Attractive JavaScript charts for jQuery.
  • morris.js5k 702 - Pretty time-series line graphs.
  • nvd36k 2k - Build re-usable charts and chart components for d3.js
  • svg.js4k 625 - A lightweight library for manipulating and animating SVG.
  • heatmap.js4k 928 - JavaScript Library for HTML5 canvas based heatmaps.
  • jquery.sparkline695 134 - A plugin for the jQuery javascript library to generate small sparkline charts directly in the browser.
  • xCharts - A D3-based library for building custom charts and graphs.
  • trianglify8k 699 - Low poly style background generator with d3.js
  • d3-cloud2k 851 - Create word clouds in JavaScript.
  • d4417 47 - A friendly reusable charts DSL for D3.
  • dimple.js - Easy charts for business analytics powered by d3
  • chartist-js10k 2k - Simple responsive charts.
  • epoch716 93 - A general purpose real-time charting library.
  • c32k 548 - D3-based reusable chart library.
  • BabylonJS7k 2k - A framework for building 3D games with HTML 5 and WebGL.
  • recharts8k 692 - Redefined chart library built with React and D3
  • GraphicsJS - A lightweight JavaScript graphics library with the intuitive API, based on SVG/VML technology.

There're also some great commercial libraries, like amchart, anychart, plotly, and highchart.

Timeline

  • TimelineJS v31k 380 - A Storytelling Timeline built in JavaScript.
  • timesheet.js7k 625 - JavaScript library for simple HTML5 & CSS3 time sheets.

Spreadsheet

  • HANDSONTABLE10k 2k - Handsontable is a JavaScript/HTML5 Spreadsheet Library for Developers

Editors

  • ace18k 5k - Ace (Ajax.org Cloud9 Editor).
  • CodeMirror15k 4k - In-browser code editor.
  • esprima3k 406 - ECMAScript parsing infrastructure for multipurpose analysis.
  • quill18k 1k - A cross browser rich text editor with an API.
  • medium-editor6k 942 - Medium.com WYSIWYG editor clone.
  • pen4k 496 - enjoy live editing (+markdown).
  • jquery-notebook2k 188 - A simple, clean and elegant text editor. Inspired by the awesomeness of Medium.
  • bootstrap-wysiwyg4k 46 - Tiny bootstrap-compatible WYSIWYG rich text editor.
  • ckeditor-releases419 218 - The best web text editor for everyone.
  • editor3k 335 - A markdown editor. still on development.
  • EpicEditor5k 468 - An embeddable JavaScript Markdown editor with split fullscreen editing, live previewing, automatic draft saving, offline support, and more.
  • jsoneditor4k 1k - A web-based tool to view, edit and format JSON.
  • vim.js4k 310 - JavaScript port of Vim with a persistent ~/.vimrc
  • Squire4k 349 - HTML5 rich text editor.
  • TinyMCE5k 2k - The JavaScript Rich Text editor.
  • trix9k 494 - A rich text editor for everyday writing. By Basecamp.
  • Trumbowyg2k 421 - A lightweight and amazing WYSIWYG JavaScript editor.
  • Draft.js12k 1k - A React framework for building text editors.
  • bootstrap-wysihtml54k 947 - Simple, beautiful wysiwyg editor
  • wysihtml56k 1k - Open source rich text editor based on HTML5 and the progressive-enhancement approach. Uses a sophisticated security concept and aims to generate fully valid HTML5 markup by preventing unmaintainable tag soups and inline styles.
  • raptor-editor413 115 - Raptor, an HTML5 WYSIWYG content editor!
  • popline916 127 - Popline is an HTML5 Rich-Text-Editor Toolbar

Documentation

  • DevDocs is an all-in-one API documentation reader with a fast, organized, and consistent interface.
  • dexy is a free-form literate documentation tool for writing any kind of technical document incorporating code.
  • docco is a quick-and-dirty, hundred-line-long, literate-programming-style documentation generator.
  • styledocco generates documentation and style guide documents from your stylesheets.
  • Ronn653 33 builds manuals. It converts simple, human readable textfiles to roff for terminal display, and also to HTML for the web.
  • dox2k 215 is a JavaScript documentation generator written with node. Dox no longer generates an opinionated structure or style for your docs, it simply gives you a JSON representation, allowing you to use markdown and JSDoc-style tags.
  • jsdox202 65 is a JSDoc3 to Markdown documentation generator.
  • ESDoc1k 145 is a good documentation generator for JavaScript.
  • YUIDoc is a Node.js application that generates API documentation from comments in source, using a syntax similar to tools like Javadoc and Doxygen.
  • coddoc is a jsdoc parsing library. Coddoc is different in that it is easily extensible by allowing users to add tag and code parsers through the use of coddoc.addTagHandler and coddoc.addCodeHandler. coddoc also parses source code to be used in APIs.
  • sphinx a tool that makes it easy to create intelligent and beautiful documentation
  • Using JSDoc
  • Beautiful docs is a documentation viewer based on markdown files.
  • documentation.js - API documentation generator with support for ES2015+ and flow annotation.
  • jsduck1k 190 - API documentation generator made for Sencha JavaScript frameworks, but can be used for other frameworks too.

Files

Libraries for working with files.

  • Papa Parse5k 630 - A powerful CSV library that supports parsing CSV files/strings and also exporting to CSV.
  • jBinary163 17 - High-level I/O (loading, parsing, manipulating, serializing, saving) for binary files with declarative syntax for describing file types and data structures.
  • diff2html436 68 - Git diff output parser and pretty HTML generator.
  • jsPDF11k 3k - JavaScript PDF generation.

Functional Programming

Functional programming libraries to extend JavaScript’s capabilities.

  • underscore22k 6k - JavaScript's utility _ belt.
  • lodash25k 3k - A utility library delivering consistency, customization, performance, & extras.
  • Sugar4k 368 - A Javascript library for working with native objects.
  • lazy.js4k 301 - Like Underscore, but lazier.
  • ramda68 10 - A practical functional library for Javascript programmers.
  • mout789 104 - Modular JavaScript Utilities.
  • mesh93 12 - Streamable data synchronization utility.
  • preludejs54 4 - Hardcore Functional Programming for JavaScript.

Reactive Programming

Reactive programming libraries to extend JavaScript’s capabilities.

  • RxJs17k 2k - The Reactive Extensions for JavaScript.
  • Bacon6k 424 - FRP (functional reactive programming) library for Javascript.
  • Kefir589 39 - FRP library for JavaScript inspired by Bacon.js and RxJS with focus on high performance and low memory consumption.
  • Highland - Re-thinking the JavaScript utility belt, Highland manages synchronous and asynchronous code easily, using nothing more than standard JavaScript and Node-like Streams.
  • Most.js3k 227 - high performance FRP library.
  • MobX13k 903 - TFRP library for simple, scalable state management.
  • Cycle.js - A functional and reactive JavaScript library for cleaner code.

Data Structure

Data structure libraries to build a more sophisticated application.

  • immutable-js21k 1k - Immutable Data Collections including Sequence, Range, Repeat, Map, OrderedMap, Set and a sparse Vector.
  • mori3k 136 - A library for using ClojureScript's persistent data structures and supporting API from the comfort of vanilla JavaScript.
  • buckets338 45 - A complete, fully tested and documented data structure library written in JavaScript.
  • hashmap288 60 - Simple hashmap implementation that supports any kind of keys.

Date

Date Libraries.

  • moment36k 6k - Parse, validate, manipulate, and display dates in javascript.
  • moment-timezone2k 516 - Timezone support for moment.js.
  • jquery-timeago4k 776 - A jQuery plugin that makes it easy to support automatically updating fuzzy timestamps (e.g. "4 minutes ago").
  • timezone-js635 149 - Timezone-enabled JavaScript Date object. Uses Olson zoneinfo files for timezone data.
  • date936 44 - Date() for humans.
  • ms.js380 34 - Tiny millisecond conversion utility.
  • countdown.js344 25 - Super simple countdowns.
  • timeago.js3k 237 - Simple library (less then 2kb) used to format date with *** time ago statement.
  • fecha1k 71 - Lightweight date formatting and parsing (~2KB). Meant to replace parsing and formatting functionality of moment.js.
  • date-fns8k 335 - Modern JavaScript date utility library.

String

String Libraries.

  • voca2k 60 - The ultimate JavaScript string library
  • selecting53 10 - A library that allows you to access the text selected by the user
  • underscore.string3k 468 - String manipulation extensions for Underscore.js javascript library.
  • string.js2k 218 - Extra JavaScript string methods.
  • he1k 87 - A robust HTML entity encoder/decoder written in JavaScript.
  • multiline2k 66 - Multiline strings in JavaScript.
  • query-string1k 158 - Parse and stringify URL query strings.
  • URI.js5k 456 - Javascript URL mutation library.
  • jsurl101 22 - Lightweight URL manipulation with JavaScript.
  • sprintf.js1k 279 - A sprintf implementation.
  • url-pattern230 18 - Easier than regex string matching patterns for urls and other strings. Turn strings into data or data into strings

Number

  • Numeral-js5k 656 - A javascript library for formatting and manipulating numbers.
  • chance.js1k 129 - Random generator helper in Javascript. Can generate numbers, strings etc.
  • odometer6k 503 - Smoothly transitions numbers with ease.
  • accounting.js2 0 - A lightweight JavaScript library for number, money and currency formatting - fully localisable, zero dependencies.
  • money.js - A tiny (1kb) javascript currency conversion library, for web & nodeJS.
  • Fraction.js101 17 - A rational number library for JavaScript
  • Complex.js100 11 - A complex number library for JavaScript
  • Polynomial.js35 5 - A polynomials library for JavaScript

Storage

  • store.js10k 1k - LocalStorage wrapper for all browsers without using cookies or flash. Uses localStorage, globalStorage, and userData behavior under the hood.
  • localForage6k 470 - Offline storage, improved. Wraps IndexedDB, WebSQL, or localStorage using a simple but powerful API.
  • jStorage1k 204 - jStorage is a simple key/value database to store data on browser side.
  • cross-storage979 93 - Cross domain local storage, with permissions.
  • basket.js3k 305 - A script and resource loader for caching & loading scripts with localStorage.
  • bag.js62 10 - A caching script and resource loader, similar to basket.js, but with additional k/v interface and localStorage / websql / indexedDB support.
  • basil.js2k 72 - The missing Javascript smart persistent layer.
  • jquery-cookie9k 4k - A simple, lightweight jQuery plugin for reading, writing and deleting cookies.
  • js-cookie8k 1k - A simple, lightweight JavaScript API for handling browser cookies
  • Cookies2k 214 - JavaScript Client-Side Cookie Manipulation Library.
  • DB.js628 146 - Promise based IndexDB Wrapper library
  • lawnchair.js2k 314 - Simple client-side JSON storage.
  • sql.js1k 158 - SQLite compiled to JavaScript through Emscripten.

Color

  • randomColor4k 343 - A color generator for JavaScript.
  • chroma.js4k 382 - JavaScript library for all kinds of color manipulations.
  • color718 66 - JavaScript color conversion and manipulation library.
  • colors8k 585 - Smarter defaults for colors on the web.
  • PleaseJS2k 112 - JavaScript Library for creating random pleasing colors and color schemes.
  • TinyColor2k 259 - Fast, small color manipulation and conversion for JavaScript.
  • Vibrant.js4k 190 - Extract prominent colors from an image.

I18n And L10n

Localization (l10n) and internationalization (i18n) JavaScript libraries.

  • i18next3k 475 - internationalisation (i18n) with javascript the easy way.
  • polyglot2k 151 - tiny i18n helper library.
  • babelfish171 12 - i18n with human friendly API and built in plurals support.

Class

  • ClassManager40 2 - One of the fastest and most convenient class systems in the world
  • klass767 98 - A utility for creating expressive classes in JavaScript.
  • augment846 26 - The world's smallest and fastest classical JavaScript inheritance pattern.

Control Flow

  • async25k 3k - Async utilities for node and the browser.
  • q14k 1k - A tool for making and composing asynchronous promises in JavaScript.
  • step2k 217 - An async control-flow library that makes stepping through logic easy.
  • contra766 35 - Asynchronous flow control with a functional taste to it.
  • Bluebird16k 3k - fully featured promise library with focus on innovative features and performance.
  • when3k 473 - A solid, fast Promises/A+ and when() implementation, plus other async goodies.
  • ObjectEventTarget7 2 - Provide a prototype that add support to event listeners (with same behavior of EventTarget from DOMElements available on browsers).

Routing

  • director5k 498 - A tiny and isomorphic URL router for JavaScript.
  • page.js5k 638 - Micro client-side router inspired by the Express router (~1200 bytes).
  • pathjs1k 230 - Simple, lightweight routing for web browsers.
  • crossroads1k 184 - JavaScript Routes.
  • davis.js520 56 - RESTful degradable JavaScript routing using pushState.

Security

  • DOMPurify2k 157 - A DOM-only, super-fast, uber-tolerant XSS sanitizer for HTML, MathML and SVG.
  • js-xss2k 282 - Sanitize untrusted HTML (to prevent XSS) with a configuration specified by a Whitelist.
  • xss-filters622 91 - Secure XSS Filters by Yahoo

Log

  • log3k 158 - Console.log with style.
  • Conzole169 9 - A debug panel built in javascript that wraps javascript native console object methods and functionality in a panel displayed inside the page.
  • console.log-wrapper406 68 - Log to the console in any browser with clarity.
  • loglevel920 128 - Minimal lightweight logging for JavaScript, adding reliable log level methods to wrap any available console.log methods.
  • minilog – Lightweight client & server-side logging with Stream-API backends
  • storyboard - Universal logging library + Chrome extension; it lets you see all client and server tasks triggered by a user action in a single place.

RegExp

  • RegEx101 - Online regex tester and debugger for JavaScript. Also supports Python, PHP and PCRE.
  • RegExr - HTML/JS based tool for creating, testing, and learning about Regular Expressions.
  • RegExpBuilder280 20 - Create regular expressions using chained methods.

Voice Command

  • annyang4k 807 - A JavaScript library for adding voice commands to your site, using speech recognition.
  • voix.js391 53 - A JavaScript library to add voice commands to your sites, apps or games.

API

  • bottleneck294 19 - A powerful rate limiter that makes throttling easy.
  • oauth-signature-js204 70 - JavaScript OAuth 1.0a signature generator for node and the browser.
  • amygdala282 9 - RESTful HTTP client for JavaScript powered web applications.
  • jquery.rest290 57 - A jQuery plugin for easy consumption of RESTful APIs.

Streaming

  • Tailor552 80 - Streaming layout service for front-end microservices, inspired by Facebook's BigPipe.

Vision Detection

  • tracking.js5k 833 - A modern approach for Computer Vision on the web.
  • ocrad.js2k 127 - OCR in Javascript via Emscripten.

Machine Learning

  • ConvNetJS2k 349 - Deep Learning in Javascript. Train Convolutional Neural Networks (or ordinary ones) in your browser.
  • DN2A460 14 - Digital Neural Networks Architecture.
  • Brain.js5k 464 - Neural networks in JavaScript.
  • Mind.js1k 92 - A flexible neural network library.
  • Synaptic.js5k 539 - Architecture-free neural network library for node.js and the browser.
  • deeplearn.js - A hardware-accelerated machine intelligence library for the web.

Browser Detection

  • bowser2k 366 - a browser detector

Benchmark

  • benchmark.js3k 280 - A benchmarking library. As used on jsPerf.com.
  • matcha467 30 - A caffeine driven, simplistic approach to benchmarking.

Code highlighting

  • Highlight.js11k 2k - Javascript syntax highlighter.
  • PrismJS3k 450 - Lightweight, robust, elegant syntax highlighting.

Loading Status

Libraries for indicate load status.

  • Mprogress.js2k 130 - Create Google Material Design progress linear bars.
  • NProgress - Slim progress bars for Ajax'y applications.
  • Spin.js9k 1k - A spinning activity indicator.
  • progress.js1k 161 - Create and manage progress bar for every objects on the page.
  • progressbar.js6k 784 - Beautiful and responsive progress bars with animated SVG paths.
  • pace13k 2k - Automatically add a progress bar to your site.
  • topbar135 16 - Tiny & beautiful site-wide progress indicator.
  • nanobar3k 274 - Very lightweight progress bars. No jQuery.
  • PageLoadingEffects388 64 - Modern ways of revealing new content using SVG animations.
  • SpinKit14k 1k - A collection of loading indicators animated with CSS.
  • Ladda7k 959 - Buttons with built-in loading indicators.
  • css-loaders3k 473 - A collection of loading spinners animated with CSS

Besides libraries, there're Collection on Codepen, and generators like Ajaxload, Preloaders and CSSLoad.

Validation

  • Parsley.js8k 2k - Validate your forms, frontend, without writing a single line of javascript.
  • jquery-validation8k 3k - jQuery Validation Plugin.
  • validator.js10k 1k - String validation and sanitization.
  • validate.js2k 475 - Lightweight JavaScript form validation library inspired by CodeIgniter.
  • validatr250 38 - Cross Browser HTML5 Form Validation.
  • FormValidation - The best jQuery plugin to validate form fields. Formerly BootstrapValidator.
  • is.js9k 822 - Check types, regexps, presence, time and more.
  • FieldVal142 12 - multipurpose validation library. Supports both sync and async validation.

Keyboard Wrappers

  • mousetrap8k 810 - Simple library for handling keyboard shortcuts in Javascript.
  • keymaster4k 302 - A simple micro-library for defining and dispatching keyboard shortcuts.
  • Keypress3k 346 - A keyboard input capturing utility in which any key can be a modifier key.
  • KeyboardJS1k 182 - A JavaScript library for binding keyboard combos without the pain of key codes and key combo conflicts.
  • jquery.hotkeys2k 349 - jQuery Hotkeys lets you watch for keyboard events anywhere in your code supporting almost any key combination.
  • jwerty891 79 - Awesome handling of keyboard events.

Tours And Guides

  • intro.js18k 2k - A better way for new feature introduction and step-by-step users guide for your website and project.
  • shepherd5k 345 - Guide your users through a tour of your app.
  • bootstrap-tour4k 915 - Quick and easy product tours with Twitter Bootstrap Popovers.
  • tourist1k 122 - Simple, flexible tours for your app.
  • chardin.js4k 398 - Simple overlay instructions for your apps.
  • pageguide908 145 - An interactive guide for web page elements using jQuery and CSS3.
  • hopscotch4k 635 - A framework to make it easy for developers to add product tours to their pages.
  • joyride1k 279 - jQuery feature tour plugin.
  • focusable1k 58 - Set a spotlight focus on DOM element adding a overlay layer to the rest of the page.

Notifications

  • iziToast1k 139 - Elegant, responsive, flexible and lightweight notification plugin with no dependencies.
  • messenger4k 492 - Growl-style alerts and messages for your app.
  • noty6k 1k - jQuery notification plugin.
  • pnotify3k 568 - JavaScript notifications for Bootstrap, jQuery UI, and the Web Notifications Draft.
  • toastr7k 1k - Simple javascript toast notifications.
  • humane-js2k 148 - A simple, modern, browser notification system.
  • smoke.js859 87 - Framework-agnostic styled alert system for javascript.
  • notie1k 145 - Simple notifications and inputs with no dependencies.

Sliders

  • Swiper15k 6k - Mobile touch slider and framework with hardware accelerated transitions.
  • slick21k 4k - The last carousel you'll ever need.
  • slidesJs - Is a ressponsive slideshow plug-in for JQuery(1.7.1+) with features like touch and CSS3 transitions
  • FlexSlider5k 2k - An awesome, fully responsive jQuery slider plugin.
  • unslider4k 2k - The simplest jQuery slider there is.
  • sly3k 564 - JavaScript library for one-directional scrolling with item based navigation support.
  • vegas2k 482 - A jQuery plugin to add beautiful fullscreen backgrounds to your webpages. It even allows Slideshows.
  • Sequence3k 565 - CSS animation framework for creating responsive sliders, presentations, banners, and other step-based applications.
  • reveal.js39k 13k - A framework for easily creating beautiful presentations using HTML.
  • impress.js10k 2k - It's a presentation framework based on the power of CSS3 transforms and transitions in modern browsers and inspired by the idea behind prezi.com.
  • bespoke.js - DIY Presentation Micro-Framework
  • Strut1k 497 - Strut - An Impress.js and Bespoke.js Presentation Editor
  • PhotoSwipe15k 2k - JavaScript image gallery for mobile and desktop, modular, framework independent.
  • jcSlider35 11 - A responsive slider jQuery plugin with CSS animations.
  • basic-jquery-slider519 341 - Simple to use, simple to theme, simple to customise.
  • jQuery.adaptive-slider - A jQuery plugin for a slider with adaptive colored figcaption and navigation.
  • slidr1k 180 - add some slide effects.
  • Flickity4k 460 - Touch, responsive, flickable galleries.
  • Glide.js238 58 - Responsive and touch-friendly jQuery slider. It's simple, lightweight and fast.
  • jQuery.adaptive-slider - A jQuery plugin for a slider with adaptive colored figcaption and navigation.

Range Sliders

  • Ion.RangeSlider2k 437 - Powerful and easily customizable range slider with many options and skin support.
  • jQRangeSlider714 172 - A javascript slider selector that supports dates.
  • noUiSlider3k 523 - A lightweight, highly customizable range slider without bloat.
  • rangeslider.js2k 295 - HTML5 input range slider element polyfill.

Form Widgets

Input

  • typeahead.js15k 3k - A fast and fully-featured autocomplete library.
  • tag-it2k 563 - A jQuery UI plugin to handle multi-tag fields as well as tag suggestions/autocomplete.
  • At.js5k 661 - Add Github like mentions autocomplete to your application.
  • Placeholders.js992 265 - A JavaScript polyfill for the HTML5 placeholder attribute.
  • fancyInput2k 363 - Makes typing in input fields fun with CSS3 effects.
  • jQuery-Tags-Input2k 851 - Magically convert a simple text input into a cool tag list with this jQuery plugin.
  • vanilla-masker733 114 - A pure javascript mask input.
  • Ion.CheckRadio71 24 - jQuery plugin for styling checkboxes and radio-buttons. With skin support.
  • awesomplete6k 584 - Ultra lightweight, usable, beautiful autocomplete with zero dependencies. - http://leaverou.github.io/awesomplete/

Calendar

  • pickadate.js7k 1k - The mobile-friendly, responsive, and lightweight jQuery date & time input picker.
  • bootstrap-datepicker9k 4k - A datepicker for @twitter bootstrap forked from Stefan Petre's (of eyecon.ro), improvements by @eternicode.
  • Pikaday6k 1k - A refreshing JavaScript Datepicker — lightweight, no dependencies, modular CSS.
  • fullcalendar3k 1k - Full-sized drag & drop event calendar (jQuery plugin).
  • rome3k 263 - A customizable date (and time) picker. Dependency free, opt-in UI.
  • datedropper2k 242 - datedropper is a jQuery plugin that provides a quick and easy way to manage dates for input fields.

Select

  • selectize.js8k 2k - Selectize is the hybrid of a textbox and select box. It's jQuery based and it has autocomplete and native-feeling keyboard navigation; useful for tagging, contact lists, etc.
  • select29k 3k - a jQuery based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results.
  • chosen23k 5k - A library for making long, unwieldy select boxes more friendly.

File Uploader

  • jQuery-File-Upload30k 9k - File Upload widget with multiple file selection, drag&drop support, progress bar, validation and preview images, audio and video for jQuery.
  • dropzone13k 4k - Dropzone is an easy to use drag'n'drop library. It supports image previews and shows nice progress bars.
  • flow.js2k 346 - A JavaScript library providing multiple simultaneous, stable, fault-tolerant and resumable/restartable file uploads via the HTML5 File API.
  • fine-uploader8k 2k - Multiple file upload plugin with progress-bar, drag-and-drop, direct-to-S3 uploading.
  • FileAPI3k 521 - A set of javascript tools for working with files. Multiupload, drag'n'drop and chunked file upload. Images: crop, resize and auto orientation by EXIF.
  • plupload5k 1k - A JavaScript API for dealing with file uploads it supports features like multiple file selection, file type filtering, request chunking, client side image scaling and it uses different runtimes to achieve this such as HTML 5, Silverlight and Flash.

Other

  • form3k 777 - jQuery Form Plugin.
  • Garlic.js2k 189 - Automatically persist your forms' text and select field values locally, until the form is submitted.
  • Countable2k 149 - A JavaScript function to add live paragraph-, word- and character-counting to an HTML element.
  • card9k 1k - Make your credit card form better in one line of code.
  • stretchy1k 87 - Form element autosizing, the way it should be.

Tips

  • tipsy2k 578 - Facebook-style tooltips plugin for jQuery.
  • opentip942 353 - An open source javascript tooltip based on the prototype framework.
  • qTip22k 521 - Pretty powerful tooltips.
  • tooltipster2k 470 - A jQuery tooltip plugin.
  • simptip537 81 - A simple CSS tooltip made with Sass.
  • jquery-popup-overlay437 152 - jQuery plugin for responsive and accessible modal windows and tooltips.
  • toolbar2k 263 - A tooltip style toolbar jQuery plugin
  • hint.css8k 883 - A tooltip library in CSS for your lovely websites.

Modals and Popups

  • Magnific-Popup10k 3k - Light and responsive lightbox script with focus on performance.
  • jquery-popbox428 76 - jQuery PopBox UI Element.
  • jquery.avgrund.js2k 461 - A jQuery plugin with new modal concept for popups.
  • vex7k 540 - A modern dialog library which is highly configurable and easy to style.
  • bootstrap-modal5k 1k - Extends the default Bootstrap Modal class. Responsive, stackable, ajax and more.
  • css-modal2k 288 - A modal built out of pure CSS.
  • jquery-popup-overlay437 152 - jQuery plugin for responsive and accessible modal windows and tooltips.
  • SweetAlert17k 3k - An awesome replacement for JavaScript's alert.
  • baguetteBox.js1k 250 - Simple and easy to use lightbox script written in pure JavaScript.
  • colorbox5k 1k - A light-weight, customizable lightbox plugin for jQuery.
  • fancyBox4k 1k - A tool that offers a nice and elegant way to add zooming functionality for images, html content and multi-media on your webpages.
  • swipebox2k 681 - A touchable jQuery lightbox
  • jBox916 250 - jBox is a powerful and flexible jQuery plugin, taking care of all your popup windows, tooltips, notices and more.

Scroll

  • scrollMonitor1k 69 - A simple and fast API to monitor elements as you scroll.
  • headroom10k 935 - Give your pages some headroom. Hide your header until you need it.
  • onepage-scroll7k 2k - Create an Apple-like one page scroller website (iPhone 5S website) with One Page Scroll plugin.
  • iscroll10k 3k - iScroll is a high performance, small footprint, dependency free, multi-platform javascript scroller.
  • skrollr18k 4k - Stand-alone parallax scrolling library for mobile (Android + iOS) and desktop. No jQuery.
  • parallax17k 3k - Parallax Engine that reacts to the orientation of a smart device.
  • stellar.js3k 873 - Parallax scrolling made easy.
  • plax2k 277 - jQuery powered parallaxing.
  • jparallax879 331 - jQuery plugin for creating interactive parallax effect.
  • fullPage21k 6k - A simple and easy to use plugin to create fullscreen scrolling websites (also known as single page websites).
  • ScrollMenu179 27 - A new interface to replace old boring scrollbar.
  • Clusterize.js5k 305 - Tiny vanilla JS plugin to display large data sets easily.

Menu

  • jQuery-menu-aim6k 935 - jQuery plugin to fire events when user's cursor aims at particular dropdown menu items. For making responsive mega dropdowns like Amazon's.
  • jQuery contextMenu864 377 - contextMenu manager.
  • Slideout - A responsive touch slideout navigation menu for mobile web apps.
  • Slide and swipe - A sliding swipe menu that works with touchSwipe library.

Table/Grid

  • jTable854 523 - A jQuery plugin to create AJAX based CRUD tables.
  • DataTables - (jQuery plug-in) It is a highly flexible tool, based upon the foundations of progressive enhancement, and will add advanced interaction controls to any HTML table.
  • floatThead923 176 - (jQuery plug-in) lock any table's header while scrolling within the body. Works on any table and requires no custom html or css.
  • Masonry - A cascading grid layout library.
  • Packery - A grid layout library that uses a bin-packing algorithm. Useable for draggable layouts.
  • Isotope - A filterable, sortable, grid layout library. Can implement Masonry, Packery, and other layouts.
  • flexboxgrid6k 815 - Grid based on CSS3 flexbox

Frameworks

  • Semantic UI - UI Kit with lots of themes and elements
  • w2ui - A set of jQuery plugins for front-end development of data-driven web applications.
  • fluidity929 61 - The worlds smallest fully-responsive css framework
  • Ink2k 350 - An HTML5/CSS3 framework used at SAPO for fast and efficient website design and prototyping

Boilerplates

  • html5-boilerplate43k 12k - A professional front-end template for building fast, robust, and adaptable web apps or sites.
  • mobile-boilerplate4k 669 - A front-end template that helps you build fast, modern mobile web apps.
  • webplate - An awesome front-end framework that lets you stay focused on building your site or app while remaining really easy to use.
  • Cerberus2k 399 - A few simple, but solid patterns for responsive HTML emails. Even in Outlook.
  • full-page-intro-and-navigation20 4 - An intro page with a full width background image, a bold animated menu and an iOS-like blurred effect behind the navigation
  • Fluid-Squares16 3 - A fluid grid of square units.
  • Mobile-First-RWD50 9 - An example of a mobile-first responsive web design
  • this-is-responsive1k 175 - This Is Responsive
  • npm run-scripts Task automation with NPM run-scripts.

Gesture

  • hammer.js17k 3k - A javascript library for multi-touch gestures.
  • touchemulator69 6 - Emulate touch input on your desktop.
  • Dragula17k 1k - Drag and drop so simple it hurts

Maps

  • Leaflet22k 4k - JavaScript library for mobile-friendly interactive maps.
  • Cesium3k 2k - Open Source WebGL virtual globe and map engine.
  • gmaps5k 780 - The easiest way to use Google Maps.
  • polymaps1k 151 - A free JavaScript library for making dynamic, interactive maps in modern web browsers.
  • kartograph.js1k 171 - Open source JavaScript renderer for Kartograph SVG maps.
  • mapbox.js2k 425 - Mapbox JavaScript API, a Leaflet Plugin.
  • jqvmap2k 617 - jQuery Vector Map Library.
  • OpenLayers3 - A high-performance, feature-packed library for all your mapping needs.

Video/Audio

  • prettyembed.js - Prettier embeds for your YouTubes - with nice options like high-res preview images, advanced customization of embed options, and optional FitVids support.
  • html5media1k 244 - Enables and tags in all major browsers. https://html5media.info/
  • Play-em JS43 9 - Play'em is a javascript component that manages a music/video track queue and plays a sequence of songs by embedding several players in a HTML DIV including Youtube, Soundcloud and Vimeo.
  • polyplayer33 3 - Rule YouTube, Soundcloud and Vimeo player with one API
  • flowplayer2k 512 - The HTML5 video player for the web https://flowplayer.org/
  • mediaelement5k 1k - HTML5 or player with Flash and Silverlight shims that mimics the HTML5 MediaElement API, enabling a consistent UI in all browsers. http://mediaelementjs.com/
  • SoundJS3k 757 - A library to make working with audio on the web easier. It provides a consistent API for playing audio in different browsers.
  • video.js21k 6k - Video.js - open source HTML5 & Flash video player
  • FitVids.js5k 1k - A lightweight, easy-to-use jQuery plugin for fluid width video embeds.
  • Ion.Sound624 140 - Simple sounds on any web page
  • photobooth-js497 67 - A widget that allows users to take their avatar pictures on your site
  • clappr3k 534 - An extensible media player for the web http://clappr.io

Typography

  • FlowType.JS3k 387 - Web typography at its finest: font-size and line-height based on element width.
  • BigText864 170 - jQuery plugin, calculates the font-size and word-spacing needed to match a line of text to a specific width.
  • circletype - A jQuery plugin that lets you curve type on the web
  • slabText - A jQuery plugin for producing big, bold & responsive headlines
  • simple-text-rotator394 159 - Add a super simple rotating text to your website with little to no markup
  • novacancy.js144 45 - Text Neon Golden effect jQuery plug-in.
  • jquery-responsive-text128 30 - Make your text sizing responsive!
  • FitText.js7k 2k - A jQuery plugin for inflating web type
  • Lettering.js4k 502 - A lightweight, easy to use Javascript injector for radical Web Typography

Animations

  • velocity14k 2k - Accelerated JavaScript animation.
  • jquery.transit6k 791 - Super-smooth CSS3 transformations and transitions for jQuery.
  • imrpess.js10k 2k - Make Prezi-like presentations with CSS3 transformations/transitions in an HTML document.
  • bounce.js5k 440 - Create tasty CSS3 powered animations in no time.
  • GreenSock-JS7k 1k - High-performance HTML5 animations that work in all major browsers.
  • TransitionEnd38 2 - TransitionEnd is an agnostic and cross-browser library to work with transitionend event.
  • Dynamic.js7k 405 - Javascript library to create physics-based CSS animations.
  • the-cube7 6 - The Cube is an experiment with CSS3 transitions.
  • Effeckt.css9k 1k - A Performant Transitions and Animations Library
  • animate.css47k 12k - A cross-browser library of CSS animations. As easy to use as an easy thing.
  • textillate3k 756 - A simple plugin for CSS3 text animations
  • move.js4k 779 - CSS3 backed JavaScript animation framework
  • animatable2k 418 - One property, two values, endless possiblities
  • shuffle-images126 22 - The Simplest Way to shuffle through images in a Creative Way http://www.thepetedesign.com/demos/shuffle-images_demo.html
  • smoothState.js2k 362 - Unobtrusive page transitions with jQuery. http://smoothstate.com/

Image Processing

  • lena.js51 14 - A Library for image processing with filters and util functions.
  • pica953 136 - High quality image resize (with fast Lanczos filter, implemented in pure JS).
  • cropper6k 2k - A simple jQuery image cropping plugin.

ES6

  • es6features2k 150 - Overview of ECMAScript 6 features.
  • es6-features4k 598 - ECMAScript 6: Feature Overview & Comparison.
  • es6-cheatsheet - ES2015 [ES6] cheatsheet containing tips, tricks, best practices and code snippets.
  • ECMAScript 6 compatibility table - Compatibility tables for all ECMAScript 6 features on a variety of environments.
  • Babel (Formerly 6to5)25k 3k - Turn ES6+ code into vanilla ES5 with no runtime.
  • Traceur compiler8k 580 - ES6 features > ES5. Includes classes, generators, promises, destructuring patterns, default parameters & more.

SDK

  • javascript-sdk-design337 49 - Javascript SDK design guide extracted from work and personal experience
  • Spotify SDK139 23 - Entity oriented SDK to work with the Spotify Web API.

Misc

  • echo3k 509 - Lazy-loading images with data-* attributes.
  • picturefill10k 1k - A responsive image polyfill for , srcset, sizes.
  • platform.js2k 241 - A platform detection library that works on nearly all JavaScript platforms.
  • json31k 149 - A modern JSON implementation compatible with nearly all JavaScript platforms.
  • Logical Or Not - A game about JavaScript specificities.
  • BitSet.js126 22 - A JavaScript Bit-Vector implementation
  • spoiler-alert498 72 - SPOILER ALERT! A happy little jquery plugin to hide spoilers on your site.
  • jquery.vibrate.js - Vibration API Wrappers
  • list.js8k 828 - Adds search, sort, filters and flexibility to tables, lists and various HTML elements. Built to be invisible and work on existing HTML. http://www.listjs.com
  • mixitup4k 786 - MixItUp - A Filter & Sort Plugin
  • grid546 117 - Drag and drop library for two-dimensional, resizable and responsive lists.
  • jquery-match-height3k 698 - a responsive equal heights plugin for jQuery.
  • survey.js819 197 - JavaScript Survey Engine. It uses JSON for survey metadata and results. http://surveyjs.org/
  • Array Explorer773 72 and Object Explorer - Resources to help figure out what native JavaScript method would be best to use at any given time

Podcasts

  • JavaScript Air - The live video broadcast podcast all about JavaScript and the Web platform.
  • Web of Tomorrow - Podcast about JavaScript for beginners.
  • Javascript Jabber - A weekly podcast about JavaScript, including Node.js, Front-End Technologies, Careers, Teams and more.

Worth Reading

  • braziljs/js-the-right-way7k 952
  • JSbooks2k 587
  • Superhero.js - A collection of resources about creating, testing and maintaining a large JavaScript code base.
  • SJSJ2k 203 - Simplified JavaScript Jargon is a community-driven attempt at explaining the loads of buzzwords making the current JavaScript ecosystem in a few simple words.
  • How to Write an Open Source JavaScript Library74 10 - A comprehensive guide through a set of steps to publish a JavaScript open source library.
  • Jaavascript tutorial - Learn Javascript online from a diverse range of user ranked online tutorials.

Other Awesome Lists

Contributing

Contributions welcome! Read the contribution guidelines first.

License

CC0

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