Browse free open source JavaScript Libraries and projects below. Use the toggles on the left to filter open source JavaScript Libraries by OS, license, language, programming language, and project status.

  • $300 Free Credits to Build on Google Cloud Icon
    $300 Free Credits to Build on Google Cloud

    New customers can spin up VMs, build with AI, and query data at no cost.

    Put your $300 in credit toward real workloads, then keep building with free monthly usage for 20+ products. No commitment and no charge until you upgrade.
    Start Free
  • Custom VMs From 1 to 96 vCPUs With 99.95% Uptime Icon
    Custom VMs From 1 to 96 vCPUs With 99.95% Uptime

    General-purpose, compute-optimized, or GPU/TPU-accelerated. Built to your exact specs.

    Live migration and automatic failover keep workloads online through maintenance. One free e2-micro VM every month.
    Start Free
  • 1
    SiriWave

    SiriWave

    The Apple® Siri wave-form replicated in a JS library

    The "Apple Siri" wave is replicated in pure Javascript using the Canvas API. To learn more about the project, read the blog post, and check the demo or code pen. Import the UMD package via the unpkg CDN and it's ready to use. Create a div container and instantiate a new SiriWave object. Stop the animation and destroy the canvas, by removing it from the DOM. Subsequent start() calls on this SiriWave instance will fail with an exception.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 2
    Sizzle

    Sizzle

    A sizzlin' hot selector engine

    A pure-JavaScript CSS selector engine designed to be easily dropped in to a host library. Browser support may differ between standalone Sizzle and libraries that include Sizzle. Please report issues on Sizzle's issue tracker, rather than the trackers for disparate libraries. In order to build Sizzle, you should have Node.js/npm latest and git 1.7 or later (earlier versions might work OK, but are not tested). For Windows you have to download and install git and Node.js. Mac OS users should install Homebrew. Once Homebrew is installed, run brew install git to install git, and brew install node to install Node.js. Linux/BSD users should use their appropriate package managers to install git and Node.js, or build from source if you swing that way. Workarounds for Internet Explorer 6 are still in the code but the browser is no longer actively tested. Sizzle supports virtually all CSS 3 Selectors, including escaped selectors (.foo\+bar), Unicode selectors, and more.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 3
    SlimMVC.js

    SlimMVC.js

    Your Slim MVC JavaScript

    A simple JavaScript framework to implement MVC pattern and safe against XSS attacks using nodeValue property rather innerHTML.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 4
    Smoothie Charts

    Smoothie Charts

    Smooth JavaScript charts for realtime streaming data

    Smoothie Charts is a small JavaScript charting library built for real-time streaming data. It focuses on smooth live updates instead of charts that visibly jump every time new data arrives. Developers can create a TimeSeries object, attach it to a SmoothieChart, and stream the chart into an HTML canvas element. Data points can be appended continuously, making it useful for dashboards, monitoring tools, server metrics, sensors, and other live feeds. The project includes examples, documentation, an interactive builder, and installation options through npm, Yarn, Bower, or direct JavaScript usage. Overall, it is a lightweight option for adding fluid, browser-based streaming charts.
    Downloads: 0 This Week
    Last Update:
    See Project
  • Build Agents and Models on One Platform Icon
    Build Agents and Models on One Platform

    Everything you need to build production-ready agents and models. Access 200+ Google and third-party AI models and tools.

    Gemini Enterprise Agent Platform is Google Cloud's comprehensive platform for developers to build, scale, govern, and optimize agents and models. Choose from Google's most advanced models and third-party models like Anthropic's Claude Model Family.
    Start Free
  • 5
    Snap.js

    Snap.js

    A Library for creating beautiful mobile shelfs in Javascript

    A Library for creating beautiful mobile shelfs in Javascript. As standalone just include the file in a script tag. The slide intent is an int between 0 and 90, and represents the degrees in the first quadrant of a circle that you would like to have mirrored on the X and Y axis. For example, if you have 40 set as your slideIntent value, the user would only be able to slide the pane by dragging in the blue area in the diagram below. Once intent has been defined, it will not change until the user releases. CSS3 Powered Animations with IE fallbacks, drag support, drag handle support. Programatic API, "No-Drag" elements, and definable easing mode. Enable/disable events, disabled sides (left or right). It supports Ratchet (with templates!). Because of the nature of this code, drawers are just kind of stacked behind the content. To bring the proper drawer to the front, you can hook into Snaps.js' CSS classes.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 6
    Solved by Flexbox

    Solved by Flexbox

    A showcase of problems once hard or impossible to solve with CSS

    Solved by Flexbox is a collection of layout patterns that demonstrates how CSS Flexbox elegantly resolves classic web design problems. It tackles everyday challenges—vertical centering, equal-height columns, sticky footers, fluid media, and responsive grids—showing concise, production-ready CSS instead of elaborate hacks. Each pattern is presented with plain HTML, clear commentary, and minimal styling, making the underlying technique easy to adapt and extend. The project emphasizes progressive enhancement and calls out where fallbacks or browser caveats may apply, reflecting the realities of shipping layouts on the web. Even as CSS Grid gained traction, the patterns remain a practical reference for component-level alignment and one-dimensional layouts where Flexbox excels. As a teaching resource, it has helped countless developers internalize Flexbox mental models and replace brittle layout tricks with robust, modern CSS.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 7
    Source Map Support

    Source Map Support

    Adds source map support to node.js (for stack traces)

    Source Map Support is a Node.js module that enhances stack traces for transpiled or bundled JavaScript by resolving them back to the original source files using source maps. When code is compiled from TypeScript, CoffeeScript, Babel, or bundlers like Webpack, errors normally point to the generated code; this module intercepts V8’s stack trace API and remaps paths and line numbers to their original locations. The output closely mimics Node’s native stack format, so it feels like standard stack traces—but with your original source filenames and line numbers instead of opaque build artifacts. It’s designed to be easy to enable: you can require it programmatically or load it via a register hook so that all subsequent errors benefit. Because it relies on the source-map library, it works across a wide range of build systems that emit standard source maps.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 8
    Spectacle

    Spectacle

    A ReactJS based Presentation Library

    Spectacle is an open source presentation library based on React.js. It lets you create sleek presentations using JSX syntax, giving you the ability to live demo your code. Spectacle’s presentations are lively and interactive, with clickable elements, themes, custom backgrounds, animations, and many other fun and unique elements you can add to make your presentations pop. With Spectacle you can also live demo your code in real time without having to leave the presentation deck. Code blocks conveniently auto-size and scroll when there is an overflow of content. See the live demo deck at: https://raw.githack.com/FormidableLabs/spectacle/main/examples/one-page.html
    Downloads: 0 This Week
    Last Update:
    See Project
  • 9

    Speedy Composer

    Speedy Composer – Artificial Neural Network Melody Composer.

    Thank you for your interest in Speedy Composer. Speedy Composer is an automated application for composing melodies for Speedy Net members. We recently made changes to the source code of Speedy Net, and converted it into the Python language and Django framework. Since Speedy Composer was originally written in PHP, it is not adapted to work with Speedy Net in its current form. So unfortunately we were forced to temporarily close the app Speedy Composer. But don't worry, we kept backups of all the tunes composed by Speedy Composer, and when the website is reopened we will upload them to the new site. Speedy Composer and Speedy Net are open source applications, free software. We are currently looking for volunteers to help us convert Speedy Composer to Python. If you are interested in volunteering, please contact me by email. Thank you and good luck, Uri Rodberg Founder and Director of Speedy Net and Speedy Composer, Speedy Paz Technologies Ltd. uri@speedy.net
    Downloads: 0 This Week
    Last Update:
    See Project
  • One Monitoring Tool for IT, OT and Cloud | Free Trial Icon
    One Monitoring Tool for IT, OT and Cloud | Free Trial

    Vendor-agnostic monitoring across on-prem servers, cloud platforms and OT devices, all in one dashboard. No more tool sprawl.

    Modern infrastructure spans data centers, cloud platforms and factory floors, and every blind spot between them is a risk. PRTG supports SNMP, WMI, SSH and other standard protocols to monitor IT, OT and hybrid environments through one customizable dashboard. Build the views your team needs, from network health to application performance, without switching tools. Try PRTG free for 30 days now.
    Try PRTG Free
  • 10
    Sprint.js

    Sprint.js

    A tiny, lightning fast jQuery-like library for modern browsers

    Sprint is a lightweight DOM manipulation library that provides a familiar jQuery-style interface for modern browsers. Its compressed footprint is about 5 KB, making it useful where bandwidth and JavaScript parsing costs matter. The library exposes a chainable API for selecting elements, changing classes and attributes, manipulating content, traversing the DOM, and handling events. Most method names intentionally mirror jQuery so developers familiar with that library can adapt quickly. Sprint relies on newer native browser APIs and targets environments from Internet Explorer 10 onward rather than maintaining compatibility with much older browsers. Its reduced scope allows faster parsing and execution than the much larger jQuery library in the benchmarks documented by the project. Sprint is positioned as a thin, performance-oriented alternative for projects that only need common DOM operations, not as a complete jQuery replacement.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 11
    State Transition Plugin for Phaser

    State Transition Plugin for Phaser

    State transition plugin for Phaser.js

    Phaser State Transition is a plugin that facilitates smooth transitions between game states in Phaser. It allows developers to define custom animations and easing functions when switching scenes, enhancing the visual flow of games.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 12
    StatechartJS

    StatechartJS

    Statechart implementation in JavaScript.

    Hierarchical state machines implementation in JavaScript heavily inspired by the QP active object framework, see http://www.state-machine.com/. See the README file for details. The implementation is JavaScript engine agnostic and works both in browsers and in NodeJS.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 13
    Sticky Sidebar

    Sticky Sidebar

    Pure JavaScript tool for making smart and high performance bar

    Sticky Sidebar ⬆⬇ is a pure JavaScript plugin for making smart and high-performance sticky sidebar, works with the sidebar if it’s taller or shorter than the viewport, is integrated with a resize sensor to re-calculate the dimensions automatically when the size of the sidebar or its container is changed, supports jQuery/Zepto and compatible with Firefox, Chrome, Safari, and IE9+. The source can be found on GitHub.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 14
    Subspace

    Subspace

    Library for Reactive Dapp Development with auto syncing

    Subspace is a framework agnostic JS library that embraces reactive programming with RxJS, by observing asynchronous changes in Smart Contracts, and providing methods to track and subscribe to events, changes to the state of contracts and address balances, and react to these changes and events via observables. Subspace also takes care of syncing under the hood, saving & loading the state in a local database. Methods are provided to track and subscribe to events, contract & state balances, and react to changes via observables. No matter your favorite JS framework, you can use Subspace to simplify your development process. It works with React or Angular in the browser, and of course plays well with nodejs. Subspace saves state to a local database ensuring your dApp always syncs from the last known point, even after reload.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 15
    Substance.js

    Substance.js

    A JavaScript library for web-based content editing

    A JavaScript library for web-based content editing. Substance is a JavaScript library for web-based content editing. It provides building blocks for realizing custom text editors and a web-based publishing systems. It is developed to power our online editing platform Substance. The test suite is rebuilt as you make changes to the source files.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 16
    Sugar

    Sugar

    A Javascript library for working with native objects

    A straightforward API makes Sugar very easy to pick up and start using. Custom builds and modularized npm packages let you use only what you need. Users can define methods or use plugins to handle specialized use cases. The date module parses, formats, and manipulates dates and supports many locales. Sugar blends in with native methods, and defers to their implementations when possible. A comprehensive polyfill suite patches browser support when it is broken or missing. As of v2.0, native extension has become opt-in while supporting two new ways of interacting with the library. Sugar still believes in the safe extension of natives, however there are times when this is not appropriate, and this choice is now put in the hands of the user. Custom browser builds can be created on the site download page. In addition, tools like Browserify can also be used to create custom builds, as npm packages are now fully modular.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 17
    Sulla

    Sulla

    Javascript Whatsapp API library for chatbots

    Sulla is a javascript library that provides a high-level API control to Whatsapp so it can be configured to automatize responses or any data that goes through Whatsapp effortlessly. As of version 2.3.5 it seems that sulla has reached a very rich and stable functionality and architecture. As much as I would love to, I cannot dedicate a lot of time to this project so please consider checking out forked versions of sulla where other developers can dedicate more time and support to it. After executing create() function, sulla will create an instance of WhatsApp web. If you are not logged in, it will print a QR code in the terminal. Scan it with your phone and you are ready to go! Sulla will remember the session so there is no need to authenticate every time. By default QR code will appear on the terminal. The decryption is being done as fast as possible (outruns native methods). Supports big files!
    Downloads: 0 This Week
    Last Update:
    See Project
  • 18
    SunCalc

    SunCalc

    A tiny JavaScript library for calculating sun/moon positions

    SunCalc is a tiny dependency-free JavaScript library for calculating solar and lunar information for any location and time. It provides sun altitude and azimuth together with sunrise, sunset, twilight, and other sunlight phases. Moon calculations include position, rise and set times, distance, and illuminated phase. Version 2 rebuilt the astronomy around higher-order models from Jean Meeus and validates results against authoritative astronomical references. Typical rise and set errors are around 15 seconds, with substantially improved positional accuracy over the earlier release. It ships as a modern ES module while retaining bundled support for CommonJS and direct browser use.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 19
    SuperAgent

    SuperAgent

    Ajax for Node.js and browsers (JS HTTP client)

    SuperAgent is light-weight progressive ajax API crafted for flexibility, readability, and a low learning curve after being frustrated with many of the existing request APIs. It also works with Node.js! Small progressive client-side HTTP request library, and Node.js module with the same API, supporting many high-level HTTP client features. Browser-ready versions of this module are available via jsdelivr, unpkg, and also in the node_modules/superagent/dist folder in downloads of the superagent package. If you are using browserify, webpack, rollup, or another bundler, then you can follow the same usage as Node. SuperAgent is easily extended via plugins. The Node client supports making requests to Unix Domain Sockets. DELETE, HEAD, PATCH, POST, and PUT requests can also be used, simply change the method name. Absolute URLs can be used. In web browsers absolute URLs work only if the server implements CORS.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 20
    Superfine

    Superfine

    Absolutely minimal view layer for building web interfaces

    Superfine is a minimal view layer for building web interfaces. Think Hyperapp without the framework—no state machines, effects, or subscriptions, just the absolute bare minimum (1 kB minified+gzipped). Mix it with your favorite state management library or use it standalone for maximum flexibility. When describing how a page looks in Superfine, we don't write markup. Instead, we use the h() and text() functions to create a lightweight representation of the DOM (or virtual DOM for short), and patch() to actually render the DOM. Superfine won't re-create the entire DOM every time we use patch(). By comparing the old and new virtual DOM we are able to change only the parts of the DOM that need to change instead of rendering everything from scratch.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 21
    Svelte forms lib

    Svelte forms lib

    A lightweight library for managing forms in Svelte

    Svelte Forms lib is a Formik-inspired library for building forms easily in a Svelte project. When building modern web applications forms often play a big part in it. We use forms to log in, place orders, book flights and perform other data-entry tasks. In developing a form, it's important to create a flow that guides the user efficiently and effectively through the workflow. This library helps you build forms by exposing an easy API for form creation, validation and submission.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 22
    Swagger Injector

    Swagger Injector

    Delivering swagger docs through Node middleware

    Adaptation of swagger UI to render the swagger view of a server's swagger documentation for a specified route.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 23
    SweetModal

    SweetModal

    The sweetest library to happen to modals.

    The sweetest library to happen to modals, is now available for Vue.js.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 24
    Swig

    Swig

    Take a swig of the best template engine for JavaScript

    Swig is an archived JavaScript template engine inspired by Django and Jinja syntax. It renders templates in Node.js and major web browsers and can integrate with Express applications. Developers can use inheritance, includes, variables, filters, loops, conditionals, and other familiar template constructs. Automatic output escaping helps produce safer HTML by default. The engine can be extended with custom filters, tags, and related extras to support application-specific behavior. It was designed to remain compact while offering a full set of server-side rendering conveniences. The repository was archived in 2018 and is no longer maintained, so it is best suited to legacy applications, migration work, or historical study.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 25
    Swing

    Swing

    A swipeable cards interface

    Swing is a JavaScript library designed to create realistic swipeable card interfaces similar to those popularized by dating applications. It provides physics-based animations that simulate natural movement when users drag and release cards, enhancing user interaction and engagement. The library allows developers to build interfaces where elements can be swiped left, right, or in other directions, triggering specific actions. It is highly customizable, enabling control over thresholds, directions, and animation behavior. Swing is lightweight and framework-agnostic, making it easy to integrate into different web projects without heavy dependencies. It is commonly used for building interactive UI components such as recommendation systems or decision-based interfaces. Overall, swing offers a simple yet powerful way to implement gesture-driven interactions in web applications.
    Downloads: 0 This Week
    Last Update:
    See Project