Repolode
transloadit

transloadit/uppy

A modular JavaScript file uploader for browsers with resumable uploads, cloud file pickers, webcam capture and a ready-made Dashboard UI.

Open-source alternative to:FilestackDropzone

Stars
31,060
Forks
2,114
Open issues
230
Last commit
yesterday

What is it?

Uppy is a modular JavaScript file uploader that you add to a web application to handle file selection, previews, metadata editing and uploading. Its core is a small plugin system: you combine a UI such as the Dashboard with sources (local disk, webcam, Google Drive, Dropbox, Box, OneDrive, remote URLs) and a destination (Tus, AWS S3, or a plain XHR endpoint).

Resumable uploads use the open tus protocol, so large files can continue after network interruptions or browser crashes. Cloud file pickers that need server-side credentials rely on the companion server component, which can be self-hosted. Uppy also integrates with the Transloadit encoding service, but works without it.

Uppy provides plain JavaScript usage along with React, Vue, Svelte and Angular support, including pre-built components, headless components and hooks for custom interfaces.

Key features

  • 01Resumable uploads over the tus protocol that survive network drops
  • 02Pick files from Google Drive, Dropbox, Box, OneDrive and remote URLs
  • 03Webcam photo and video capture as an upload source
  • 04Dashboard UI with previews, progress bars and a metadata editor
  • 05Modular plugin architecture with React, Vue, Svelte and Angular bindings
  • 06Optional recovery of files after a browser crash via Golden Retriever

Use cases

  • Adding a robust file upload form with large-file support to a web app
  • Letting users import files from cloud drives without downloading them first
  • Uploading directly to AWS S3 or a self-hosted tus server from the browser
  • Building a custom upload interface on top of headless components or hooks

Quick start

  1. 1

    Install the core, Dashboard and Tus packages with npm

    npm install @uppy/core @uppy/dashboard @uppy/tus
  2. 2

    Add the uppy.min.css stylesheet to your page's head

  3. 3

    Initialize Uppy with the Dashboard and Tus plugins in your JavaScript

Things to know

  • Some source plugins such as Google Drive, Dropbox and Box need a separately hosted Companion server.

Topics

FAQ

What is uppy?
A modular JavaScript file uploader for browsers with resumable uploads, cloud file pickers, webcam capture and a ready-made Dashboard UI. Uppy is a modular JavaScript file uploader that you add to a web application to handle file selection, previews, metadata editing and uploading. Its core is a small plugin system: you combine a UI such as the Dashboard with sources (local disk, webcam, Google Drive, Dropbox, Box, OneDrive, remote URLs) and a destination (Tus, AWS S3, or a plain XHR endpoint).
Is uppy free to use? What license does it have?
uppy is open source under the MIT license. Check the license terms before using it in commercial products.
Is uppy still maintained?
Actively maintained. The last commit to uppy was on Nov 5, 2026.
What can I use uppy for?
Adding a robust file upload form with large-file support to a web app Letting users import files from cloud drives without downloading them first Uploading directly to AWS S3 or a self-hosted tus server from the browser Building a custom upload interface on top of headless components or hooks
How do I install uppy?
Install the core, Dashboard and Tus packages with npm: npm install @uppy/core @uppy/dashboard @uppy/tus Add the uppy.min.css stylesheet to your page's head Initialize Uppy with the Dashboard and Tus plugins in your JavaScript
Where can I get uppy?
The source code and installation instructions are on GitHub: https://github.com/transloadit/uppy

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects