This website is no longer maintained, please visit uppy.io to get up-to-date info about Uppy.

The Uppy Blog

🎄 Uppy 3.1-3.3: Improved AWS S3 Multipart, Single File Mode

đŸŽ…đŸ¶ Ho-ho-ho, we are about to wrap up another year for Uppy! Three minor releases ago we’ve introduced Uppy 3.0. It’s time to give you an update on what’s been cooking in the Uppy-Transloadit headquarters (besides cranberry sauce) for the past couple of months.

In short: AWS S3 Multipart stability improvements, Single File Mode for the Dashboard, more tests and bugfixes, new locales.

Uppy 3.0: Future-proof, conveniently easy, stable as ever

Screenshot of Uppy 3.0.0 UI

For those new to Uppy, coming from Reddit, Hacker News and Product Hunt today: Uppy is a popular open source file uploader for the browser. Pick files from local disk or camera, remote sources like Instagram, Unsplash, Dropbox etc, record audio and screencasts. Crop and tweak images with the image editor plugin. Supports resumable uploads to a tus.io server, AWS S3 (and many others with similar API like DigitalOcean), multipart. Try it!

Uppy is turning three! When you’re counting in dog years – which we most certainly are – that’s 29 already. An age like that signifies proper adulthood. For Uppy, this means it’s ready to stay loyal, but without the silly mistakes (read: bugs). Uppy also underwent (ESM) surgery to keep it strolling by your side in the current ecosystem, and received other behavioral improvements đŸ¶

Uppy 2.4-2.7: Image Compressor, Transloadit Rate Limiting, ESM

We’re always looking for opportunities to teach Uppy cool new tricks, and the past few months have been no exception. Since our most recent post in December, Uppy has continued to receive a steady stream of updates. This post covers all the improvements made in Uppy versions 2.4 through 2.7. Changes and additions include: image compression, improved Transloadit rate limiting and a lighter Dashboard plugin. We’ve also moved our end-to-end tests to Cypress, and are slowly converting plugins to ES modules (ESM).

Uppy Compressor plugin showing compressed images notification

🎄 Uppy 2.1-2.3: Audio plugin, fast and efficient streaming for Companion, production-ready Unsplash, and more

Last Christmas, we gave you Uppy 1.24, but this very next year, we’ll take it away (since it’s outdated by now) and give you a brand-new Uppy 2.3 🎁!

After the release of our latest major version, 2.0.0, we’ve been busy with many things. First of all is the long-awaited Audio plugin to record and upload live audio directly. We then worked on adding a fast and efficient streaming interface to Companion and made Unsplash production ready. Housekeeping was also part of the job: we made Status Bar improvements, moved from npm to Yarn 3, did some refactoring, and updated dependencies.

Last but not least, we got the issue count down from around 110 since 2.0.0 to around 45 now.

Uppy 2.0.0: smaller, faster, modular plugins, Preact X, stricter types, and much more

Today, our tails are positively wagging with excitement about the release of Uppy 2.0! This latest version is on average 25% smaller and up to a thousand times faster, thanks to dropping support for IE11 and a lot of refactoring work. We’ve upgraded many dependencies, most notably Preact 8 to Preact X, greatly improved TypeScript support and screen reader accessibility, paid technical debt, and added support for multiple messages in the Informer plugin.

Chow down on all the juicy bits and pieces inside! And make sure to try Uppy live demo.

Uppy 2.0 cover banner

Uppy 1.30: Angular integration, granular image rotation, Google Drive shortcuts

Uppy 1.30 introduces the long-awaited Angular integration (beta), granular image rotation and Google Drive shortcuts.

Uppy 1.29: Golden Retriever, disableLocalFiles, Webcam previews, uppy.logout

In Uppy 1.29, we’ve revamped the Golden Retriever plugin with support for partially recovered “ghost” files, added a disableLocalFiles option to the Dashboard, enabled the ability to preview webcam videos before submitting and provided an uppy.logout() method, along with an assortment of Companion improvements.

