Awesome JavaScript libraries
This document lists javascript libraries that I use. I also strongly recommend you to read these two ressources about JavaSript : You Dont Know JS (a book series exploring the parts of JavaScript that we all think we understand but don't really know) and Functional Light JS (a book about functional programming in JavaScript). In the same spirit, I recommend you to read the wtfjs listing funny and tricky JavaScript examples. Let's build something great ! β
Name
Description
Install
Compatibility
Vue.js
Simple, Fast & Composable MVVM for building interactive interfaces
npm i -S vue
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
npm i -S react
React Native
A framework for building native apps with React.
npm i -S react-native
mustache.js
Minimal templating with {{mustaches}} in JavaScript
npm i -S mustache
Name
Description
Install
Compatibility
now-cli
The command line interface for Now. Realtime global deployments served over HTTP/2.
npm i -g now
pkg
Package your Node.js project into an executable
npm i -g pkg
release
Generate changelogs with a single command. When run, this command line interface automatically generates a new GitHub Release and populates it with the changes (commits) made since the last release.
npm i -g release
strapi
Strapi is an open source solution to create, deploy and manage your own API. It provides a powerful dashboard and features to make your life easier.
npm i strapi -g
Name
Description
Install
Compatibility
electron-packager
Customize and package your Electron app with OS-specific bundles (.app, .exe etc) via JS or CLI
npm i -S electron-packager
vue-cli
Simple CLI for scaffolding Vue.js projects
npm i -g vue-cli
react-app
CLI tools and templates for authoring React applications with a single dev dependency and no configurations
npm i -g react-app
react-native
A framework for building native apps with React.
npm i -g react-native-cli
yo
CLI tool for running Yeoman generators
npm i -g yo
update-notifier
Update notifications for your CLI app
npm i -S update-notifier
Caporal.js
A full-featured framework for building command line applications (cli) with node.js
npm i -S caporal
lerna
A tool for managing JavaScript projects with multiple packages.
npm i -g lerna
crudl
CRUDL is a backend agnostic REST and GraphQL based admin interface
RTFM
Name
Description
Install
Compatibility
bulma
Modern CSS framework based on Flexbox
npm i -S bulma
fitty
Makes text fit perfectly
npm i -S fitty
twig.js
JS implementation of the Twig Templating Language
npm i -S twig
material-design-lite
Material Design Components in HTML/CSS/JS
RTFM
vue-material
Material design for Vue.js
npm i -S vue-material
vue-mdc
Material web components for Vue.js
npm i -S vue-mdc
Name
Description
Install
Compatibility
vue-router
The official router for Vue.js.
npm i -S vue-router
Crossroads
It parses a string input and decides which action should
npm i -S crossroads
Hasher
Set of JavaScript functions to control browser history for rich-media websites and applications.
npm i -S hasher
Name
Description
Install
Compatibility
js-signals
similar to an Event Emitter/Dispatcher or a Pub/Sub system
npm i -S signals
Socket.io server
Socket.IO enables real-time bidirectional event-based communication
npm i -S socket.io
Socket.io client
Socket.IO enables real-time bidirectional event-based communication
npm i -S socket.io-client
Spacebro
Server for broadcasting socket.io service
npm i -S spacebro
Spacebro client
Connect thru socket.io with ZeroConf
npm i -S spacebro-client
across-tabs
Easy communication between cross-origin browser tabs
npm i -S across-tabs
Name
Description
Install
Compatibility
PM2
Production process manager for Node.js apps with a built-in load balancer
npm i pm2 -g
forever
A simple CLI tool for ensuring that a given script runs continuously
npm i forever -g
Name
Description
Install
Compatibility
Superagent
small progressive client-side HTTP request library, and Node.js module with the same API, sporting many high-level HTTP client features
npm i -S superagent
Name
Description
Install
Compatibility
Superagent-cache
Superagent with built-in, customizable caching
npm i -S superagent-cache
Name
Description
Install
Compatibility
Native LocalStorage
The localStorage property allows you to access a local Storage object.
Window.localStorage
Lawnchair
Simple json storage
npm i -S lawnchair
Linvodb3
Model-oriented embedded database, inspired by Mongoose & MongoDB, over LevelUP
npm i -S linvodb3
dotenv
Loads environment variables from .env
.
npm i -S dotenv
nconf
Hierarchical node.js configuration with files, environment variables, command-line arguments, and atomic object merging.
npm i -S nconf
vuefire
Firebase bindings for Vue.js
npm i vue firebase vuefire -S
vuex
Centralized State Management for Vue.js
npm i -S vuex
redux
Predictable state container for JavaScript apps
npm i -S redux
store.js
A localStorage wrapper for all browsers without using cookies or flash. Uses localStorage, globalStorage, and userData behavior under the hood
npm i -S store
express-graphql
Create a GraphQL HTTP server with Express
npm i -S express-graphql
Name
Description
Install
Compatibility
node-wpapi
A WordPress REST API client for JavaScript. This library is an isomorphic client for the WordPress REST API, designed to work with WordPress 4.7 or later. If you are using the older WP REST API plugin, some commands will not work.
npm i -S wpapi
json-server
Get a full fake REST API with zero coding in less than 30 seconds (seriously)
npm i json-server -g
Name
Description
Install
Compatibility
react-simple-chatbot
Easy way to create conversation chats
npm i -S react-simple-chatbot
Name
Description
Install
Compatibility
GSAP
Think of GSAP as the Swiss Army Knife of web animation...but better
npm i -S gsap
Tween
Super simple, fast and easy to use tweening engine
npm i -S tween.js
granim.js
Create fluid and interactive gradients animations
npm i -S granim
Lottie
Lottie is an iOS, Android, and React Native library that renders After Effects animations in real time, allowing apps to use animations as easily as they use static images.
Install BodyMovin
barba.js
Create badass, fluid and smooth transition between your website's pages.
npm i -S barba.js
Name
Description
Install
Compatibility
Fabric.js
Play with the canvas. Javascript Canvas Library, SVG-to-Canvas (& canvas-to-SVG) Parser
npm i -S fabric
RgbQuant
Color quantization lib
npm i -S rgbquant
Javascript-Load-Image
JavaScript Load Image is a library to load images provided as File or Blob objects or via URL
npm i -S blueimp-load-image
RetinaJS
Open source script that serves high-resolution images to devices with retina displays
npm i -S retina.js
palette-maker
Palette Maker is an interactive web tool that allows you to explore different approaches to extract color palettes from images
npm i -S palette-maker
qart.js
Generate artistic QR code.
npm i -S qartjs
blurify
Tiny library to blurred pictures, support graceful downgrade from css mode to canvas mode.
npm i -S blurify
dom-to-image
Generates an image from a DOM node using HTML5 canvas
npm i -S dom-to-image
Name
Description
Install
Compatibility
VideoJS
An HTML5 and Flash video player with a common API and skin for both
npm i -S videojs
Name
Description
Install
Compatibility
audio5
Audio5js a library-agnostic, cross-browser Javascript API for HTML5 Audio, with a Flash fallback for either older browsers or modern browsers without MP3 playback support.
npm i -S audio5
webmidi
WebMidi.js helps you tame the Web MIDI API. Send and receive MIDI messages with ease. Control instruments with user-friendly functions (playNote, sendPitchBend, etc.). React to MIDI input with simple event listeners (noteon, pitchbend, controlchange, etc.).
npm i -S webmidi
Name
Description
Install
Compatibility
spacegrid
A no-frills responsive grid layout to help you get started on your next project.
npm i -S spacegrid
Name
Description
Install
Compatibility
rellax
Lightweight, vanilla javascript parallax library
npm i -S rellax
Name
Description
Install
Compatibility
Lory
Touch enabled minimalistic slider written in vanilla JavaScript
npm i -S lory.js
PhotoSwipe
JavaScript image gallery for mobile and desktop, modular, framework independent
npm i -S photoswipe
Swiper
Most modern mobile touch slider with hardware accelerated transitions
npm i -S swiper
Siema
Lightweight and simple carousel with no dependencies
npm i -S siema
Name
Description
Install
Compatibility
spritesheet.js
Command-line spritesheet generator supporting Starling / Sparrow, PIXI.js, Easel.js and cocos2d
spritesheet-js assets/*.png
sprite-anim
Simple spritesheet animation engine.
npm i -S sprite-anim
Name
Description
Install
Compatibility
interact.js
JavaScript drag and drop, resizing and multi-touch gestures with inertia and snapping for modern browsers (and also IE8+).
npm i -S interactjs
Dragula
Drag and drop so simple it hurts
npm i -S dragula
Vue.Draggable
Vue component allowing drag-and-drop sorting in sync with View-Model. Based on Sortable.js
npm i -S vuedraggable
Name
Description
Install
Compatibility
vue-migration-helper
CLI tool to aid in migration from Vue 1.x to 2.0.
npm i -g vue-migration-helper
vue-help
Vue.js API in the Terminal
npm i -g vue-help
Name
Description
Install
Compatibility
nodemailer
Send e-mails from Node.js easy as cake! The community version of Nodemailer is a module for Node.js applications to allow email sending. The project got started back in 2010 when there was no sane option to send email messages, today it is the solution most Node.js users turn to by default.
npm i -S nodemailer
bojler
Bojler is an email framework for developing responsive and lightweight email templates that will render correctly across each of the most popular email clients.
RTFM
Name
Description
Install
Compatibility
Three
JavaScript 3D library
npm i -S three
Β
whitestorm.js
Super-fast 3D framework for web applications and games
npm i -S whs
Pixi
Pixi.js is a fast lightweight 2D library that works across all devices
npm i -S pixi.js
p5.js
p5.js is a JavaScript library that starts with the original goal of Processing, to make coding accessible for artists, designers, educators, and beginners, and reinterprets this for today's web.
npm i -S p5
webgl-heatmap
A high performance WebGL/JS heatmap display library
npm i -S webgl-heatmap
Virtual and Augmented Reality
Name
Description
Install
Compatibility
A-Frame
A web framework for building virtual reality experiences. A-Frame handles the 3D and WebVR boilerplate required to get running across platforms including mobile, desktop, Vive, and Rift.
npm i -S aframe
Β
AR.js
Efficient Augmented Reality for the Web using ARToolKit (a-frame and Three.js compatibilities)
Β
Name
Description
Install
Compatibility
Seriously
A real-time, node-based video effects compositor for the web built with HTML5, Javascript and WebGL
StackBlur
Fast and almost Gaussian blur
npm i -S stackblur-canvas
typewriterjs
A simple yet powerful native javascript plugin for a cool typewriter effect
npm i -S typewriterjs
Name
Description
Install
Compatibility
Html2canvas
The script allows you to take "screenshots" of webpages or parts of it, directly on the users browser
npm i -S html2canvas
Animated_gif
Javascript library for creating animated GIFs
npm i -S animated_gif
Β
CCapture
A library to capture canvas-based animations at a fixed framerate
npm i -S ccapture.js
Videojs-record
video.js plugin for recording audio/video/image files
npm i -S videojs-record
Β
Gif.js
JavaScript GIF encoder that runs in your browser
npm i -S gif.js
Name
Description
Install
Compatibility
vue-picture-input
Mobile-friendly picture file input Vue.js component with image preview, drag and drop, EXIF orientation, and more
npm i -S vue-picture-input
Hammer
A javascript library for multi-touch gestures. You can touch this !
npm i -S hammerjs
Piano
Virtual keyboard for touch devices
npm i -S piano.js
SerialPort2
node.js serial port driver
npm i -S serialport2
USB
Improved USB library for NodeJS
npm i -S usb
Keyboard
Keyboard as an object in the DOM
npm i -S keyboard
Β
Cheet
Easy easter eggs (konami code, etc) for your site
npm i -S cheet.js
Mousetrap
Simple library for handling keyboard shortcuts
npm i -S mousetrap
Hamsterjs
Standalone javascript library for cross-browser mouse wheel support
npm i -S hamsterjs
vue-multiselect
Probably the most complete selecting solution for Vue.js, without jQuery.
npm i -S vue-multiselect
tokenfield
Input field with tagging/token/chip capabilities written in raw JavaScript.
npm i -S tokenfield
vue-flatpickr
Flatpickr for VueJS.
npm i -S vue-flatpickr
Name
Description
Install
Compatibility
WebcamJS
HTML5 Webcam Image Capture Library with Flash Fallback
npm i -S webcamjs
Name
Description
Install
Compatibility
Clmtrackr
Javascript library for precise tracking of facial features via Constrained Local Models
import 'clmtrackr.js'
Β
Jsfeat
JavaScript Computer Vision library
npm i -S clmtrackr.js
Name
Description
Install
Compatibility
fs-extra
Node.js extra methods for the fs object like copy(), remove(), mkdirs()
npm i -S fs-extra
Name
Description
Install
Compatibility
emojione
Emojione is the open emoji standard. The web's first and only complete open source emoji set. It is 100% free and super easy to integrate.
npm i -S emojione
Name
Description
Install
Compatibility
lodash
Rotates the elements of an array in place.
npm i -S lodash
rotate-array
utility library delivering modularity, performance, & extras to play with Arrays, Collection and more
npm i -S rotate-array
Idle.js
Script to create handlers for onIdle onActive onHidden onShow statuses, compatible with <script>
tag and webpack
npm i -S idle-js
StringJS
JavaScript library for the browser or for Node.js that provides extra String methodsΒ
npm i -S string
Β
Offline
Automatically display online/offline indication to your users
PerfectScroll
minimalistic scrollbar plugin working with jQuery or vanilla JavaScript as well.
npm i -S perfect-scrollbar
vue-loop
Infinite content loop for Vue
npm i -S vue-loop
tippyjs
A lightweight, pure JS tooltip library
npm i -S tippy.js
Moment
Parse, validate, manipulate, and display dates in javascript
npm i -S moment
Signature_pad
HTML5 canvas based smooth signature drawing
npm i -S signature_pad
Dat-Gui
A lightweight graphical user interface for changing variables in JavaScript
npm i -S dat-gui
Enquire
a lightweight, pure JavaScript library for responding to CSS media queries
npm i -S enquire.js
Modernizr
Automatically detects the availability of next-generation web technologies in your user's browsers
npm i -S -g modernizr
Verge
Compact set of cross-browser viewport utilities written in native JavaScript
Β npm i -S verge
Β
Sizzle
A pure-JavaScript, bottom-up CSS selector engine designed to be easily dropped in to a host library
npm i -S sizzle
vue-online
A reactive online/offline component for vue.js
npm i --save-dev vue-online
opn
A better node-open. Opens stuff like websites, files, executables. Cross-platform.
npm i -S opn
inquirer.js
A collection of common interactive command line user interfaces.
npm i -S inquirer
deepmerge
A library for deep (recursive) merging of Javascript objects
npm i -S deepmerge
flat
Flatten/unflatten nested Javascript objects
npm i -S flat
q
A promise library for JavaScript
npm i -S q
vue-instantsearch
Algolia components for building search UIs with Vue.js
npm i -S vue-instantsearch
meow
CLI app helper
npm i -S meow
Name
Description
Install
Compatibility
Pdfmake
A lightweight graphical user interface for changing variables in JavaScript
npm i -S pdfmake
pdf-bot
A Node queue API for generating PDFs using headless Chrome. Comes with a CLI, S3 storage and webhooks for notifying subscribers about generated PDFs
npm i -g pdf-bot
Name
Description
Install
Compatibility
Rstats.js
rStats aims to provide a way of measuring and visualizing performance of your code, mainly in apps based on an update loop, like games or interactive experiences.
npm i -S rstats.js
Stats.js
JavaScript Performance Monitor
npm i -S stats.js
Name
Description
Install
Compatibility
Amplitude
A node wrapper for Amplitude analytics
npm i -S amplitude
GATracks
Easily track user events with Google Analytics. Test UI/UX theories, compare client performance/speed, even track client-side errors. All user events are tied to all other session data in Google Analytics.
npm i -S gatrack
Name
Description
Install
Compatibility
Twit
Twitter API client for node (REST & Streaming)
npm i -S twit
Instagram-node
NodeJS driver for the instagram API
npm i -S instagram-node
Fb
With facebook-node-sdk you can now easily write the same code and share between your server (nodejs) and the client (Facebook Javascript SDK)
npm i -S fb
Name
Description
Install
Compatibility
D3
D3 is a JavaScript library for visualizing data using web standards. D3 helps you bring data to life using SVG, Canvas and HTML. D3 combines powerful visualization and interaction techniques with a data-driven approach to DOM manipulation, giving you the full capabilities of modern browsers and the freedom to design the right visual interface for your data.
npm i -S d3
ggraph
Graph visualization of big messy data. This is a library built on top D3 with the goal of improving how we work with large and messy graphs. It extends the notion of nodes and links with groups of nodes. This is useful when multiple nodes are in fact the same thing or belong to the same group.
npm i -S ggraph
dejavue
Visualization and debugging tool built for Vue.js
Chrome Web Store
fmt-obj
Prettifies any javascript object in your console. Make it look awesome!
npm i -S fmt-obj
cli-color
Colors and formatting for the console
npm i -S cli-color
devtool
Runs Node.js programs through Chromium DevTools (using Electron)
npm i -g devtool
vue-trend
Simple, elegant spark lines for Vue.js
npm i -S vuetrend
vue-json-tree-view
A JSON Tree View Component for Vue.js
npm i -S vue-json-tree-view
renderjson
Render JSON into collapsible HTML
npm i -S renderjson
pts
Compose and visualize points in spaces
npm i -S pts
deck.gl
WebGL based visualization layers
npm i -S deck.gl
Name
Description
Install
Compatibility
Mandrill
JS wrapper for mandrill API. Mandrill is a transactional email API for MailChimp users. It's reliable, powerful, and ideal for sending data-driven emails, including targeted e-commerce and personalized one-to-one messages.
npm i -S mandrill-api
download-git-repo
Download and extract a git repository (GitHub, GitLab, Bitbucket) from node.
npm i -S download-git-repo
git-js
A light weight interface for running git commands in any node.js application.
npm i -S simple-git
Name
Description
Install
Compatibility
i18next
internationalization ecosystem framework, i18next is a very popular internationalization library for browser or any other javascript environment (eg. node.js).
npm i -S i18next
vue-i18n
Internationalization plugin of Vue.js
npm i -S vue-i18n
Name
Description
Install
Compatibility
typefaces
NPM packages for Open Source typefaces β making it easier to self-host webfonts.
npm i -S typeface-myopensourcefont
icongram
Icons on the fly
RTFM
inter
The Inter UI font family
RTFM
This is inspired from the list of Soixante Circuits. Most credit goes to them! π