Uppy File Uploader

The file uploader that
loves to play fetch

  • won’t chew on your shoes
  • is fully housebroken
  • just wants to play with you
  • doesn’t hump your leg
  • also accepts cat pictures
  • loves you unconditionally
  • you don’t have to keep on a leash
  • won’t pee on your rug
  • loves to play fetch
  • doesn’t bite (hard)
  • won’t bark at the mailman
  • is great with the kids
  • can digest anything, even chocolate cake
  • is always happy to see you
  • isn’t afraid of fireworks
  • is allowed everywhere

Try me:

$ npm install @uppy/core @uppy/dashboard @uppy/instagram @uppy/tus 
import Uppy from '@uppy/core'
import Dashboard from '@uppy/dashboard'
import Instagram from '@uppy/instagram'
import Tus from '@uppy/tus'

  .use(Dashboard, {
    trigger: '#select-files',
    showProgressDetails: true
  .use(Instagram, {
    target: Dashboard,
    companionUrl: 'https://companion.uppy.io'
  .use(Tus, { endpoint: 'https://master.tus.io/files/' })
  .on('complete', (result) => {
    console.log('Upload result:', result)
Get Started

What is Uppy

Sleek, modular file uploader that integrates seamlessly with any website or app. It fetches files from local disk, Google Drive, Dropbox, Instagram, remote URLs, cameras etc, and then uploads them to the final destination. It’s fast, easy to use and let’s you worry about more important problems than building a file uploader.

Open Source

Uppy is brought to you by the people behind Transloadit, and as such will have first class support for adding their uploading and encoding backend, but this is opt-in, and you can just as easily roll your own.

Design Goals:

  • Lightweight / easy on dependencies
  • Small core, modular architecture. Everything is a plugin
  • ES6, with transpiled ES5 versions available
  • Usable as a bundle straight from a CDN, as well as a module to import
  • Resumable file uploads via the open tus standard
  • Robust: retries for all-the-things, avoid showing ‘weird errors’
  • Themable UI with a beautiful default
  • i18n support: Easily switch languages or supply your own copy
  • Compatible with React (Native) (work on React Native in progress)
  • Works great on mobile
  • Works great with Transloadit. Works great without
  • Offering sugared shortcuts for novice users (presets)

Activity Feed