Uppy 1.27: Drop Target plugin, Vue 3 support, Dashboard dynamic meta fields, “Shared with me” in Google Drive

In Uppy 1.27 we’ve added a new @uppy/drop-target plugin, enabled support for Vue 3, introduced dynamic metaFields option for Dashboard, Google Drive now lists documents that have been shared with you.

Uppy 1.26: Dashboard “disabled”, per-file headers

Uppy 1.26 brings a new disabled option for the Dashboad, ability to set headers per file with XHR Upload, and fixes for the Transloadit plugin.

Uppy Dashboard UI with disabled state

Uppy 1.25: right-to-left scripts, Ukrainian translation, Companion improvements

Uppy 1.25 adds support for right-to-left scripts, Ukrainian translation and various improvements for Companion.

Just see how cool this looks, and read further for a video demo and some behind the scenes implementation sorcery:

Uppy Dashboard UI flipped for right-to-left Arabic language

Uppy 1.24: 🎅 Happy Holidays — Svelte, React hook, Auto Open Image Editor

Uppy 1.24 adds an experimental Svelte integration, additional React components, autoOpenFileEditor option for Dashboard, and a Norwegian (bokmÄl) translation!

Uppy 1.23: Vue.js, Box, Done button and cloud file restrictions

Uppy 1.23 brings Vue.js components đŸ’„, Box file service support, a “Done” button for the Status Bar + Dashboard, and a better cloud file restrictions UI.

Vue.js Uppy code sample

🎃 Uppy 1.22: Webcam camera source, Unsplash and maxTotalFileSize

Uppy 1.22 (the spooky Halloween edition) adds a new Unsplash provider, Webcam camera selector dropdown and a maxTotalFileSize restriction.

Companion 2.0 is here

We are happy to announce version 2.0 of Companion! 🎉 After maintaining and improving the 1.x series for over a year, we’re now releasing a major version bump on the Companion package. The drive on this release is mainly towards fixing some terminology inconsistencies and aligning with Node.js LTS to ease the maintenance burden.

Image Editor 🌈

One of the most-requested Uppy features, the Image Editor, has landed (as beta) in 1.18.

Uppy 1.11 — 1.13: Dark Mode, custom meta fields and Google Docs in Companion

Releases 1.11 through 1.13 introduced a bunch of major new features and bugfixes. Let’s go through the main ones!

Dark mode

A little while ago we’ve announced work in progress on Dark Mode for the Dashboard. We’re happy to tell you it’s live now! You can try it out on the Dashboard example page.

There are three options available:

  • light — the default
  • dark
  • auto — will respect the user’s system settings and switch automatically
uppy.use(Dashboard, {
  theme: 'dark',
})

Uppy 1.10.1: Facebook and OneDrive

Uppy 1.10.1 adds long-awaited support for Facebook and OneDrive 🎉

Screenshot showing Uppy file uploader with Facebook and OneDrive options

const uppy = Uppy()
uppy.use(Dashboard)
uppy.use(Facebook, { target: Dashboard, companionUrl: 'https://companion.uppy.io/' })
uppy.use(OneDrive, { target: Dashboard, companionUrl: 'https://companion.uppy.io/' })

Try the live demos on Transloadit.com: import your files from Facebook or OneDrive, and then:

(Uppy demos are below the description and steps, under “Live Demo. See for yourself” ;-)

You can also play with an interactive demo, enabling different Uppy options and providers on the fly: </uppy/examples/dashboard>

OneDrive:

Screenshot showing Uppy file uploader with OneDrive file list

Facebook:

Screenshot showing Uppy file uploader with Facebook file list

Uppy 1.8 and 1.9: security, error handling and better types

Uppy 1.8, 1.9 and a few important security patches are out! Here are the highlights:

Uppy 1.7: A Small One

Uppy 1.7 was released last December! This release added Hebrew translations, a recording length timer for the @uppy/webcam plugin, and a collection of improvements to Companion.

Uppy 1.6: setOptions(), Icelandic and Thai

