upup vs UploadThing
UploadThing (by Ping Labs) is a hosted file-upload service for full-stack
TypeScript apps: you install its open-source SDK, drop in its UploadButton /
UploadDropzone components, and files land in UploadThing's managed storage — no
bucket or infrastructure to run. It's a fast, type-safe way to ship uploads,
especially on Next.js. The core trade-off against upup is the model: UploadThing
is a paid managed service that stores your files on its own infrastructure and is
focused on the upload button/dropzone, while upup is an MIT, self-hosted library
that writes to your S3-compatible storage and adds cloud drives, camera and
screen capture, image editing, and native UI for six frameworks.
At a glance
| Feature | UploadThing | upup |
|---|---|---|
| Model | Hosted SaaS (managed storage + CDN) | Self-hosted library (your storage) |
| Native first-party UI | React components (UploadButton / UploadDropzone) + adapters for Next.js and other full-stack frameworks (Solid, Svelte, Vue, Nuxt, Expo, and more) | React, Vue, Svelte, Angular, Vanilla JS, Preact |
| Headless core | React hooks (coupled to the service) | Yes (@upupjs/core, framework-agnostic) |
| License / pricing | Open-source SDK (MIT); the service is a paid SaaS with a free tier and usage-based plans | MIT, free & open source (you pay only for your own storage) |
| Storage / self-host | Managed — files are stored on UploadThing's infrastructure | Any S3-compatible storage you own (AWS, MinIO, R2, Spaces, Wasabi, Backblaze) via @upupjs/server |
| Cloud-drive sources | No | Google Drive, OneDrive, Dropbox, Box |
| Camera / screen capture | No | Yes (both) |
| Image editor | No | Yes — React/Preact only |
| Resumable uploads | Not a primary feature | Yes — optional (tus or S3 multipart) |
| i18n | No | Yes (ICU locale bundles) |
Choose UploadThing if
- You want zero storage infrastructure — a managed service that stores files and serves them over a CDN for you.
- You're building on Next.js (or another supported full-stack framework) and want the fastest, most type-safe path to a working upload button.
- You're comfortable with a hosted, paid service owning the storage layer.
Choose upup if
- You want files kept in your own S3-compatible storage, avoiding a per-GB SaaS bill and third-party custody of your data.
- You need cloud-drive sources, camera, screen capture, or image editing.
- You want native UI across six frameworks and a fully MIT, self-hosted stack — including an HMAC-signed server trust model.