# upup vs Uppy — Which Uploader to Choose

Uppy (by Transloadit) is the most established open-source JavaScript uploader,
with a large, battle-tested plugin ecosystem and Companion, its mature server for
fetching files from remote sources. Both Uppy and upup are MIT-licensed and share
the same shape — a headless core plus framework UI, cloud-drive sources, camera,
image editing, and resumable uploads. The practical differences are in the UI
model and the server: upup ships a **native, DOM-identical UI implemented in each
framework's own idioms** across six frameworks (including Svelte 5, Angular
standalone, a framework-free build, and Preact), and its `@useupup/server` includes
an HMAC-signed upload-token trust model out of the box. Uppy mounts one UI through
framework wrappers and has the deeper, more widely deployed plugin catalog.

## At a glance

| Feature                       | Uppy                                                                                                      | upup                                                                                                                  |
| ----------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
| Native first-party UI         | Vanilla JS, React, Vue, Svelte, Angular                                                                   | React, Vue, Svelte, Angular, Vanilla JS, Preact                                                                       |
| Headless core                 | Yes (`@uppy/core`; recent major versions add headless components and hooks)                               | Yes (`@useupup/core`)                                                                                                 |
| License / pricing             | MIT, free & open source (Transloadit is an optional paid hosted service)                                  | MIT, free & open source                                                                                               |
| Self-host incl. S3-compatible | Yes — your endpoint / tus server / S3 via the AWS S3 plugin; Companion (self-hostable) for remote sources | Yes — `@useupup/server` signs direct uploads to any S3-compatible storage (AWS, MinIO, R2, Spaces, Wasabi, Backblaze) |
| Cloud-drive sources           | Google Drive, Dropbox, OneDrive, Box, Google Photos, Unsplash, and more (via Companion)                   | Google Drive, OneDrive, Dropbox, Box                                                                                  |
| Camera / screen capture       | Yes (Webcam, Screen Capture plugins)                                                                      | Yes (both)                                                                                                            |
| Image editor                  | Yes (Image Editor plugin)                                                                                 | Yes — React/Preact only                                                                                               |
| Resumable uploads             | Yes (tus, S3 multipart)                                                                                   | Yes — optional (tus or S3 multipart)                                                                                  |
| i18n                          | Yes (locale packs)                                                                                        | Yes (ICU locale bundles)                                                                                              |

## Choose Uppy if

- You want the most mature, most widely deployed option, with the largest and
  most battle-tested plugin ecosystem.
- You need Companion's server-side remote fetching for many providers (including
  Google Photos and Unsplash) or value its long production track record.
- Your team has already standardized on Uppy's plugin model.

## Choose upup if

- You want native UI implemented in each framework's idioms — including Svelte 5,
  Angular standalone, a framework-free build, and Preact — held DOM-identical by a
  parity harness, rather than one UI mounted through wrappers.
- You want a server with an HMAC-signed upload-token trust model built in, so the
  client can never assert the object key or S3 `uploadId` it writes to.
- You want cloud drives, camera, screen capture, image compression/HEIC, and
  resumable uploads from one MIT package set with a single DOM/parity contract.