This release adds a long-awaited uppy.setOptions() API, allowing you to update options of Uppy and its plugins on the fly. It also includes locales for the Icelandic and Thai languages!

Uppy 1.5: Facebook and OneDrive (beta) support, upload cancellation

In the past two months, we have halved our open issue count and worked on a much more robust approach to upload cancellation. Members of the community also contributed a bunch of new localizations: Czech, Danish, Greek, Indonesian, and Swedish!

We are also releasing beta versions of new remote providers for Facebook and OneDrive. Please try them out!

Uppy 1.3: Accessibility and performance, new languages

Hi there! We are back after a period of silence following the Uppy 1.0 release in the end of April. It was pretty well received by the commnunity and press: we hit the front pages of Hacker News, Product Hunt and Reddit. We then started trending and gained over 20,000 stargazers on GitHub, got mentioned by Smashing Magazine, JavaScript Daily and JavaScript Weekly. It’s been a crazy ride! We’d like to thank all our contributors and users for their continued support.

It was not all self reflection and celebrations, though, in Uppy Remote Headquatersℱ following the 1.0 launch. After some vacation time, we quickly got back to work, releasing Uppy 1.1, 1.2 and 1.3. These updates address a lot of issues raised by the community and the team.

This post highlights the most important and exciting changes from those releases: accessibility and performance, thumbnails rotatation, new logger, progress and uploader improvements, Robodog and Companion updates, new languages and more.

Uppy 1.0: Your best friend in file uploading

Today, after three years of development, we are launching version 1.0 of Uppy, our file uploader for web browsers.

A little history

Three years ago, Transloadit was ready to replace their jQuery-based file uploading & processing plugin for browsers with something more modern. They posted a job ad in search for people to build it:

In general, we’re looking for polished, well tested, carefully crafted products that are delightful to work with and use. So for this job it’s not only important that you know JavaScript, but also how to make things look stunning and work well for end users.

At your disposal are time, focus, and the core team ready to provide feedback, guidance, and anything else you need.

Shortly after, I saw a retweet of this vacancy come across my time line and I decided to apply. That, in a nutshell, is how I got involved with Uppy in the earliest stages of the project.

Initially, the idea was to build a proprietary uploader that would work exclusively with Transloadit’s commercial service, but we quickly turned around on it. We felt our version of a file uploader could have a real impact if we made it more widely available. So, just like Transloadit had done before with Tus, we decided to make Uppy an open source solution — free for anyone to use and hack on. Transloadit support became an optional plugin.

Three years, 16.000 stargazers, getting featured on Smashing Magazine, JavaScript Daily, Product Hunt, and SurviveJS, and a thriving community later — and we could not be happier to finally launch Uppy 1.0!

30 Days to Liftoff: Day 30

And then there were none! Zero days left in our thirty-day blog post challenge. I can’t believe this is already the final day of our push to get Uppy to 1.0. There’s still a bunch of things that we’d like to finish before shipping, so let’s dive right in.




30 Days to Liftoff: Day 29

With Easter behind us, only two days remain before the Uppy 1.0 release!. We hope you’re anticipating the launch as much as we are looking forward to being out from under the pressure of geting everything done in time!

In terms of progress and completed features, things are looking good. We don’t have the entire team present today due to personal holidays and other commitments, but there’s no slowing down as we approach our deadline! This afternoon, we’re having our final Uppy 1.0 call where we’ll make final decisions on what we will — and won’t — get done before Thursday.




30 Days to Liftoff: Day 28

Happy second day of Easter! Just three days left before we launch Uppy 1.0 on the 25th! đŸ˜± It’s gonna be a few busy days for us, so we want to spend today getting rested up and ready to go.

Here’s an 80’s-style montage of GIFs to give you an idea of what we’re doing to get all pumped up and ready for the final sprint!

30 Days to Liftoff: Day 27

Happy Easter everyone! đŸ„šđŸ° It’s like a regular Sunday, but with a cherry on top! Spring is also in the air, so we wish you all some nice weather to enjoy with friends and family. Since we are also spending today egg hunting rather than bug chasing, we’ll keep it short. So, once more, from us — and this lovely Roomba-riding pup:



