- The Modern Javascript Tutorial
- 2ality - Dr. Axel Rauschmayer
- Modern JavaScript Cheatsheet
- State of JavaScript 2024, State of JavaScript 2023
- JavaScript Tutorial Website
- FreeCodeCamp
- JavaScript Design Patterns – Explained with Examples
- JavaScript Algorithms
- Algorithms in JavaScript with visual examples
- The Vanilla Javascript Repository
- 33 Concepts Every JavaScript Developer Should Know
- JavaScript Rising Stars 2024 your guide to the top trends and projects shaping the JS ecosystem.
The definitive source of the best JavaScript libraries, frameworks, and plugins at JavaScripting.com.
New Language Constructs
Books
- Eloquent JavaScript
- Exploring JavaScript by Dr. Alex
- Deep JavaScript: Theory and techniques
- A Common-Sense Guide to Data Structures and Algorithms in JavaScript, Volume 1 Pragmatic Programmers
- Tackling TypeScript: Upgrading from JavaScript by Dr. Alex
- You might not need jQuery
- Mastering DOM manipulation with vanilla JavaScript
Tools
- Simon Willison's Tools
- ESBuild - An extremely fast JavaScript bundler
- ESLint - The pluggable linting utility for JavaScript and JSX
- JSONLint is an online JSON validator
- Rollup - The JavaScript module bundler.
- RunJS - The JavaScript playground for your desktop
- Sentry - Application monitoring software considered "not bad" by 4 million developers.
- Snowpack - The faster frontend build tool.
- TrackJS makes finding and fixing client-side errors simple.
- Vite - Next Generation Frontend Tooling
- Webpack - At its core, webpack is a static module bundler for modern JavaScript applications.
Video Courses
- Frontend Masters have a lot of good courses both backend and frontend. For JavaScript check out Kyle Simpsons courses
- Pluralsight
- LinkedIn Learning with Lynda.com contains all of the former Lynda.com video training courses.
Libraries
Animation
- AniJS - A Library to Raise your Web Design without Coding.
- Anime.js - A lightweight JavaScript animation library with a simple, yet powerful API.
- Fluor.js - A tiny JavaScript library that provides you with a high-level language to easily add interactions and effects to your websites.
- Rough Notation - A small JavaScript library to create and animate annotations on a web page.
- Snabbt.js - Minimalistic animation library in javascript.
- SVG.js - The lightweight library for manipulating and animating SVG.
- SVG Morpheus - JavaScript library enabling SVG icons to morph from one to the other.
Color
- Spectral is a powerful and versatile JavaScript library designed to deliver realistic color mixing in your web-based projects.
Date & Time
- Spacetime is a date-calculator. It's very small, and very handy.
- Tempo is a new library in a proud tradition of JavaScript date and time libraries. Inspired by the likes of moment.js, day.js, and date-fns.
Diagramming
- Chart.js - Simple yet flexible JavaScript charting library for the modern web.
- RoughViz is a reusable JavaScript library for creating sketchy/hand-drawn styled charts in the browser, based on D3v5, roughjs, and handy.
- Labella.js - Annotate points on a timeline with auto aligned labels.
- Pinker.js - A standalone JavaScript library for rendering code/class diagrams on your web page.
Events
- Nanoevents - Simple and tiny event emitter library for JavaScript.
Graphics
- Compressor - Fast & efficient image compression. Optimize JPEG, PNG, SVG, GIF and WEBP.
- Cropper.js - JavaScript image cropper.
- D3.js - The JavaScript library for bespoke data visualization.
- Josh.js - A JavaScript library to animate content on page scroll.
- LightGallery - A lightweight, modular, JavaScript image and video lightbox gallery plugin. Available for React.js, Vue.js, Angular, and TypeScript.
- Plotly - Built on top of d3.js and stack.gl, Plotly.js is a high-level, declarative charting library.
- Viewer.js - JavaScript image viewer.
- Vis.js - A dynamic, browser based visualization library.
Markdown
- markdown-it - Markdown parser done right. Fast and easy to extend.
Misc
- Camaro is a utility to transform XML to JSON, using Node.js binding to native XML parser pugixml, one of the fastest XML parser around.
- Clipboard.js - Modern copy to clipboard. No Flash. Just 3kb gzipped.
- Collect.js - Convenient and dependency free wrapper for working with arrays and objects.
- Collections - This package contains JavaScript implementations of common data structures with idiomatic iterfaces, including extensions for Array and Object.
- Countable is a JavaScript library to add live paragraph-, word- and character-counting to an HTML element.
- CryptoJS is a growing collection of standard and secure cryptographic algorithms implemented in JavaScript using best practices and patterns.
- CsvBuilder - Easily encode complex JSON objects to CSV with CsvBuilder's schema-like API.
- Diffchecker - Compare text. Find the difference between two texts.
- DocX - Easily generate and modify .docx files with JS/TS. Works for Node and in the Browser.
- Dragula - Drag and drop so simple it hurts.
- ExcellentExport.js - A quick JavaScript library to create export to Excel/CSV from HTML tables in the browser.
- Forge - A native implementation of TLS in Javascript and tools to write crypto-based and network-heavy webapps.
- Highlight.js - The Internet's favorite JavaScript syntax highlighter supporting Node.js and the web.
- Hotkey - Trigger an action on a target element when the hotkey (key or sequence of keys) is pressed on the keyboard.
- Howler.js - Audio library for the modern web. howler.js makes working with audio in JavaScript easy and reliable across all platforms.
- Hyperid - Uber-fast unique id generation, for Node.js and the browser.
- IMask.js - Vanilla javascript input mask.
- Immer is a tiny package that allows you to work with immutable state in a more convenient way.
- Lodash - A modern JavaScript utility library delivering modularity, performance & extras.
- Mapbox - The location platform of choice for developers, automakers, and innovators
- MoveTo - A lightweight scroll animation javascript library without any dependency.
- Nanoid - A tiny (176 bytes), secure, URL-friendly, unique string ID generator for JavaScript.
- Notyf - A minimalistic JavaScript library for toast notifications. Responsive, A11Y, dependency-free.
- Page.js - Tiny Express-inspired client-side router.
- Paged.js is a free and open source JavaScript library that paginates content in the browser to create PDF output from any HTML content.
- Pako - zlib port to javascript, very fast!
- Pandemonium is a dead simple JavaScript/TypeScript library providing typical random-related functions such as choice, sample etc.
- PapaParse - The powerful, in-browser CSV parser for big boys and girls.
- Print.js - A tiny javascript library to help printing from the web.
- Prism is a lightweight, extensible syntax highlighter, built with modern web standards in mind.
- ScrollWatch - Easily add lazy loading, infinite scrolling, or any other dynamic interaction based on scroll position.
- Underscore.js is a JavaScript library that provides a whole mess of useful functional programming helpers without extending any built-in objects.
- Uuid - Generate RFC-compliant UUIDs in JavaScript.
- Vanilla Masker - It's a pure JavaScript mask input. Now you can use a simple and pure javascript lib to mask your input elements.
Numbers
- Complex.js is a well tested JavaScript library to work with complex number arithmetic in JavaScript.
- Currency.js - is a lightweight ~1kb javascript library for working with currency values. It was built to work around floating point issues in javascript.
- Decimal.js - An arbitrary-precision Decimal type for JavaScript.
- Dinero.js lets you create, calculate, and format money safely in JavaScript and TypeScript.
- Fraction.js - For applications requiring higher precision or where working with fractions is preferable, consider incorporating Fraction.js into your project.
- Math.js - An extensive math library for JavaScript and Node.js.
- Money.js - Simple JavaScript currency conversion library with no dependencies, in just over 1 kb.
Persistence
- LocalForage is a fast and simple storage library for JavaScript.
- LowDB - Simple to use local JSON database. Powered by plain JavaScript.
- PouchDB is an open-source JavaScript database inspired by Apache CouchDB that is designed to run well within the browser.
- RxDB - The local Database for JavaScript Applications.
Search
- AutoComplete.js is a simple, pure vanilla Javascript library progressively designed for speed, high versatility, and seamless integration.
- Awesomplete - Ultra lightweight, customizable, simple autocomplete widget with zero dependencies, built with modern standards for modern browsers.
State & Stores
- Nano Stores - A tiny state manager for React, React Native, Preact, Vue, Svelte, Solid, Lit, Angular, and vanilla JS. It uses many atomic stores and direct manipulation.
- Valtio - Proxy state made simple.
- XState is a state management and orchestration solution for JavaScript and TypeScript apps. It has zero dependencies, and is useful for frontend and backend application logic.
Tools
- Reveal.js is an open source HTML presentation framework. It's a tool that enables anyone with a web browser to create fully-featured and beautiful presentations for free.
- Slides.js - Create exceptional slide decks in half the time using intuitive design tools and machine learning. Present remotely or on-site.
Widgets
- AG Grid - The professional choice for developers building enterprise applications
- Choises - A vanilla, lightweight, configurable select box/text input plugin. Similar to Select2 and Selectize but without the jQuery dependency.
- CKEditor - Provides every type of WYSIWYG editing solution imaginable.
- Editor.js - Free block-style editor with a universal JSON output.
- Embla Carousel - A lightweight carousel library with fluid motion and great swipe precision.
- Flatpickr is a lightweight and powerful datetime picker.
- Flip Flip is the most advanced Flip counter plugin available on the web.
- Flippant.js - A mini js+css library for flipping things over.
- FullCalendar - The Most Popular JavaScript Calendar.
- Glide - A dependency-free JavaScript ES6 slider and carousel. It’s lightweight, flexible and fast. Designed to slide.
- Glider.js - A blazingly fast, crazy small, fully responsive, mobile-friendly, dependency free, native scrolling list with paging controls!
- Gmaps.js - llows you to use the potential of Google Maps in a simple way.
- Grid.js is a Free and open-source JavaScript table plugin.
- Handsontable - A front-end component that combines data grid features with spreadsheet UX/UI.
- Inspire Tree - A lean, clean, blazing fast javascript tree.
- ItemSlide - JavaScript Carousel Library.
- Ladda - Buttons with built-in loading indicators.
- List.js - Tiny, invisible and simple, yet powerful and incredibly fast vanilla JavaScript that adds search, sort, filters and flexibility to plain HTML lists, tables, or anything.
- Masonry - is a JavaScript grid layout library. It works by placing elements in optimal position based on available vertical space, sort of like a mason fitting stones in a wall.
- Micromodal.js is a lightweight, configurable and a11y-enabled modal library written in pure JavaScript.
- Muuri - Infinite layouts with batteries included.
- NProgress.js - A nanoscopic progress bar. Featuring realistic trickle animations to convince your users that something is happening!
- Notie is a clean and simple notification, input, and selection suite for javascript, with no dependencies.
- Pace - Automatic page load progress bar.
- PhotoSwipe - JavaScript image gallery and lightbox.
- Pickr - Flat, simple, multi-themed, responsive and hackable Color-Picker library. No dependencies.
- Progressbar.js - With ProgressBar.js, it's easy to create responsive and stylish progress bars for the web. Animations perform well even on mobile devices.
- RModal.js - A simple modal dialog with no external dependencies.
- Redactor - Ultra-modern, AI-powered text editor with robust API capabilities, a wide range of settings, good documentation, and tons of integration examples.
- Rome - Customizable date (and time) picker.
- Rough.js is a small graphics library that lets you draw in a sketchy, hand-drawn-like, style. The library defines primitives to draw lines, curves, arcs, polygons, circles, and ellipses.
- Signature Pad is a JavaScript library for drawing smooth signatures.
- Simple Data Table - Lightweight and simple data table with no dependencies.
- Simple Keyboard - The modern virtual keyboard for Javascript. Compatible with your JS, React, Angular or Vue projects.
- Simple-Slider - Extremely lightweight JavaScript carousel micro library.
- Spin.js dynamically creates spinning activity indicators that can be used as a resolution-independent replacement for loading GIFs.
- Split.js - Unopinionated utilities for resizeable split views.
- Sweetalert - A beautiful, responsive, customizable, accessible (WAI-ARIA) replacement for JavaScript popup boxes.
- Swiper is the most modern free and open source mobile touch slider with hardware accelerated transitions and amazing native behavior.
- Switchery - iOS 7 style switches for your checkboxes.
- Tabulator - Easy to use, simple to code, fully featured, interactive JavaScript tables and data grids.
- Tagger - Zero dependency, Vanilla JavaScript Tag Editor.
- Tagify - Transforms an input field or a textarea into a Tags component, in an easy, customizable way, with great performance and small code footprint.
- Telephone Input - A JavaScript plugin for entering and validating international telephone numbers.
- Tippy.js is the complete tooltip, popover, dropdown, and menu solution for the web, powered by Popper.
- Toast UI - JavaScript UI library and free open source project constantly managed by NHN Cloud.
- Toast UI Calendar - The Calendar supports monthly, weekly, daily views and more, and you can create or edit your event with a simple dragging motion.
- Toast UI Editor - The Editor allows you to edit your Markdown documents using text or WYSIWYG and comes with Syntax Highlighting, Scroll-Sync, Live Preview, and Chart features.
- Trix is a WYSIWYG editor for writing messages, comments, articles, and lists—the simple documents most web apps are made of.
- Typeahead.js - A flexible JavaScript library that provides a strong foundation for building robust typeaheads.
- uPlot - A small (~45 KB min), fast chart for time series, lines, areas, ohlc & bars.
- Uppload is a better JavaScript image uploader. It’s highly customizable with 30+ plugins, completely free and open-source, and can be used with any file uploading backend.
- Uppy - Sleek, modular open source JavaScript file uploader.
- Wijmo - With Wijmo, you can focus more on your application's core functionality by using our dynamic, lightweight JavaScript component library.
- Wired Elements - A set of common UI elements with a hand-drawn, sketchy look.