Reference Go server for the tus protocol, enabling resumable HTTP file uploads to local disk, Google Cloud Storage or S3.
- 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
Install the core, Dashboard and Tus packages with npm
npm install @uppy/core @uppy/dashboard @uppy/tus - 2
Add the uppy.min.css stylesheet to your page's head
- 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
A JavaScript file upload library with drag-and-drop, image optimization, chunked uploads and framework adapters for React, Vue, Angular and Svelte.
Self-hosted web app for sharing files via expiring, shareable download links, with upload pages for others to send files to you.
Self-hosted file uploader that returns shareable links, with user accounts, albums, snippets, a URL shortener and S3 storage support.
Self-hosted file and media sharing server with first-class ShareX support, short links, and multiple storage backends.
React component library for displaying PDF files in React apps, rendering pages much like images, built on PDF.js.