30 Days to Liftoff: Day 26

‘Twas the night before Easter, when all through the house. Not a creature was stirring, not even a
 pup?



30 Days to Liftoff: Day 25

Why have a Good Friday when you can have a Great Friday instead!? Today is the beginning of an extra-long weekend, which most of the Uppy crew will spend by staying away from computers and catching up on some naptime:



30 Days to Liftoff: Day 24

Only six days remain in our ‘30 Days to Liftoff’ blog post challenge toward releasing Uppy 1.0 on April 25. Technically, it’s even less than that, seeing as Easter is coming up and we won’t be doing much work during the holidays. So, with just three working days left, we are starting to feel the heat. đŸ”„

Luckily, we’re also very close to reaching all of our release goals. Let’s take a look at where we are now!




30 Days to Liftoff: Day 23

Hello and welcome to Day 23 of our ‘30 Days to Liftoff’ blog post challenge. The launch date for Uppy 1.0 is still set for April the 25th and a lot of work is ongoing to make it happen. Let’s take a look at the updates for today!




30 Days to Liftoff: Day 22

We will launch Uppy 1.0 on April 25 and this is our ‘30 Days to Liftoff’ blog post challenge where we share updates on our progress each day! Let’s see what happened on Day 22.




30 Days to Liftoff: Day 21

We’re reaching the final stretch of our ‘30 Days to Liftoff’ blog post challenge. After a refreshing weekend, the entire team is ready to give it their all over the next ten days to ensure that Uppy 1.0 reaches its April 25 release date.




Since we’re starting the week strong and prepared, let’s take a quick glance at how our Uppy dashboard is looking.

30 Days to Liftoff: Day 20

And on the seventh day, Uppy rested đŸ‘Œ We, too, will be spending this day in quiet contemplation (and most certainly not by sleeping off yesterday’s escapades). So if there isn’t anything else you need us for, we’ll be grabbing our blankets and heading back to bed:

30 Days to Liftoff: Day 19

Hey DJ, turn the music Uppy! We’re taking a few well-deserved days off from chasing tasks and issues (and cats, of course) to get our feet up on the dance floor and enjoy a drink or two. We hope you are doing the same! Here’s a record-breaking Wiener to get you in the mood:

30 Days to Liftoff: Day 18

Hi! You’re reading our ‘30 Days to Liftoff’ blog post challenge about the launch of Uppy 1.0 on April 25. Here’s what we’ve been up to since yesterday’s progress update.




30 Days to Liftoff: Day 17

It’s day 17 already of our ‘30 Days to Liftoff’ blog post challenge and the launch of Uppy 1.0 on April 25 is coming closer by the day. The Uppy team is dealing with the big tasks now, so the updates might seem a little scant!




30 Days to Liftoff: Day 16

Two weeks left in our ‘30 Days to Liftoff’! We’re starting to home in on Uppy 1.0’s release on April 25. Being in the middle of the week gives us a great opportunity to see how hard the team is working. Let’s take a look at the new features, bug fixes and milestones that have been completed! đŸ¶




Reminder: you can keep up with our CHANGELOG to see everything else we intend to complete for the official Uppy 1.0 release.

30 Days to Liftoff: Day 15

đŸŽ” Woah, we’re halfway there! Take our paw, we’ll make it we swear! đŸŽ¶ That’s fifteen down and fifteen more to go. Great to have you along for the ride as we move ever closer towards launching Uppy 1.0 on April 25.

Let’s see what is Uppy today!



30 Days to Liftoff: Day 14

Today marks the fourteenth day in our ‘30 Days to Liftoff’ blog post challenge, working our way towards launching Uppy 1.0 on April 25. It’s the beginning of a new week and there is much to be done. The Uppy team is already firing on all cylinders and we also have some developments to share from before the weekend.

30 Days to Liftoff: Day 13

