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.

  • MongoDB Atlas runs apps anywhere Icon
    MongoDB Atlas runs apps anywhere

    Deploy in 115+ regions with the modern database for every enterprise.

    MongoDB Atlas gives you the freedom to build and run modern applications anywhere—across AWS, Azure, and Google Cloud. With global availability in over 115 regions, Atlas lets you deploy close to your users, meet compliance needs, and scale with confidence across any geography.
    Start Free
  • Forever Free Full-Stack Observability | Grafana Cloud Icon
    Forever Free Full-Stack Observability | Grafana Cloud

    Our generous forever free tier includes the full platform, including the AI Assistant, for 3 users with 10k metrics, 50GB logs, and 50GB traces.

    Built on open standards like Prometheus and OpenTelemetry, Grafana Cloud includes Kubernetes Monitoring, Application Observability, Incident Response, plus the AI-powered Grafana Assistant. Get started with our generous free tier today.
    Create free account
  • 1
    Dexie.js

    Dexie.js

    A Minimalistic Wrapper for IndexedDB

    Dexie was written to be straightforward and easy to learn. If you've ever had to work with native IndexedDB then you'll certainly appreciate Dexie's concise API. What good is any development tool without great documentation? Dexie is thoroughly explained, and examples are available to help you on your way. Dexie has near-native performance. Its bulk operations utilize an often-overlooked feature in IndexedDB, ignoring success callbacks when possible. Offline databases are groovy! But without keeping the database in sync with a server, you're missing a great deal. Dexie.js solves these limitations and provides a neat database API. Dexie.js aims to be the first-hand choice of a IDB Wrapper Library due to its well thought-through API design, robust error handling, extendability, change tracking awareness and its extended KeyRange support (case insensitive search, set matches and or operations).
    Downloads: 4 This Week
    Last Update:
    See Project
  • 2
    Hiring Without Whiteboards

    Hiring Without Whiteboards

    Companies that don't have a broken hiring process

    Hiring-without-whiteboards is a curated list of companies and teams that avoid traditional "whiteboard" interviews, instead focusing on realistic and practical evaluation methods. In this context, "whiteboards" symbolizes outdated or unhelpful computer science trivia questions often criticized in technical interviews. The project highlights organizations that emphasize interviewing techniques more aligned with actual day-to-day work, such as collaborative problem-solving, pair programming, or take-home assignments. It encourages a shift away from brainteasers, riddles, or puzzle-based interviews, which can create unnecessary barriers for candidates. The repository not only provides a resource for job seekers looking for fairer interview processes but also offers guidance for companies seeking to improve their hiring practices. With community contributions, it continues to grow as a reference for employers and applicants who value practical, respectful, & effective technical evaluation.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 3
    Hotkeys JS

    Hotkeys JS

    A robust Javascript library for capturing keyboard input

    hotkeys-js is a tiny, framework-agnostic library for binding keyboard shortcuts in the browser, from simple key presses to complex combos and sequences. It provides a declarative API to register handlers like ctrl+k, shift+alt+p, or g g, and it normalizes key behavior across major browsers. The library includes scoping, so the same shortcut can trigger different actions depending on page context, and it offers filters to ignore inputs when the user is typing in form fields. You can enable or disable groups of shortcuts dynamically, making it well suited for SPAs and dashboard apps. Because it has no external dependencies and a small footprint, it drops easily into existing codebases. Its focus on developer ergonomics makes defining, managing, and cleaning up shortcuts straightforward.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 4
    Kendo UI Core

    Kendo UI Core

    An HTML5, jQuery-based widget library for building modern web apps

    Kendo UI is everything you need to build sites and apps with HTML5 & JavaScript. Kendo UI Core is the free and open-source version of Kendo UI that provides access to the web's best UI widgets and key framework features, essential for developing great experiences for the web and mobile. Kendo UI Core is a free and open-source subset of Kendo UI. The following table details the widgets and features available in Kendo UI Core, as well as the additional features available via a commercial Kendo UI license.
    Downloads: 4 This Week
    Last Update:
    See Project
  • Gemini 3 and 200+ AI Models on One Platform Icon
    Gemini 3 and 200+ AI Models on One Platform

    Access Google's best plus Claude, Llama, and Gemma. Fine-tune and deploy from one console.

    Build generative AI apps with Vertex AI. Switch between models without switching platforms.
    Start Free
  • 5
    MatCaps

    MatCaps

    Huge library of matcap PNG textures organized by color

    Matcaps is a comprehensive library of matcap (material capture) PNG textures organized by color, providing artists and developers with a wide range of materials for 3D modeling and rendering. Matcaps simplifies the process of applying consistent and realistic materials to 3D models, enhancing visual quality without the need for complex shader setups.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 6
    Pannellum

    Pannellum

    Pannellum is a lightweight, free, and open source panorama viewer

    Pannellum is a lightweight, free, and open source panorama viewer for the web. Built using HTML5, CSS3, JavaScript, and WebGL, it is plug-in free. It can be deployed easily as a single file, just 21kB gzipped, and then embedded into pages as an <iframe>. A configuration utility is included to generate the required code for embedding. An API is included for more advanced integrations.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 7

    Polymer

    A Web Component library

    Polymer is a lightweight Web Components library that lets you create encapsulated Web Components that work just like standard HTML elements. These elements can be used in building web applications and are reusable. Polymer can be particularly useful when building UI components. Instead of having to constantly rebuild components such as a specific navigation bar or button in different frameworks and for different projects, simply define this component once with Polymer, and you can use it again and again in your future projects. Because Polymer is built on top of the web standards-based Web Components APIs, custom HTML elements made from it are built totally from the platform up and are interoperable across frameworks. Polymer also works across all major browsers.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 8
    Remote Jobs

    Remote Jobs

    A list of semi to fully remote-friendly companies (jobs) in tech

    Remote Jobs is a community-curated, open source repository that lists companies around the world that support remote work. Each entry describes a company, whether it’s fully remote or partially remote, what regions they hire in, and links to their career pages. The repo serves as a living directory for job seekers looking for remote-friendly employers and for companies wishing to be listed. Contributions are encouraged via pull requests, with guidelines to keep information accurate and up to date.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 9
    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: 4 This Week
    Last Update:
    See Project
  • 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.
    Try Free
  • 10
    SurveyJS

    SurveyJS

    JavaScript Survey and Form Library

    SurveyJS Form Library is distributed as npm packages and as scripts and style sheets that you can reference on your page. You can use it in any React, Angular, Vue, Knockout, or jQuery application. React, Angular, Knockout, and Vue3 are supported natively. To communicate with the server, the libraries use JSON objects that represent form schemas (content and layout of a form) and form results (answers). You have the option to build dynamic JSON-driven forms using our free full-featured form builder demo available on the website. Alternatively, you can integrate the form builder library and create forms using a drag-and-drop UI directly within your own application. With years of development and support behind us, we've assisted hundreds of companies across various industries. With Survey, you can create nearly anything that popular cloud services offer. Furthermore, our library is fully extensible, allowing you to modify its behavior to suit your specific needs.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 11
    Zip.js

    Zip.js

    JavaScript library to zip and unzip files

    Zip.js is a JavaScript library for creating, reading, and editing ZIP files directly in the browser or in Node.js environments, supporting various compression methods and encryption.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 12
    90s Cursor Effects

    90s Cursor Effects

    Old-school cursor effects for your browser built with modern JS

    "Knowing the codes" used to be all the rage, I want to bring a few back. A repo of the old effects that inspired creativity and the desire to learn at least a little code around the world. Modernized so they're a little more efficient, and just as annoying (and twice as fun) as they were before.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 13
    Express ES2017 REST API Boilerplate

    Express ES2017 REST API Boilerplate

    Express starter for building RESTful APIs

    A boilerplate for building RESTful APIs with Node.js and Express, providing a pre-configured structure for efficient backend development.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 14
    Facebox

    Facebox

    Facebook-style lightbox, built in jQuery

    Facebox is a jQuery-based lightbox plugin designed to display content in a modal overlay on top of a webpage. It allows developers to present images, HTML content, or remote data in a visually appealing popup without navigating away from the current page. The plugin is inspired by early lightbox implementations and focuses on simplicity and ease of integration into existing web projects. It provides a clean user experience by dimming the background and highlighting the modal content, drawing attention to the displayed information. Facebox supports loading content via AJAX, making it useful for dynamic applications where content is fetched on demand. It also includes basic styling and animation effects to enhance usability and presentation.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 15
    FastClick

    FastClick

    Easy-to-use library to remove click delays on browsers with touch UIs

    FastClick is a simple, easy-to-use library for eliminating the 300ms delay between a physical tap and the firing of a click event on mobile browsers. The aim is to make your application feel less laggy and more responsive while avoiding any interference with your current logic. FastClick is developed by FT Labs, part of the Financial Times. Note: As of late 2015 most mobile browsers - notably Chrome and Safari - no longer have a 300ms touch delay, so fastclick offers no benefit on newer browsers, and risks introducing bugs into your application. Consider carefully whether you really need to use it. The library has been deployed as part of the FT Web App. FastClick doesn't attach any listeners on desktop browsers.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 16
    JsStore

    JsStore

    A complete IndexedDB wrapper with SQL like syntax

    Execute Database operation in browsers with JsStore. JsStore is an indexedDB wrapper. It makes IndexedDB super easy with its SQL-like APIs. Harness the power of JsStore to streamline database operations in your web applications. With its SQL-like API, JsStore simplifies IndexedDB interactions, enabling developers to easily query, filter, and manipulate data with familiar syntax and efficiency.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 17
    Jspreadsheet CE

    Jspreadsheet CE

    Javascript plugin to create web-based tables & spreadsheets

    Jspreadsheet CE is a lightweight Vanilla JavaScript data grid plugin to create amazing web-based interactive HTML tables, and spreadsheets compatible data grid with other spreadsheet software. You can create an online spreadsheet table from a JS array, JSON, CSV or XSLX files. You can copy from excel and paste straight to your Jspreadsheet CE spreadsheet and vice versa. It is very easy to integrate any third party JavaScript plugins to create your own custom columns, custom editors, and customize any feature into your application. Jspreadsheet CE has plenty of different input options through its native column types to cover the most common web-based application requirements. It is a complete solution for web data management. Create amazing applications with Jspreadsheet CE JavaScript spreadsheet.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 18
    NN-SVG

    NN-SVG

    Publication-ready NN-architecture schematics

    Illustrations of Neural Network architectures are often time-consuming to produce, and machine learning researchers all too often find themselves constructing these diagrams from scratch by hand. NN-SVG is a tool for creating Neural Network (NN) architecture drawings parametrically rather than manually. It also provides the ability to export those drawings to Scalable Vector Graphics (SVG) files, suitable for inclusion in academic papers or web pages. The tool provides the ability to generate figures of three kinds: classic Fully-Connected Neural Network (FCNN) figures, Convolutional Neural Network (CNN) figures of the sort introduced in the LeNet paper, and Deep Neural Network figures following the style introduced in the AlexNet paper. The former two are accomplished using the D3 javascript library and the latter with the javascript library Three.js. NN-SVG provides the ability to style the figure to the user's liking via many size, color, and layout parameters.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 19
    NanoNeuron

    NanoNeuron

    NanoNeuron is 7 simple JavaScript functions

    Nano-Neuron is a didactic project that reduces the idea of a neuron to a handful of tiny JavaScript functions so learners can see “learning” in action without heavy frameworks. It demonstrates how a scalar input can be linearly transformed with a weight and bias, then adjusted via gradient updates to fit a simple mapping such as Celsius-to-Fahrenheit conversion. The code emphasizes readability over performance, inviting you to step through calculations and watch parameters converge. Because every concept is expressed in a few lines, it’s easy to tinker—change learning rates, swap cost functions, or visualize error curves. The repository bridges the gap between formulae and intuition by making each update transparent and observable. It’s ideal for absolute beginners who want to internalize core ideas before moving on to multi-layer networks and libraries.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 20
    Node RDKafka

    Node RDKafka

    Node.js bindings for librdkafka

    A high-performance Node.js client for Apache Kafka, built on top of librdkafka, providing bindings for efficient Kafka message processing.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 21
    Pac-Man

    Pac-Man

    Pac-Man game written in HTML5 + CSS3 + jQuery with Canvas

    Pac-Man game written in HTML5 + CSS3 + jQuery with Canvas. This WebApp is a Responsive Web Design (RWD) website.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 22
    Prism

    Prism

    Lightweight, robust, elegant syntax highlighting

    Prism is a lightweight, extensible syntax highlighter, built with modern web standards in mind. It’s used in millions of websites, including some of those you visit daily.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 23
    Reselect

    Reselect

    Selector library for Redux

    Simple “selector” library for Redux (and others) inspired by getters in NuclearJS, subscriptions in re-frame and this proposal from speedskater. Selectors can compute derived data, allowing Redux to store the minimal possible state. Selectors are efficient. A selector is not recomputed unless one of its arguments changes. Selectors are composable. They can be used as input to other selectors. Reselect provides a function createSelector for creating memoized selectors. createSelector takes an array of input-selectors and a transform function as its arguments. If the Redux state tree is mutated in a way that causes the value of an input-selector to change, the selector will call its transform function with the values of the input-selectors as arguments and return the result. If the values of the input-selectors are the same as the previous call to the selector, it will return the previously computed value instead of calling the transform function.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 24
    Riot

    Riot

    Simple and elegant component-based UI library

    Why do we need a new UI library? The frontend space is indeed crowded, but we honestly feel the solution is still “out there”. We believe Riot.js offers the right balance for solving the great puzzle. Riot.js brings custom elements to all modern browsers without the use of any polyfill! A custom element glues relevant HTML and JavaScript together forming a reusable component. It is designed to offer you everything you wished native the web components API looked like. HTML syntax is the de facto language of the web and it’s designed for building user interfaces. The syntax is explicit, nesting is inherent to the language, and attributes offer a clean way to provide options for custom tags. Minimalism sets Riot.js apart from others. One of the design goals was to introduce a powerful tag syntax with as little boilerplate as possible. Riot.js has between 10 and 100 times fewer API methods than other UI libraries.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 25
    SuperTest

    SuperTest

    Super-agent driven library for testing node.js HTTP servers

    A super-agent driven library for testing node.js HTTP servers using a fluent API. The motivation with this module is to provide a high-level abstraction for testing HTTP, while still allowing you to drop down to the lower-level API provided by superagent. Install SuperTest as an npm module and save it to your package.json file as a development dependency. You may pass an http.Server, or a Function to request(), if the server is not already listening for connections then it is bound to an ephemeral port for you so there is no need to keep track of ports. One thing to note, is that superagent now sends any HTTP error (anything other than a 2XX response code) to the callback as the first argument if you do not add a status code expect (i.e. .expect(302)). Expectations are run in the order of definition. This characteristic can be used to modify the response body or headers before executing an assertion.
    Downloads: 3 This Week
    Last Update:
    See Project
MongoDB Logo MongoDB