explaingit

transloadit/uppy

📈 Trending30,773TypeScriptAudience · developerComplexity · 2/5ActiveLicenseSetup · easy

TLDR

A JavaScript file uploader library that gives web apps a polished upload widget with drag-and-drop, cloud storage integration, and resumable uploads, no need to build it from scratch.

Mindmap

mindmap
  root((Uppy))
    What it does
      File upload widget
      Drag and drop
      Cloud storage access
      Resumable uploads
    Source plugins
      Local device files
      Webcam photos
      Dropbox integration
      Google Drive
    Destination plugins
      Web server upload
      AWS S3 buckets
      Tus protocol
    Tech stack
      TypeScript
      React support
      Vue support
      Svelte support
    Use cases
      Photo editors
      Document management
      Profile pictures

Things people build with this

USE CASE 1

Add a polished photo uploader to a profile editor or social media app.

USE CASE 2

Build a document management tool where users drag files to upload and resume interrupted transfers.

USE CASE 3

Let users import photos directly from Dropbox or Google Drive without downloading them first.

USE CASE 4

Create a webcam capture feature that uploads images to your server or S3 bucket.

Tech stack

TypeScriptJavaScriptReactVueSvelteAngularAWS S3Tus protocol

Getting it running

Difficulty · easy Time to first run · 5min
Use freely for any purpose, including commercial use, as long as you keep the copyright notice and license text.

In plain English

Uppy is a JavaScript file uploader library for web browsers. It solves the gap between what users expect when uploading files, a polished interface with drag-and-drop, progress feedback, and the ability to pull files from cloud storage, and what a basic HTML file input provides. Rather than building all of this from scratch, developers add Uppy to their web application and get a ready-made upload widget with a sleek interface. The library is built around a plugin architecture: a small core handles the upload logic, and optional plugins extend it for specific needs. Source plugins let users pick files from their local device, take a photo with a webcam, or import directly from services like Dropbox, Google Drive, Box, or Instagram. Destination plugins send the files to a regular web server, an AWS S3 bucket, or via the tus protocol, an open standard designed specifically for resumable uploads, meaning a large file transfer that gets interrupted by a dropped network connection can pick up exactly where it left off rather than restarting from scratch. An optional server-side component called Companion handles the cloud-storage integrations, fetching files from those services directly into the destination rather than routing them through the user's browser. A developer would reach for Uppy when building any feature that involves user file uploads, a photo editor, a document management tool, a profile picture uploader, and wants a complete, tested solution instead of assembling one from smaller pieces. It is written in TypeScript and offers integrations for plain HTML/JavaScript as well as React, Svelte, Vue, and Angular.

Copy-paste prompts

Prompt 1
Show me how to add Uppy to a React app and let users upload files to AWS S3 with a progress bar.
Prompt 2
How do I set up Uppy's Companion server so users can import files from Google Drive?
Prompt 3
I want to add drag-and-drop file uploads to my Vue app, what's the simplest way to use Uppy?
Prompt 4
How does Uppy's tus protocol work to resume interrupted uploads, and how do I enable it?
Prompt 5
Can I customize the Uppy upload widget to match my app's design, and what plugins do I need?
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.