Shh, it’s Sunday, Uppy is sleeping in today 😮 We’ll be taking the day off as well, as we gear up to go full throttle again in the morning. There’s still a lot to do before the Uppy 1.0 launch on April 25. In the meantime, why don’t you join us in letting sleeping dogs lie.

30 Days to Liftoff: Day 12

Hey guys! How is your Saturday treating you so far? We are focusing today on meeting friends and having fun, and taking our minds off all Uppy-related things for just a few days. To give you an idea of what we’re up to tonight, check out this groovy GIF:

30 Days to Liftoff: Day 11

And another week bites the dust! With the weekend right around the corner, we’re busy getting as much as possible done before heading off for some well-deserved rest & relaxation. Here is what we’ve been up to!


30 Days to Liftoff: Day 10

Today marks the tenth day in our 30 Days to Liftoff! April 25 is still in our sights as we work towards the Uppy 1.0 release. The end of the working week is almost upon us, but there’s no sign of slowing down yet.


Things are looking up(py) on our project board as the team has been working on tasks at a steady pace. A quick status update will give us a little insight into how things are going concerning all things Uppy.

30 Days to Liftoff: Day 9

The entire team is starting to get into its groove as the Uppy channel in our Slack workspace is looking livelier than ever. Let’s dive straight into Day 9 of our 30 Days to Liftoff!



Everyone is moving at a comfortable pace, working on the various In Progress cards sitting neatly on our Uppy board, so here’s a quick update on the progress towards Uppy 1.0, coming April 25!

30 Days to Liftoff: Day 8

Welcome to Day 8 of our ongoing thirty-day blog post challenge toward the Uppy 1.0 release on April 25! Yesterday was the 1st of April, but we had no time for fooling around! The entire team was present for our weekly call, which was again fully dedicated to discussing Uppy progress.



During the call, a lot of cards were moved from the To Do lane into the In Progress lane — and some are even already Done. We also added a few New tasks mostly related to language packs for Uppy, where we’ll be asking our own team members to update a locale of their own language. We hope other languages will be picked up by the community!

30 Days to Liftoff: Day 7

Welcome to Day 7 of our ongoing thirty-day blog post challenge toward the Uppy 1.0 release on April 25! With the weekend behind us and all batteries fully recharged, we’re ready to start hacking away again at the forest of To Do’s that lies in front of us.

We still have some updates from the end of last week to share with you, and our team is already working hard today on fixing issues and making improvements. So let’s jump into it!

30 Days to Liftoff: Day 6

Shh, it’s Sunday, Uppy is sleeping in today 😮 We’ll be taking the day off as well, as we gear up to go full throttle again in the morning. There’s still a lot to do before the Uppy 1.0 launch on April 25! In the meantime, why don’t you join us in letting sleeping dogs lie.

30 Days to Liftoff: Day 5

Work hard, play hard! It’s Saturday, so it’s time for us to wind down and take some time for ourself. Seeing as we won’t have much to share over the weekend in terms of progress updates, we thought we’d try to distract you a bit. Sit back, relax, and enjoy this nice GIF, handpicked by our crew:

30 Days to Liftoff: Day 4

Today marks the fourth day of our ongoing thirty-day blog post challenge, giving you an overview of all the progress building up to our Uppy 1.0 release on April 25!

30 Days to Liftoff: Day 3

Two days ago, we announced the upcoming launch of Uppy 1.0 on April 25, kicking off our thirty-day blog post challenge to keep you updated on everything that is going on. Here’s day three for you!

30 Days to Liftoff: Day 2

Yesterday, marked the beginning of our thirty-day blog post challenge to keep you updated on our preparations for releasing Uppy 1.0 on April 25. So here we are again already!

30 Days to Liftoff: Day 1

When we started working on Uppy back in early 2016, all we had was an idea and the shared desire to launch file uploading into a new age. We had already been laying the groundwork with the development of tus.io and felt that its robust back-end deserved a front-end just as robust, modern and user-friendly.

Uppy 0.30: Introducing Robodog

In 0.30, we are introducing a new friend for Uppy — the Robodog.

Robodog: easy to assemble

