# transloadit/uppy

The next open source file uploader for web browsers :dog:

Repository: https://github.com/transloadit/uppy
Canonical: https://ross.abutalabs.com/products/uppy
Homepage: https://uppy.io
Language: TypeScript
License: MIT
License Family: permissive
Topics: tus, resumable, file-uploads, javascript, webbrowser, mit, open-source, modular, file-uploader, uploader, files, uppy, transloadit, pick-files, dropbox, instagram, encoding
Last push: 2026-08-26T22:53:55+00:00

## Health v2 (maintenance only)
Score: 95/100 (v2, computed 2026-09-03T02:39:23.370411+00:00)
- activity 99, release rhythm 87, longevity 100
- inputs: {"age_days": 3943, "days_push": 7, "days_rel": 7, "gap_med": 0, "n_releases_24m": 318}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 30935, forks 2107 (observed 2026-08-28T04:11:56.528128+00:00)

## What it is
Uppy is a sleek, modular JavaScript file uploader for web browsers that integrates with any frontend framework via plugins. It fetches files from local disk, remote URLs, and cloud sources like Google Drive and Dropbox, then uploads them via tus, S3, or plain XHR, with optional processing and encoding.

## Use cases
- add a file uploader to a react app
- resumable uploads that survive connection drops
- let users import files from google drive or dropbox
- drag and drop file upload widget
- upload large videos directly to s3
- compress and crop images before upload
- recover file selections after a browser crash

## When to choose
- you need a polished, extensible upload UI without building one from scratch
- you need resumable uploads via the tus protocol
- you want users to pull files from remote sources like Drive, Dropbox, or Instagram
- you use React, Vue, Svelte, Angular, or vanilla JS and want framework integrations

## When to avoid
- you only need a simple single-file form upload with no UI
- you need server-side-only uploads with no browser client
- you cannot run or afford a Companion server but need remote-source imports

## Facets
- artifact type: library
- maturity: stable
- function: file-upload, ui-components, http-client, image-processing, plugin-system
- domain: web-development, frontend, files, developer-tools
- platform: browser, self-hosted
- tags: file-uploader, resumable-uploads, tus-protocol, drag-and-drop, react, vue, svelte, angular, companion-server, remote-sources, image-compression, nodejs, javascript, web-server

## Member repositories
- transloadit/uppy (main) score 95

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:11:56.528128+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T16:52:20.509531+00:00, confidence not recorded.
  - readme: https://github.com/transloadit/uppy (fetched 2026-08-28T04:11:56.528128+00:00, sha a50f694dfce3)
  - homepage: https://uppy.io (fetched 2026-08-29T07:49:56.406022+00:00, sha 7c779a9ec16a)
  - site_page: https://uppy.io/docs/quick-start (fetched 2026-08-29T07:49:56.408982+00:00, sha 00fc8f2c0fa8)
  - site_page: https://uppy.io/docs/companion (fetched 2026-08-29T07:49:56.410751+00:00, sha 2afc10ff8342)
  - site_page: https://uppy.io/docs/golden-retriever (fetched 2026-08-29T07:49:56.413348+00:00, sha a9dfd4ddf881)
  - site_page: https://uppy.io/docs/drag-drop (fetched 2026-08-29T07:49:56.415260+00:00, sha 0ed2b02a3bb6)
  - site_page: https://uppy.io/docs/drop-target (fetched 2026-08-29T07:49:56.417230+00:00, sha 14ac7badf5a1)
  - site_page: https://uppy.io/docs/image-editor (fetched 2026-08-29T07:49:56.418997+00:00, sha ae2dd9a7b3df)
  - site_page: https://uppy.io/docs/compressor (fetched 2026-08-29T07:49:56.420950+00:00, sha b360a14978d8)
  - site_page: https://uppy.io/docs/locales (fetched 2026-08-29T07:49:56.422932+00:00, sha 7fb726aa5a5a)
- Data as of 2026-08-30T08:39:29.467469+00:00.
