[[
wikihub
]]
Search
⌘K
Explore
People
For Agents
Sign in
Explore
People
For Agents
Sign in
@harrisonqian / Awesome / wiki/programming-languages/javascript.md
Suggest edit
Cancel
Submit suggestion
Title
Name
Note
--- visibility: public --- # JavaScript **repo:** [sorrycc/awesome-javascript](https://github.com/sorrycc/awesome-javascript) **category:** [[programming-languages|Programming Languages]] **related:** [[react|React]] · [[vue|Vue.js]] · [[angular|Angular]] · [[node|Node.js]] · [[typescript|TypeScript]] --- # Awesome JavaScript [](https://github.com/sorrycc/awesome-javascript/) A collection of awesome browser-side [JavaScript](https://developer.mozilla.org/en-US/docs/Web/JavaScript) libraries, resources and shiny things. * [Awesome JavaScript](#[awesome](/@harrisonqian/awesome/wiki/miscellaneous/awesome)-javascript) * [Package Managers](#package-managers) * [Component management](#component-management) * [Loaders](#loaders) * [Transpilers](#transpilers) * [Bundlers](#bundlers) * [Minimizers](#minimizers) * [Type Checkers](#type-checkers) * [Testing Frameworks](#[testing](/@harrisonqian/awesome/wiki/testing/testing)-frameworks) * [QA Tools](#qa-tools) * [MVC [Frameworks](/@harrisonqian/awesome/wiki/front-end-development/frameworks) and Libraries](#mvc-frameworks-and-libraries) * [Node-Powered CMS Frameworks](#node-powered-cms-frameworks) * [Templating Engines](#templating-engines) * [Game Engines](#game-engines) * [Articles/Posts](#articles-and-posts) * [Data Visualization](#data-visualization) * [Timeline](#timeline) * [Spreadsheet](#spreadsheet) * [Editors](#editors) * [Documentation](#documentation) * Utilities * [Files](#files) * [Functional Programming](#functional-programming) * [Reactive Programming](#reactive-programming) * [Data Structure](#data-structure) * [Date](#date) * [String](#string) * [Number](#number) * [Storage](#storage) * [Color](#color) * [I18n And L10n](#i18n-and-l10n) * [Control Flow](#control-flow) * [Routing](#routing) * [Security](#security) * [Log](#log) * [RegExp](#regexp) * [Media](#videoaudio) * [Voice Command](#voice-command) * [API](#api) * [Streaming](#streaming) * [Vision Detection](#vision-detection) * [Browser Detection](#browser-detection) * [Operating System](#operating-system) * [Benchmark](#benchmark) * [Machine Learning](#machine-learning) * [Web Worker](#web-worker) * UI * [Code Highlighting](#code-highlighting) * [Loading Status](#loading-status) * [Validation](#validation) * [Keyboard Wrappers](#keyboard-wrappers) * [Tours And Guides](#tours-and-guides) * [Notifications](#notifications) * [Sliders](#sliders) * [Range Sliders](#range-sliders) * [Form Widgets](#form-widgets) * [Tips](#tips) * [Modals and Popups](#modals-and-popups) * [Scroll](#scroll) * [Menu](#menu) * [Table/Grid](#tablegrid) * [Frameworks](#[frameworks](/@harrisonqian/awesome/wiki/front-end-development/frameworks)-1) * [Boilerplates](#boilerplates) * [Image](#image) * [Gesture](#gesture) * [Maps](#maps) * [Typography](#typography) * [Animations](#animations) * [Image processing](#image-processing) * [ES6](#es6) * [Generators](#generators) * [Full Text Search](#full-text-search) * [SDK](#sdk) * [ORM](#orm) * [WebSockets](#websockets) * [Generative AI](#generative-ai) * [Misc](#misc) * [Worth Reading](#worth-reading) * [Other [Awesome](/@harrisonqian/awesome/wiki/miscellaneous/awesome) Lists](#other-awesome-lists) * [Contributing](#contributing) ---- ## Package Managers *Host the JavaScript libraries and provide tools for fetching and packaging them.* * [npm](https://www.npmjs.com/) - npm is the package manager for JavaScript. * [Bower](https://github.com/bower/bower) - A package manager for the web. * [component](https://github.com/componentjs/component) - Client package management for building better web applications. * [spm](https://github.com/spmjs/spm) - Brand new static package manager. * [jam](https://github.com/caolan/jam) - A package manager using a browser-focused and RequireJS compatible repository. * [jspm](https://github.com/jspm/jspm-cli) - Frictionless browser package management. * [Ender](https://github.com/ender-js/Ender) - The no-library library. * [volo](https://github.com/volojs/volo) - Create front end projects from templates, add dependencies, and automate the resulting projects. * [Duo](https://github.com/duojs/duo) - Next-generation package manager that blends the best ideas from Component, [Browserify](/@harrisonqian/awesome/wiki/front-end-development/browserify) and Go to make organizing and writing front-end code quick and painless. * [yarn](https://yarnpkg.com/) - Fast, reliable, and secure dependency management. * [pnpm](https://pnpm.io/) - Fast, disk space efficient package manager. * [bun](https://bun.sh/) - Bun is a fast JavaScript all-in-one toolkit. ## Component Management * [Bit](https://github.com/teambit/bit) - Create, find and reuse components (React, [Angular](/@harrisonqian/awesome/wiki/front-end-development/angular), Node etc.) across applications. ## Loaders *Module or loading system for JavaScript.* * [RequireJS](https://github.com/requirejs/requirejs) - A file and module loader for JavaScript. * [browserify](https://github.com/substack/node-browserify) - Browser-side require() the [node.js](/@harrisonqian/awesome/wiki/platforms/node-js) way. * [SeaJS](https://github.com/seajs/seajs) - A Module Loader for the Web. * [HeadJS](https://github.com/headjs/headjs) - The only script in your HEAD. * [lazyload](https://github.com/rgrove/lazyload/) - Tiny, dependency-free async JavaScript and CSS loader. * [script.js](https://github.com/ded/script.js) - Asynchronous JavaScript loader and dependency manager. * [systemjs](https://github.com/systemjs/systemjs) - AMD, CJS & ES6 spec-compliant module loader. * [LodJS](https://github.com/yanhaijing/lodjs) - Module loader based on AMD. * [ESL](https://github.com/ecomfe/esl) - Module loader browser first, support lazy define and AMD. * [modulejs](https://github.com/lrsjng/modulejs) - Lightweight JavaScript module system. ## Transpilers *Software that converts the modern JavaScript syntax into the older JavaScript syntax.* * [SWC](https://swc.rs/) - Extensible [Rust](/@harrisonqian/awesome/wiki/programming-languages/rust)-based platform for compilation. ## Bundlers * [webpack](https://github.com/webpack/webpack) - Packs CommonJs/AMD modules for the browser. * [Rollup](https://github.com/rollup/rollup) - Next-generation ES6 module bundler. * [Brunch](https://github.com/brunch/brunch) - Fast front-end web app build tool with simple declarative config. * [Parcel](https://github.com/parcel-bundler/parcel) - Blazing fast, zero configuration web application bundler. * [Microbundle](https://github.com/developit/microbundle) - Zero-configuration bundler for tiny modules. * [FuseBox](https://github.com/fuse-box/fuse-box) - A bundler that does it right * [Snowpack](https://www.snowpack.dev/) - A lightning-fast frontend build tool, designed for the modern web. * [bundle](https://bundle.js.org) - A quick online npm package size checker. * [Vite](https://vite.dev/) - Next Generation Frontend Tooling. # Minimizers * [Terser](https://github.com/terser/terser) - parser, mangler and compressor toolkit for ES6+ * [Uglify](https://github.com/mishoo/UglifyJS) - parser / mangler / compressor / beautifier toolkit ## Type Checkers * [TypeScript](https://www.typescriptlang.org/) - A typed superset of JavaScript that compiles to plain JavaScript. * [Flow.js](https://flow.org/) - A static type checker for JavaScript from Facebook. * [Hegel](https://hegel.js.org/) - A static type checker for JavaScript with a bias on type inference an strong type system. * [TypL](https://github.com/getify/TypL) - the JavaScript Type Linter with a bias on type inference. * [Hindley Milner Definitions](https://github.com/xodio/hm-def) - runtime type checking for JavaScript functions using [Haskell](/@harrisonqian/awesome/wiki/programming-languages/haskell)-alike Hindley Milner type signatures. * [Zod](https://github.com/colinhacks/zod) - TypeScript-first schema validation with built-in static type inference. * [Yup](https://github.com/jquense/yup) - JavaScript schema builder and validator. ## Testing Frameworks ### Frameworks * [mocha](https://github.com/mochajs/mocha) - Simple, flexible, fun JavaScript test framework for [node.js](/@harrisonqian/awesome/wiki/platforms/node-js) & the browser. * [jasmine](https://github.com/jasmine/jasmine) - DOM-[less](/@harrisonqian/awesome/wiki/front-end-development/less) simple JavaScript [testing](/@harrisonqian/awesome/wiki/testing/testing) framework. * [qunit](https://github.com/jquery/qunit) - An easy-to-use JavaScript Unit [Testing](/@harrisonqian/awesome/wiki/testing/testing) framework. * [jest](https://github.com/facebook/jest) - Painless JavaScript Unit [Testing](/@harrisonqian/awesome/wiki/testing/testing). * [prova](https://github.com/azer/prova) - Node & Browser test runner based on Tape and [Browserify](/@harrisonqian/awesome/wiki/front-end-development/browserify) * [DalekJS](https://github.com/dalekjs/dalek) - Automated cross browser functional [testing](/@harrisonqian/awesome/wiki/testing/testing) with JavaScript * [Protractor](https://github.com/angular/protractor) - Protractor is an end-to-end test framework for AngularJS applications. * [tape](https://github.com/substack/tape) - Tap-producing test harness for node and browsers. * [TestCafe](https://github.com/DevExpress/testcafe) - Automated browser [testing](/@harrisonqian/awesome/wiki/testing/testing) for the modern web development stack. * [ava](https://github.com/avajs/ava) - 🚀 Futuristic JavaScript test runner * [Cypress](https://www.cypress.io/) - Complete end-to-end [testing](/@harrisonqian/awesome/wiki/testing/testing) framework for anything that runs in a browser and beyond. * [WebdriverI/O](https://webdriver.io/) - Next-gen browser and mobile automation test framework for [Node.js](/@harrisonqian/awesome/wiki/platforms/node-js) * [Suites](https://suites.dev) - A unit-[testing](/@harrisonqian/awesome/wiki/testing/testing) framework for backends working with inversion of control and dependency injection ### Assertion * [chai](https://github.com/chaijs/chai) - BDD / TDD assertion framework for [node.js](/@harrisonqian/awesome/wiki/platforms/node-js) and the browser that can be paired with any [testing](/@harrisonqian/awesome/wiki/testing/testing) framework. * [Enzyme](https://airbnb.io/enzyme/index.html) - Enzyme is a JavaScript [Testing](/@harrisonqian/awesome/wiki/testing/testing) utility for [React](/@harrisonqian/awesome/wiki/front-end-development/react) that makes it easier to assert, manipulate, and traverse your [React](/@harrisonqian/awesome/wiki/front-end-development/react) Components' output. * [react [testing](/@harrisonqian/awesome/wiki/testing/testing) library](https://github.com/kentcdodds/react-testing-library) - Simple and complete [React](/@harrisonqian/awesome/wiki/front-end-development/react) DOM [testing](/@harrisonqian/awesome/wiki/testing/testing) utilities that encourage good testing practices. * [Sinon.JS](https://github.com/sinonjs/sinon) - Test spies, stubs, and mocks for JavaScript. * [expect.js](https://github.com/Automattic/expect.js) - Minimalistic BDD-style assertions for [Node.JS](/@harrisonqian/awesome/wiki/platforms/node-js) and the browser. * [proxyquire](https://github.com/thlorenz/proxyquire) - Stub nodejs's require. * [Supertest](https://github.com/visionmedia/supertest) - A popular HTTP assertion library for [testing](/@harrisonqian/awesome/wiki/testing/testing) [REST](/@harrisonqian/awesome/wiki/miscellaneous/rest) APIs, often used with other testing [frameworks](/@harrisonqian/awesome/wiki/front-end-development/frameworks) like Mocha or Jest * [Pocket Mocker](https://github.com/tianchangNorth/pocket-mocker) - In-browser visual network mocking tool, supports fetch/XHR interception. ### Coverage * [istanbul](https://github.com/gotwarlost/istanbul) - Yet another JS code coverage tool. * [blanket](https://github.com/alex-seville/blanket) - A simple code coverage library for JavaScript. Designed to be easy to install and use, for both browser and nodejs. * [JSCover](https://github.com/tntim96/JSCover) - JSCover is a tool that measures code coverage for JavaScript programs. ### Runner * [phantomjs](https://github.com/ariya/phantomjs) - [Scriptable](/@harrisonqian/awesome/wiki/miscellaneous/scriptable) Headless WebKit. * [slimerjs](https://github.com/laurentj/slimerjs) - A PhantomJS-like tool running Gecko. * [casperjs](https://github.com/casperjs/casperjs) - Navigation scripting & [testing](/@harrisonqian/awesome/wiki/testing/testing) utility for PhantomJS and SlimerJS. * [zombie](https://github.com/assaf/zombie) - Insanely fast, full-stack, headless browser [testing](/@harrisonqian/awesome/wiki/testing/testing) using [node.js](/@harrisonqian/awesome/wiki/platforms/node-js). * [totoro](https://github.com/totorojs/totoro) - A simple and stable cross-browser [testing](/@harrisonqian/awesome/wiki/testing/testing) tool. * [karma](https://github.com/karma-runner/karma) - Spectacular Test Runner for JavaScript. * [nightwatch](https://github.com/nightwatchjs/nightwatch) - UI automated [testing](/@harrisonqian/awesome/wiki/testing/testing) framework based on [node.js](/@harrisonqian/awesome/wiki/platforms/node-js) and [selenium](/@harrisonqian/awesome/wiki/testing/selenium) webdriver. * [intern](https://github.com/theintern/intern) - A next-generation code [testing](/@harrisonqian/awesome/wiki/testing/testing) stack for JavaScript. * [puppeteer](https://github.com/GoogleChrome/puppeteer) - Headless Chrome [Node.js](/@harrisonqian/awesome/wiki/platforms/node-js) API by official Google Chrome team. * [webdriverio](https://github.com/webdriverio/webdriverio) - Next-gen WebDriver test automation framework for [Node.js](/@harrisonqian/awesome/wiki/platforms/node-js). * [taiko](https://github.com/getgauge/taiko) - A [Node.js](/@harrisonqian/awesome/wiki/platforms/node-js) library with a simple API to automate Chromium based browsers. * [Playwright](https://github.com/microsoft/playwright) - [Node.js](/@harrisonqian/awesome/wiki/platforms/node-js) library to automate Chromium, Firefox and WebKit with a single API. ## QA Tools * [prettier](https://github.com/prettier/prettier) - Prettier is an opinionated code formatter. * [JSHint](https://github.com/jshint/jshint/) - JSHint is a tool that helps to detect errors and potential problems in your JavaScript code. * [jscs](https://github.com/jscs-dev/node-jscs) - JavaScript Code Style checker. * [jsfmt](https://github.com/rdio/jsfmt) - For formatting, searching, and rewriting JavaScript. * [jsinspect](https://github.com/danielstjules/jsinspect) - Detect copy-pasted and structurally similar code. * [buddy.js](https://github.com/danielstjules/buddy.js) - Magic number detection for JavaScript. * [ESLint](https://github.com/eslint/eslint) - A fully pluggable tool for identifying and reporting on patterns in JavaScript. * [JSLint](https://github.com/douglascrockford/JSLint) - High-[standards](/@harrisonqian/awesome/wiki/miscellaneous/standards), strict & opinionated code quality tool, aiming to keep only good parts of the language. * [JavaScript Standard Style](https://github.com/feross/standard) - Opinionated, no-configuration style guide, style checker, and formatter * [Pre-evaluate code at buildtime](https://github.com/kentcdodds/preval.macro) - Pre-evaluate your front end javascript code at build-time * [JS-Beautifier](https://github.com/beautify-web/js-beautify) - Npm cli and library to format JS code. * [husky](https://github.com/typicode/husky) - Prevents bad git commit, git push and more. ## MVC Frameworks and Libraries * [angular.js](https://github.com/angular/angular.js) - HTML enhanced for web [apps](/@harrisonqian/awesome/wiki/platforms/apps). (deprecated) * [angular](https://github.com/angular/angular) - [Angular](/@harrisonqian/awesome/wiki/front-end-development/angular) is a development platform for building mobile and desktop web applications using Typescript/JavaScript and other languages. * [aurelia](http://aurelia.io) - A JavaScript client framework for mobile, desktop and web. * [backbone](https://github.com/jashkenas/backbone) - Give your JS App some [Backbone](/@harrisonqian/awesome/wiki/front-end-development/backbone) with Models, Views, Collections, and Events. * [ember.js](https://github.com/emberjs/ember.js) - A JavaScript framework for creating ambitious web applications. * [meteor](https://github.com/meteor/meteor) - An ultra-simple, [database](/@harrisonqian/awesome/wiki/databases/database)-everywhere, data-on-the-wire, pure-javascript web framework. * [ractive](https://github.com/ractivejs/ractive) - Next-generation DOM manipulation. * [vue](https://github.com/vuejs/vue) - Intuitive, fast & composable MVVM for building interactive interfaces. * [svelte](https://github.com/sveltejs/svelte) - [Svelte](/@harrisonqian/awesome/wiki/front-end-development/svelte) is a new way to build web applications. It's a compiler that takes your declarative components and converts them into efficient JavaScript that surgically updates the DOM. * [knockout](https://github.com/knockout/knockout) - Knockout makes it easier to create rich, responsive UIs with JavaScript. * [spine](https://github.com/spine/spine) - Lightweight MVC library for building JavaScript applications. * [espresso.js](https://github.com/techlayer/espresso.js) - A minimal JavaScript library for crafting user interfaces. * [canjs](https://github.com/canjs/canjs) - Can do JS, better, faster, easier. * [react](https://reactjs.org/) - A library for building user interfaces. It's declarative, efficient, and extremely flexible. Works with a Virtual DOM. * [hyperapp](https://github.com/hyperapp/hyperapp) - 1kb JavaScript library for building frontend applications. * [preact](https://github.com/developit/preact) - Fast 3kb [React](/@harrisonqian/awesome/wiki/front-end-development/react) alternative with the same ES6 API. Components & Virtual DOM. * [nativescript](https://github.com/NativeScript/NativeScript) - Build truly native [cross-platform](/@harrisonqian/awesome/wiki/platforms/cross-platform) iOS and [Android](/@harrisonqian/awesome/wiki/platforms/android) [apps](/@harrisonqian/awesome/wiki/platforms/apps) with JavaScript. * [react-native](https://github.com/facebook/react-native) - A framework for building native [apps](/@harrisonqian/awesome/wiki/platforms/apps) with [React](/@harrisonqian/awesome/wiki/front-end-development/react). * [riot](https://github.com/riot/riot) - [React](/@harrisonqian/awesome/wiki/front-end-development/react)-like library, but with very small size. * [thorax](https://github.com/walmartlabs/thorax) - Strengthening your [Backbone](/@harrisonqian/awesome/wiki/front-end-development/backbone). * [chaplin](https://github.com/chaplinjs/chaplin) - An architecture for JavaScript applications using the [Backbone](/@harrisonqian/awesome/wiki/front-end-development/backbone).js library. * [marionette](https://github.com/marionettejs/backbone.marionette) - A composite application library for [Backbone](/@harrisonqian/awesome/wiki/front-end-development/backbone).js that aims to simplify the construction of large scale JavaScript applications. * [ripple](https://github.com/ripplejs/ripple) - A tiny foundation for building reactive views. * [rivets](https://github.com/mikeric/rivets) - Lightweight and powerful data binding + templating solution. * [derby](https://github.com/derbyjs/derby) - MVC framework making it easy to write realtime, collaborative applications that run in both [Node.js](/@harrisonqian/awesome/wiki/platforms/node-js) and browsers. * [derby-awesome](https://github.com/russll/awesome-derby) - A collection of [awesome](/@harrisonqian/awesome/wiki/miscellaneous/awesome) derby components * [way.js](https://github.com/gwendall/way.js) - Simple, lightweight, persistent two-way databinding. * [mithril.js](https://github.com/lhorie/mithril.js) - Mithril is a client-side MVC framework (Light-weight, Robust, Fast). * [jsblocks](https://github.com/astoilkov/jsblocks) - jsblocks is better MV-ish framework. * [feathers](https://github.com/feathersjs/feathers) - A minimalist real-time JavaScript framework for tomorrow's [apps](/@harrisonqian/awesome/wiki/platforms/apps). * [Keo](https://github.com/Wildhoney/Keo) - Functional stateless [React](/@harrisonqian/awesome/wiki/front-end-development/react) components with Shadow DOM support. * [atvjs](https://github.com/emadalam/atvjs) - Blazing fast Apple TV application development using pure JavaScript. * [Alpine.js](https://github.com/alpinejs/alpine) - offers you the reactive and declarative nature of big [frameworks](/@harrisonqian/awesome/wiki/front-end-development/frameworks) like Vue or [React](/@harrisonqian/awesome/wiki/front-end-development/react) at a much lower cost. * [inferno](https://github.com/infernojs/inferno) - 🔥 An extremely fast, [React](/@harrisonqian/awesome/wiki/front-end-development/react)-like JavaScript library for building modern user interfaces. * [FoalTS](https://foalts.org) - Elegant and all-inclusive [Node.JS](/@harrisonqian/awesome/wiki/platforms/node-js) framework for building web applications (TypeScript). * [Lucia](https://github.com/aidenybai/lucia) - 3kb library for tiny web [apps](/@harrisonqian/awesome/wiki/platforms/apps). * [Adonis](https://github.com/adonisjs/core) - The [Node.js](/@harrisonqian/awesome/wiki/platforms/node-js) Framework highly focused on developer ergonomics, stability and confidence. * [GrapesJS](https://github.com/artf/grapesjs) - Free and Open source Web Builder Framework. Next generation tool for building templates without coding. * [Rete.js](https://github.com/retejs/rete) - A modular framework for visual programming allows to create node based editor in browser. * [litegraph.js](https://github.com/jagenjo/litegraph.js) - A graph node engine and editor similar to PD or UDK Blueprints, comes with its own editor in [HTML5](/@harrisonqian/awesome/wiki/front-end-development/html5) Canvas2D. * [Drawflow](https://github.com/jerosoler/Drawflow) - This allow you to create data flows easily and quickly. * [Blockly](https://github.com/google/blockly) - A library that adds a visual code editor to web and mobile [apps](/@harrisonqian/awesome/wiki/platforms/apps) by Google. * [Million](https://github.com/aidenybai/million) - <1kb compiler-focused virtual DOM. It's fast! * [Whatsup](https://github.com/whatsup/whatsup) - A frontend framework for chillout-mode development 🥤. JSX components on generators, fast mobx-like state management and exclusive cssx style system. * [Remult](https://github.com/remult/remult) - A CRUD framework for full-stack TypeScript. ## Node-Powered CMS Frameworks * [KeystoneJS](https://github.com/keystonejs/keystone) - powerful CMS and web app framework. * [Reaction Commerce](https://github.com/reactioncommerce/reaction) - reactive CMS, real-time architecture and design. * [Ghost](https://github.com/tryghost/Ghost) - simple, powerful publishing platform. * [Apostrophe](https://github.com/punkave/apostrophe) - CMS with content editing and essential services. * [We.js](https://github.com/wejs/we/) - framework for real time [apps](/@harrisonqian/awesome/wiki/platforms/apps), sites or blogs. * [Hatch.js](https://github.com/inventures/hatchjs) - CMS platform with social features. * [TaracotJS](https://github.com/xtremespb/taracotjs-generator/) - fast and minimalist CMS based on [Node.js](/@harrisonqian/awesome/wiki/platforms/node-js). * [Nodizecms](https://github.com/nodize/nodizecms) - CMS for CoffeeScript lovers. * [Cody](https://github.com/jcoppieters/cody) - CMS with WSYWYG editor. * [PencilBlue](https://github.com/pencilblue/pencilblue/) - CMS and blogging platform. * [Strapi](https://github.com/strapi/strapi) - Open source [Node.js](/@harrisonqian/awesome/wiki/platforms/node-js) Headless CMS to easily build customisable APIs. * [Factor](https://github.com/fiction-com/factor) - The Javascript CMS ## Templating Engines *Templating engines allow you to perform string interpolation.* * [mustache.js](https://github.com/janl/mustache.js) - Minimal templating with {{mustaches}} in JavaScript. * [handlebars.js](https://github.com/handlebars-lang/handlebars.js) - An extension to the Mustache templating language. * [nunjucks](https://mozilla.[github](/@harrisonqian/awesome/wiki/development-environment/github).io/nunjucks/) - A rich and powerful templating language for JavaScript from Mozilla. * [hogan.js](https://github.com/twitter/hogan.js) - A compiler for the Mustache templating language. * [doT](https://github.com/olado/doT) - The fastest + concise JavaScript template engine for nodejs and browsers. * [dustjs](https://github.com/linkedin/dustjs/) - Asynchronous templates for the browser and [node.js](/@harrisonqian/awesome/wiki/platforms/node-js). * [eco](https://github.com/sstephenson/eco/) - Embedded CoffeeScript templates. * [JavaScript-Templates](https://github.com/blueimp/JavaScript-Templates) - < 1KB lightweight, fast & powerful JavaScript templating engine with zero dependencies. * [t.js](https://github.com/jasonmoo/t.js) - A tiny JavaScript templating framework in ~400 bytes gzipped. * [Pug](https://github.com/pugjs/pug) - Robust, elegant, feature rich template engine for nodejs. (formerly known as Jade) * [EJS](https://github.com/mde/ejs) - Effective JavaScript templating. * [xtemplate](https://github.com/xtemplate/xtemplate) - eXtensible Template Engine lib for node and the browser * [marko](https://github.com/marko-js/marko) - A fast, lightweight, HTML-based templating engine for [Node.js](/@harrisonqian/awesome/wiki/platforms/node-js) and the browser with async, [streaming](/@harrisonqian/awesome/wiki/big-data/streaming), custom tags and CommonJS modules as compiled output. * [swig](https://github.com/paularmstrong/swig) - (Archived) A simple, powerful, and extendable [Node.js](/@harrisonqian/awesome/wiki/platforms/node-js) and browser-based JavaScript template engine. * [hmpl](https://hmpl-lang.dev) - Server-oriented customizable templating for JavaScript. ## Game Engines * [A-Frame](https://aframe.io) - Make WebVR. * [Cocos](https://www.cocos.com) - Open Source [Cross-Platform](/@harrisonqian/awesome/wiki/platforms/cross-platform) [Game Development](/@harrisonqian/awesome/wiki/gaming/game-development) Framework. * [Impact](https://impactjs.com) - Impact - [HTML5](/@harrisonqian/awesome/wiki/front-end-development/html5) [Canvas](/@harrisonqian/awesome/wiki/front-end-development/canvas) & JavaScript Game Engine. * [GDevelop](https://gdevelop.io) - Free and Easy Game-Making App. * [Kaboom.js](https://kaboomjs.com) - A game programming library that helps you make games fast and fun. * [Matter.js](https://brm.io/matter-js) - A 2D rigid body JavaScript physics engine. * [melonJS](https://melonjs.org) - Open source [HTML5](/@harrisonqian/awesome/wiki/front-end-development/html5) game engine that empowers developers and designers to focus on content. * [Phaser](https://phaser.io) - Phaser - A fast, fun and free open source [HTML5](/@harrisonqian/awesome/wiki/front-end-development/html5) game framework. * [PixiJS](https://pixijs.com) - The [HTML5](/@harrisonqian/awesome/wiki/front-end-development/html5) Creation Engine. * [PlayCanvas](https://playcanvas.com) - [PlayCanvas](/@harrisonqian/awesome/wiki/gaming/playcanvas) [WebGL](/@harrisonqian/awesome/wiki/front-end-development/webgl) Game Engine. ## Articles and Posts * [The JavaScript that you should know](https://medium.com/@pedropolisenso/o-javasscript-que-voc%C3%AA-deveria-conhecer-b70e94d1d706) - Article about concepts of JavaScript Functional. * [Multi-threading using web-workers](https://www.loginradius.com/blog/async/adding-multi-threading-to-javascript-using-web-workers/) - Web Workers: Adding Multi-threading to JavaScript * [this keyword in JavaScript](https://www.loginradius.com/blog/async/breaking-down-this-keyword-in-javascript/) - Breaking down the 'this' keyword in JavaScript ## Data Visualization *Data visualization tools for the web.* * [d3](https://github.com/d3/d3) - A JavaScript visualization library for HTML and SVG. * [metrics-graphics](https://github.com/mozilla/metrics-graphics) - A library optimized for concise, principled data graphics and layouts. * [three.js](https://github.com/mrdoob/three.js) - JavaScript 3D library. * [Chart.js](https://github.com/chartjs/Chart.js) - Simple [HTML5](/@harrisonqian/awesome/wiki/front-end-development/html5) Charts using the <[canvas](/@harrisonqian/awesome/wiki/front-end-development/canvas)> tag. * [paper.js](https://github.com/paperjs/paper.js) - The Swiss Army Knife of Vector Graphics Scripting – Scriptographer ported to JavaScript and the browser, using [HTML5](/@harrisonqian/awesome/wiki/front-end-development/html5) [Canvas](/@harrisonqian/awesome/wiki/front-end-development/canvas). * [fabric.js](https://github.com/kangax/fabric.js) - JavaScript [Canvas](/@harrisonqian/awesome/wiki/front-end-development/canvas) Library, SVG-to-[Canvas](/@harrisonqian/awesome/wiki/front-end-development/canvas) (& canvas-to-SVG) Parser. * [peity](https://github.com/benpickles/peity) - Progressive <svg> bar, line and pie charts. * [raphael](https://github.com/DmitryBaranovskiy/raphael) - JavaScript Vector Library. * [echarts](https://github.com/apache/echarts) - Enterprise Charts. * [visjs](https://github.com/visjs) - Multiple Libraries for dynamic, browser-based [data visualization](/@harrisonqian/awesome/wiki/miscellaneous/data-visualization). * [two.js](https://github.com/jonobr1/two.js) - A renderer agnostic two-dimensional drawing api for the web. * [g.raphael](https://github.com/DmitryBaranovskiy/g.raphael) - Charts for Raphaël. * [sigma.js](https://github.com/jacomyal/sigma.js) - A JavaScript library dedicated to graph drawing. * [arbor](https://github.com/samizdatco/arbor) - A graph visualization library using web workers and [jQuery](/@harrisonqian/awesome/wiki/front-end-development/jquery). * [cubism](https://github.com/square/cubism) - A D3 plugin for visualizing time series. * [dc.js](https://github.com/dc-js/dc.js) - Multi-Dimensional [charting](/@harrisonqian/awesome/wiki/front-end-development/charting) built to work natively with crossfilter rendered with d3.js * [vega](https://github.com/trifacta/vega) - A visualization grammar. * [envisionjs](https://github.com/HumbleSoftware/envisionjs) - Dynamic [HTML5](/@harrisonqian/awesome/wiki/front-end-development/html5) visualization. * [rickshaw](https://github.com/shutterstock/rickshaw) - JavaScript toolkit for creating interactive real-time graphs. * [flot](https://github.com/flot/flot) - Attractive JavaScript charts for [jQuery](/@harrisonqian/awesome/wiki/front-end-development/jquery). * [morris.js](https://github.com/morrisjs/morris.js) - Pretty time-series line graphs. * [nvd3](https://github.com/novus/nvd3) - Build re-usable charts and chart components for d3.js. * [svg.js](https://github.com/wout/svg.js) - A lightweight library for manipulating and animating SVG. * [heatmap.js](https://github.com/pa7/heatmap.js) - JavaScript Library for [HTML5](/@harrisonqian/awesome/wiki/front-end-development/html5) [canvas](/@harrisonqian/awesome/wiki/front-end-development/canvas) based heatmaps. * [jquery.sparkline](https://github.com/gwatts/jquery.sparkline) - A plugin for the [jQuery](/@harrisonqian/awesome/wiki/front-end-development/jquery) JavaScript library to generate small sparkline charts directly in the browser. * [trianglify](https://github.com/qrohlf/trianglify) - Low poly style background generator with d3.js. * [d3-cloud](https://github.com/jasondavies/d3-cloud) - Create word clouds in JavaScript. * [d4](https://github.com/heavysixer/d4) - A friendly reusable charts DSL for D3. * [dimple.js](http://dimplejs.org) - Easy charts for business [analytics](/@harrisonqian/awesome/wiki/miscellaneous/analytics) powered by d3. * [chartist-js](https://github.com/gionkunz/chartist-js) - Simple responsive charts. * [epoch](https://github.com/epochjs/epoch) - A general purpose real-time [charting](/@harrisonqian/awesome/wiki/front-end-development/charting) library. * [c3](https://github.com/c3js/c3) - D3-based reusable chart library. * [BabylonJS](https://github.com/BabylonJS/Babylon.js) - A framework for building 3D games with HTML 5 and [WebGL](/@harrisonqian/awesome/wiki/front-end-development/webgl). * [recharts](https://github.com/recharts/recharts) - Redefined chart library built with [React](/@harrisonqian/awesome/wiki/front-end-development/react) and D3. * [GraphicsJS](https://github.com/AnyChart/GraphicsJS) - A lightweight JavaScript graphics library with the intuitive API, based on SVG/VML technology. * [mxGraph](https://github.com/jgraph/mxgraph) - Diagramming library that enables interactive graph and [charting](/@harrisonqian/awesome/wiki/front-end-development/charting) applications to be quickly created that run natively in any major browser that is supported by its vendor. * [Frappe Charts](https://github.com/frappe/charts) - [GitHub](/@harrisonqian/awesome/wiki/development-environment/github)-inspired simple and modern SVG charts for the web with zero dependencies. * [Frappe Gantt](https://github.com/frappe/gantt) - A simple, interactive, modern gantt chart library for the web. * [G2](https://github.com/antvis/G2) - A highly interactive data-driven visualization grammar for statistical charts. * [G2Plot](https://github.com/antvis/G2Plot) - An interactive and responsive [charting](/@harrisonqian/awesome/wiki/front-end-development/charting) library. Based on the grammar of graphics. * [Cytoscape.js](https://github.com/cytoscape/cytoscape.js) - A fully featured graph theory library. * [cola.js](https://ialab.it.monash.edu/webcola/) - library for arranging your [HTML5](/@harrisonqian/awesome/wiki/front-end-development/html5) documents and diagrams using constraint-based optimization techniques * [jointjs](https://github.com/clientIO/joint) - Diagramming library to create static diagrams or fully interactive diagramming tools. * [vizzu](https://github.com/vizzuhq/vizzu-lib) - Library for animated data visualizations and data stories. * [G6](https://github.com/antvis/g6) - A graph visualization engine. * [Infographic](https://github.com/antvis/Infographic) - A next-generation declarative infographic visualization engine. There're also some great commercial libraries, like [amchart](https://www.amcharts.com/), [anychart](https://www.anychart.com/), [plotly](https://plotly.com/), and [lightning chart](https://www.arction.com/lightningchart-js/). ## Timeline * [TimelineJS v3](https://github.com/NUKnightLab/TimelineJS3) - A Storytelling Timeline built in JavaScript. * [timesheet.js](https://github.com/sbstjn/timesheet.js) - JavaScript library for simple [HTML5](/@harrisonqian/awesome/wiki/front-end-development/html5) & CSS3 time sheets. ## Spreadsheet * [HANDSONTABLE](https://github.com/handsontable/handsontable) - Handsontable is a JavaScript/[HTML5](/@harrisonqian/awesome/wiki/front-end-development/html5) Spreadsheet Library for Developers * [Frappe Datatable](https://github.com/frappe/datatable) - Frappe DataTable is a simple, modern and interactive datatable library for displaying tabular data. * [Luckysheet](https://github.com/mengshukeji/Luckysheet) - Luckysheet is an online spreadsheet like excel that is powerful, simple to configure, and completely open source. * [Jspreadsheet CE](https://github.com/jspreadsheet/ce) - Jspreadsheet is a lightweight vanilla javascript plugin to create amazing web-based interactive tables and spreadsheets compatible with other spreadsheet software. * [RevoGrid](https://github.com/revolist/revogrid) - RevoGrid is a fast, responsive excel like data grid library for modern web applications. ## Editors * [ace](https://github.com/ajaxorg/ace) - Ace (Ajax.org Cloud9 Editor). * [CodeMirror](https://github.com/codemirror/CodeMirror) - In-browser code editor. * [esprima](https://github.com/ariya/esprima) - ECMAScript parsing infrastructure for multipurpose analysis. * [quill](https://github.com/quilljs/quill) - A cross browser rich text editor with an API. * [medium-editor](https://github.com/yabwe/medium-editor) - Medium.com WYSIWYG editor clone. * [pen](https://github.com/sofish/pen) - enjoy live editing (+markdown). * [jquery-notebook](https://github.com/raphaelcruzeiro/jquery-notebook) - A simple, clean and elegant text editor. Inspired by the awesomeness of Medium. * [bootstrap-wysiwyg](https://github.com/mindmup/bootstrap-wysiwyg) - Tiny bootstrap-compatible WYSIWYG rich text editor. * [ckeditor-releases](https://github.com/ckeditor/ckeditor-releases) - The best web text editor for everyone. * [editor](https://github.com/lepture/editor) - A [markdown](/@harrisonqian/awesome/wiki/miscellaneous/markdown) editor. still on development. * [EpicEditor](https://github.com/OscarGodson/EpicEditor) - An embeddable JavaScript [Markdown](/@harrisonqian/awesome/wiki/miscellaneous/markdown) editor with split fullscreen editing, live previewing, automatic draft saving, offline support, and more. * [jsoneditor](https://github.com/josdejong/jsoneditor) - A web-based tool to view, edit and format [JSON](/@harrisonqian/awesome/wiki/miscellaneous/json). * [vim.js](https://github.com/coolwanglu/vim.js) - JavaScript port of Vim with a persistent `~/.vimrc`. * [Squire](https://github.com/neilj/Squire) - [HTML5](/@harrisonqian/awesome/wiki/front-end-development/html5) rich text editor. * [TinyMCE](https://github.com/tinymce/tinymce) - The JavaScript Rich Text editor. * [trix](https://github.com/basecamp/trix) - A rich text editor for everyday writing. By Basecamp. * [Trumbowyg](https://github.com/Alex-D/Trumbowyg) - A lightweight and amazing WYSIWYG JavaScript editor. * [Draft.js](https://github.com/facebook/draft-js) - A [React](/@harrisonqian/awesome/wiki/front-end-development/react) framework for building text editors. * [bootstrap-wysihtml5](https://github.com/jhollingworth/bootstrap-wysihtml5) - Simple, beautiful wysiwyg editor * [wysihtml5](https://github.com/xing/wysihtml5) - Open source rich text editor based on [HTML5](/@harrisonqian/awesome/wiki/front-end-development/html5) and the progressive-enhancement approach. Uses a sophisticated [security](/@harrisonqian/awesome/wiki/security/security) concept and aims to generate fully valid HTML5 markup by preventing unmaintainable tag soups and inline styles. * [raptor-editor](https://github.com/PANmedia/raptor-editor) - Raptor, an [HTML5](/@harrisonqian/awesome/wiki/front-end-development/html5) WYSIWYG content editor! * [popline](https://github.com/kenshin54/popline) - Popline is an [HTML5](/@harrisonqian/awesome/wiki/front-end-development/html5) Rich-Text-Editor Toolbar. * [Summernote](https://github.com/summernote/summernote) - Super simple WYSIWYG editor. * [Everright-formEditor](https://github.com/Liberty-liu/Everright-formEditor) - A visual drag-and-drop low-code form editor ## Documentation * [DevDocs](https://devdocs.io/) is an all-in-one API documentation reader with a fast, organized, and consistent interface. * [docco](http://ashkenas.com/docco/) is a quick-and-dirty, hundred-line-long, literate-programming-style documentation generator. * [styledocco](http://jacobrask.[github](/@harrisonqian/awesome/wiki/development-environment/github).io/styledocco/) generates documentation and style guide documents from your stylesheets. * [Ronn](https://github.com/rtomayko/ronn) builds manuals. It converts simple, human readable textfiles to roff for terminal display, and also to HTML for the web. * [dox](https://github.com/tj/dox) 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](/@harrisonqian/awesome/wiki/miscellaneous/json) representation, allowing you to use [markdown](/@harrisonqian/awesome/wiki/miscellaneous/markdown) and JSDoc-style tags. * [jsdox](https://github.com/sutoiku/jsdox) is a JSDoc3 to [Markdown](/@harrisonqian/awesome/wiki/miscellaneous/markdown) documentation generator. * [ESDoc](https://github.com/esdoc/esdoc) is a good documentation generator for JavaScript. * [YUIDoc](http://yui.[github](/@harrisonqian/awesome/wiki/development-environment/github).io/yuidoc/) is a [Node.js](/@harrisonqian/awesome/wiki/platforms/node-js) application that generates API documentation from comments in source, using a syntax similar to tools like Javadoc and Doxygen. * [coddoc](http://doug-martin.[github](/@harrisonqian/awesome/wiki/development-environment/github).io/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](http://www.sphinx-doc.org/) a tool that makes it easy to create intelligent and beautiful documentation * [Beautiful docs](https://github.com/beautiful-docs/beautiful-docs) is a documentation viewer based on [markdown](/@harrisonqian/awesome/wiki/miscellaneous/markdown) files. * [documentation.js](http://documentation.js.org) - API documentation generator with support for ES2015+ and flow annotation. * [jsduck](https://github.com/senchalabs/jsduck) - API documentation generator made for Sencha JavaScript [frameworks](/@harrisonqian/awesome/wiki/front-end-development/frameworks), but can be used for other [frameworks](/@harrisonqian/awesome/wiki/front-end-development/frameworks) too. * [codecrumbs](https://github.com/Bogdan-Lyashenko/codecrumbs) is a visual tool for [learning](/@harrisonqian/awesome/wiki/programming-languages/learning) and documenting a codebase by putting breadcrumbs in source code. ## Files *Libraries for working with files.* * [Papa Parse](https://github.com/mholt/PapaParse) - A powerful CSV library that supports parsing CSV files/strings and also exporting to CSV. * [jBinary](https://github.com/jDataView/jBinary) - High-level I/O (loading, parsing, manipulating, serializing, saving) for binary files with declarative syntax for describing file types and data structures. * [diff2html](https://github.com/rtfpessoa/diff2html) - Git diff output parser and pretty HTML generator. * [jsPDF](https://github.com/MrRio/jsPDF) - JavaScript PDF generation. * [PDF.js](https://github.com/mozilla/pdf.js) - PDF Reader in JavaScript. ## Functional Programming *Functional programming libraries to extend JavaScript’s capabilities.* * [underscore](https://github.com/jashkenas/underscore) - JavaScript's utility _ belt. * [lodash](https://github.com/lodash/lodash) - A utility library delivering consistency, customization, performance, & extras. * [Sugar](https://github.com/andrewplummer/Sugar) - A JavaScript library for working with native objects. * [lazy.js](https://github.com/dtao/lazy.js) - Like Underscore, but lazier. * [ramda](https://github.com/ramda/ramda) - A practical functional library for JavaScript programmers. * [mout](https://github.com/mout/mout) - Modular JavaScript Utilities. * [preludejs](https://github.com/alanrsoares/prelude-js) - Hardcore [Functional Programming](/@harrisonqian/awesome/wiki/programming-languages/functional-programming) for JavaScript. * [rambda](https://github.com/selfrefactor/rambda) - Faster and smaller alternative to *Ramda*. * [fxts](https://github.com/marpple/FxTS) - Lazy evaluation and concurrency. * [wild-wild-path](https://github.com/ehmicky/wild-wild-path) - Object property paths with wildcards and regexps. * [sweet-monads](https://github.com/JSMonk/sweet-monads) - A utility library containing popular monads and lazy iterators. ## Reactive Programming *Reactive programming libraries to extend JavaScript’s capabilities.* * [RxJS](https://github.com/ReactiveX/rxjs) - A reactive programming library for JavaScript. * [Bacon](https://github.com/baconjs/bacon.js) - FRP (functional reactive programming) library for JavaScript. * [Kefir](https://github.com/pozadi/kefir) - FRP library for JavaScript inspired by Bacon.js and RxJS with focus on high performance and low memory consumption. * [Highland](https://caolan.[github](/@harrisonqian/awesome/wiki/development-environment/github).io/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.js](https://github.com/cujojs/most) - high performance FRP library. * [MobX](https://github.com/mobxjs/mobx) - TFRP library for simple, scalable state management. * [Cycle.js](https://cycle.js.org) - A functional and reactive JavaScript library for cleaner code. * [concent](https://github.com/concentjs/concent) - Definitely the ❤️ simplest but ⚡️ strongest state management for [react](/@harrisonqian/awesome/wiki/front-end-development/react), it is predictable、progressive and efficient. * [stunk](https://github.com/I-am-abdulazeez/stunk) A framework-agnostic state management library that keeps your app’s state clean and simple. It uses a fine-grained state model, breaking state into independent, manageable chunks. ## Data Structure *Data structure libraries to build a more sophisticated application.* * [immutable-js](https://github.com/facebook/immutable-js) - Immutable Data Collections including Sequence, Range, Repeat, Map, OrderedMap, Set and a sparse Vector. * [mori](https://github.com/swannodette/mori) - A library for using [ClojureScript](/@harrisonqian/awesome/wiki/programming-languages/clojurescript)'s persistent data structures and supporting API from the comfort of vanilla JavaScript. * [buckets](https://github.com/mauriciosantos/Buckets-JS) - A complete, fully tested and documented data structure library written in JavaScript. * [hashmap](https://github.com/flesler/hashmap) - Simple hashmap implementation that supports any kind of keys. * [ngraph.graph](https://github.com/anvaka/ngraph.graph) - Graph data structure in javascript. * [js-sdsl](https://github.com/zly201/js-sdsl) - Refer to the javascript standard data structure library implemented by c++ stl, which supports c++ bidirectional iterator mode. ## Date *Date Libraries.* * [moment](https://github.com/moment/moment) - Parse, validate, manipulate, and display dates in JavaScript. * [moment-timezone](https://github.com/moment/moment-timezone) - Timezone support for moment.js. * [jquery-timeago](https://github.com/rmm5t/jquery-timeago) - A [jQuery](/@harrisonqian/awesome/wiki/front-end-development/jquery) plugin that makes it easy to support automatically updating fuzzy timestamps (e.g. "4 minutes ago"). * [timezone-js](https://github.com/mde/timezone-js) - Timezone-enabled JavaScript Date object. Uses Olson zoneinfo files for timezone data. * [date](https://github.com/MatthewMueller/date) - Date() for humans. * [ms.js](https://github.com/rauchg/ms.js) - Tiny millisecond conversion utility. * [countdown.js](https://github.com/gumroad/countdown.js) - Super simple countdowns. * [timeago.js](https://github.com/hustcc/timeago.js) - Simple library (less then 2kb) used to format date with `*** time ago` statement. * [fecha](https://github.com/taylorhakes/fecha) - Lightweight date formatting and parsing (~2KB). Meant to replace parsing and formatting functionality of moment.js. * [date-fns](https://github.com/date-fns/date-fns) - Modern JavaScript date utility library. * [map-countdown](https://github.com/dawidjaniga/map-countdown) - A browser countdown built on top of the Google Maps. * [dayjs](https://github.com/iamkun/dayjs) - Day.js 2KB immutable date library alternative to Moment.js with the same modern API. * [luxon](https://github.com/moment/luxon) - Luxon is a library for working with dates and times in JavaScript. * [tempo](https://github.com/formkit/tempo) - Parsing, formatting, and timezones — Tempo is a small tree-shakable library for native Date objects. ## String *String Libraries.* * [voca](https://github.com/panzerdp/voca) - The ultimate JavaScript string library * [selecting](https://github.com/EvandroLG/selecting) - A library that allows you to access the text selected by the user. * [underscore.string](https://github.com/epeli/underscore.string) - String manipulation extensions for Underscore.js JavaScript library. * [string.js](https://github.com/jprichardson/string.js) - Extra JavaScript string methods. * [he](https://github.com/mathiasbynens/he) - A robust HTML entity encoder/decoder written in JavaScript. --- *truncated — [full list on GitHub](https://github.com/sorrycc/awesome-javascript)*