Uppy 0.29: separate Core and Plugin styles, React Native in tus-js-client

0.29 brings bug fixes and improvements, while we are busy working on Uppy React Native support (which first had to land in the js client for our resumable file upload protocol: tus.io) and a Preset (still debating the name) which will make it easier to leverage Transloadit’s encoding platform, and offer a smooth migration path for users not yet on Uppy. The highlights of this release are: separating Core and Plugin styles, more accurate progress reporting by factoring in sizes across files, adding a responseType option for XHR Upload, and fixing visual Webcam bugs.

Uppy 0.28: A look behind the scenes

In 0.28, we are introducing a new “Single Upload” mode, improving on the Status Bar plugin with a spinner and different pause/resume/cancel buttons. We’ll also share some progress on bringing back unified locale packs and a Transloadit Preset 🍁

Uppy 0.27: First Swing at React Native Support

In 0.27, we have some more iterations on the Dashboard UI for you in store again. We are getting rid of the permanent tab bar and made tons of other improvements!

Uppy 0.26: Lerna

Uppy 0.26 replaces the monolithic Uppy package with a separate npm package for every plugin.

Uppy 0.25: Drag & Drop Links Urls & Images, Improved File Selecting in Providers, Interactive Components In i18n

Uppy 0.25 comes with a couple of new features, like drag-and-dropping URLs and images with the Url plugin, Dashboard modal animation and interactive components in i18n strings, as well as a ton of under the hood fixes and improvements.

Uppy 0.24: Refreshed Dashboard, StatusBar and Provider UI, revamped XHR Response Handling

Uppy 0.24.2 brings a refreshed UI in the Dashboard and StatusBar plugins, a synchronous addFile() method, a cancel button, style protections, documentation on writing your own Uppy plugin, revamped XHR response handling and tons of bugfixes.

Uppy 0.23: Import from Url, refactored thumbnail generation, XHR bundle

Hi all! We are back from holidays with a shiny new 0.23.0 release for you! It’s packed with a new Url plugin (imports files from urls), refactored ThumbnailGenerator, Webcam improvements and more.

Import from Url

Meet our new “Provider” plugin, Url. It’s simple, yet powerful: paste a link to any file on the web, and Uppy with Uppy Server will upload it wherever you need.

uppy.use(Url, { target: Dashboard, host: YOUR_UPPY_SERVER_URL })

Uppy 0.22: Preact, Form, Improved Dashboard, Custom Stores

Uppy is featured on Product Hunt! To our fellow hunters: welcome! Quick intro: Uppy is the next open source file uploader for web browsers. We’re very close to launching 1.0 and would love to get your feedback in, leave your thoughts on Product Hunt or start a discussion below.

Hi all! It’s New Year and Christmas time, and this year Santa is brining you Uppy 0.22 🎁 This release packs a lot of neat stuff, but it also breaks things in quite a few places, so please read on.

And, if you are celebrating, happy holidays from the Uppy Team! 🎄

Uppy 0.21: End to End Tests, Accessibility, Additional Security for Uppy Server

Hi all! We’ve been busy with Halloween, but also another release, so here is Uppy 0.21! This one improves accessibility, features new end-to-end tests and improved security in Uppy Server.

Uppy 0.20: React, Retry & Time Travel

We are proud to present Uppy 0.20. This one focuses on React and Redux support, adding storage expirations to GoldenRetriever and upload retries. Enjoy!

Uppy React components

Uppy now ships with React components! We’ve been exploring different approaches to React components for several months, so we’re excited to finally have them in ✹ There are components for each of Uppy’s UI elements, like the Dashboard and the StatusBar.

const uppy = Uppy()
uppy.use(Tus10, { endpoint: '/upload' })

const Dashboard = require('uppy/lib/react/Dashboard')

const Uploader = () => (
  <Dashboard
    uppy={uppy}
    note="Hey! It's a React component!"
  />
)

ReactDOM.render(<Uploader />, document.querySelector('#uploader'))

Uppy 0.19: Tests, Informer details and better APIs

Hello! The 0.19 release is about internal fixes, optimizations and refactoring, as well as some work on PRs that we’ll hopefully tell you about soon!

Jest tests

Thanks to our contributer, @richardwillars, and following the example set by Uppy Server, we’ve switched to Jest for Uppy’s unit tests, and added a bunch of new tests as well. And even more are being added as we speak!

We’re also happy to report that more tests have been added for Uppy Server.

Dashboard APIs

We’ve exposed show/hide/isOpen APIs for the Dashboard UI plugin. Now you can open and close the modal dialog programmatically:

const modal = uppy.getPlugin('Dashboard')
modal.show()

// ...

button.addEventListener('click', () => {
  if (modal.isOpen()) {
    modal.hide()
  } else {
    modal.show()
  }
})

Check out the docs.

Uppy 0.18: Dogumentation and The GoldenRetriever

Hi! Another month — a new Uppy release 🎉

Note: current latest release is actually 0.19, but this post got delayed, so we are publishing it first. 0.19 post is coming next.

New documentation

Documentation for Uppy has been re-written, and now features chapters on Uppy’s settings and API, using various plugins, and running Uppy Server. Check it out: </uppy/docs/>. More chapters to come!

The GoldenRetriever

The GoldenRetriever has been released as a public beta. For details, please refer to the previous post, The GoldenRetriever: Making uploads survive browser crashes, but the gist is: when enabled, this plugin will save uppy-state to localStorage on every change, and then if your browser crashes, or you accidentaly navigate away from a tab,later when you return, your uploads will resume like nothing happened. Spoiler: it uses Service Workers and IndexedDB.

The Golden Retriever: Making uploads survive browser crashes

TL;DR: We’re on a mission to improve file uploading on the web. We released tus: the open protocol for resumable file uploads, as well as Uppy: the next open source file uploader for web browsers. Uppy uses tus, which makes it resilient to poor network conditions and crashing servers. Today we’re launching an Uppy feature that also makes it resilient to browser crashes, which we believe is an industry first. We’re sharing a quick demo video, a bit of background, how exactly we achieved this, and how you can try it yourself.

***

Don’t you just hate it when you’re about to share the perfect photos from your trip to Iceland, and halfway through, your cat jumps on the keyboard and trashes your browser? Or the battery in your laptop dies? Or you accidentally close the tab or navigate away? We hate that too!

If action games have had checkpoints since 1687 — why can’t file uploaders? Well, as it turns out, they can! We found a way to get those Iceland pics into the hands of your loved ones with near-zero levels of frustration, even after a dreaded Blue Screen of Death! (if that is still a thing ;)

Uppy 0.17: Restrictions

Hi! We are back with yet another Uppy release that contains some often requested features such as file restrictions and better file type detection, alongside a brand new Instagram plugin, UI improvements and more!

Uppy 0.16: Transloadit!

Hello there! Missed us much? :) We’re chomping at the bits, at least, to tell you about our latest release. This one has been in the works longer than usual, but then again, it’s also way cooler than usual, so let’s get right to it.

Uppy 0.15: Spring cleanup

Spring is in the air and Uppy is feeling particularly full of life. In this post about Uppy 0.15, we have some exciting stories about babel-plugin-yo-yoify, progress event throttling, and new friends.

Uppy 0.14: Responsive Dashboard, Standalone & Pluggable Server, Dropbox

Hi! Hope y’all have had great holidays! 🎄 Which reminds us, we still have a gift for you — and we even wrapped it in a package (npm). Look inside and you’ll find that Uppy 0.14!

“But wait”, you might ask, “where is the 0.13 release that we have been waiting for?”

Well, let’s just say we are superstitious like that. You won’t see us coding under any ladders either! And we were also in the middle of the holiday season, so we decided to call 0.13 “The Release That Wasn’t” and skip it.

Let’s take a look at what Uppy 0.14 has in store for you.

Uppy 0.12: Responsive. Cancel. Feedback. Refreshed ES6 server

Hello! Here’s what’s new in Uppy 0.12.

Dashboard: local mode and multipart uploads support in UI

Prior to this release, we’ve optimized the Dashboard for usage with multiple “acquire plugins”, say Webcam + Google Drive. But sometimes all you need is “local disk” with drag & drop support, nice file previews and progress. And now the Dashboard UI works great with that use case out of the box. When you don’t add (.use) any acquire plugins, it looks like this:

Also (prior to this release), we’ve built the Dashboard to work well with tus resumable uploads. That’s why you can pause and resume individual uploads, as well as all at once. But if you use an endpoint that is not yet ready for the future and upload resumability (here’s how to fix that, by the way), the Dashboard UI will show regular “cancel” buttons instead of pause/resume.

Dashboard is gradually becoming more mobile friendly too, but we’ll be saving some of that stuff for the next release.

Server

Uppy server has undergone a quite a few changes, including the build setup:

  • We are using ES2015, transpiling to ES5 with Babel.
  • Added linting, lint-staged, pre-commit all that good stuff.
  • Added npm run release command that publishes releases for us.
  • Google Drive is working again on the Uppy Server side.
  • Refactoring, error handling and more minor improvements.

Uppy 0.11: StatusBar, research, https and API docs

Hey everyone! It has been a while since we last shared some news about our progress and we can’t wait to let you know what’s up(py)!

In October, we have been working hard to get Uppy 0.11 ready for release. This entailed, among other things, doing a write-up of our general architecture, bringing in a friend to look at what we’ve been up to, experimenting with Redux, and updating the Dashboard UI and website example.

Here’s what we have been up to, in some more detail.

Uppy 0.10: Getting together, the future, Google Drive UI, exposed events

Hi! Another month has passed and we have just released a new version of Uppy. Here’s what we’ve been up to.

Thinking about the future 🔼

We have been spending quite a lot of time thinking about Uppy’s future and the direction in which we would like to take this project. Our primary concern is making Uppy as flexible as possible as well as compatible with popular libraries, such as React and React Native. We also want to make it easy to port Uppy to any environments or ecosystems that are not officially supported.

We have done a lot of research. We created prototypes of Uppy React components and we also created a new module that we like to call “Uppy Base.” uppy-base is a thin module containing reusable functionality from some of our plugins that can be used in any ecosystem or environment, without being opinionated about the UI.

Uppy 0.9: Making Progress, then pause & resume. Remote file uploads, Informer.

We have just released Uppy 0.9.0. This release features some changes that we think you will be very excited about. Let’s see what’s new!

Uppy version 0.8 released: The Webcam Edition and Meta Data

We have just released Uppy 0.8.0 and we can’t wait to tell you more about it. Along with various under-the-hood improvements, this release also contains some very visible upgrades. You can read below for further details.

Including Meta Data

While fetching your files, Uppy is now also able to supply some custom metadata to go along with them. So far, there are three components in place for that: Core API (core:update-meta event), MetaData plugin, and a new panel in Dashboard UI called File Card, which looks like this:

metadata dashboard UI, editing file name, future size and adding description

Uppy: let’s teach an old dog some new tricks

For the past six months, we have been working hard on uppy.io. We feel that it is high time we gave you a look behind the scenes: what are we working on, and why.

The way uploading works has not changed in a meaningful way since the days of our trusty old 56 kbit/s modems. Of course, files have gotten bigger and speeds have increased, but that is more or less all there is to say. If it were up to us – and we hope it is – that is all about to change.

We at Transloadit are on a mission to change the way the world does uploading. To accomplish this, our first step has been to develop an open protocol for resumable file uploads, called ‘tus’. Finally, that 2GB video upload from your smartphone doesn’t have to start over when your train passes through a tunnel! The protocol got Hacker News excited on several occasions and is being deployed by, among others, our friends at Vimeo. Now that a stable version 1.0 of ‘tus’ has been released, it is time to put it to the test. A protocol without real-world applications is nothing more than a meaningless document, after all.

We are therefore excited to tell you about Uppy: the file uploader that will certainly fetch more than just your newspaper.