Uppy: An Open-Source File Uploader That Works Seamlessly with Companion’s Server-to-Server Communication Solution

Uppy Is An Open Source File Uploader

TL; DR: Uppy is a free Javascript file uploader created to retrieve files locally and from applications like Instagram, Dropbox, and Google Drive. The modular open-source solution, created by the media processing services company Transloadit, features a lightweight architecture and an intuitive UI. Moving forward, features like easy WordPress integration and a mini version of the uploader will give users even more ways to enjoy Uppy’s efficient uploading experience.

Since its launch in 2009, many have come to consider Transloadit, a provider of versatile media processing services, as a developer’s best friend — and for good reason. The company’s advanced solution empowers programmers to automate tasks like video encoding, image manipulation, and file compression, in turn reducing workloads and freeing up server capacity.

The company is also known for its attentive support and close consideration of customer feedback. So when the Transloadit team wanted to solve a common customer problem by creating a fast open-source uploading tool, it immediately hired two front-end engineers to get the job done.

“A pain point for many of our customers was that if they wanted to upload a large file from a program like Dropbox, they first had to download it to their device. Then, they had to upload it again with limited bandwidth,” said Charlie Macnamara, Technical Writer and Support Engineer at Transloadit. “This needlessly burns through batteries, data plans, and time, when we can just let servers in datacenters settle this between each other. Our vision for a new uploader enabled this.”

Uppy logo
Uppy is a free and open-source uploader from Transloadit.

But considering its deep open-source roots, the company hesitated to create something that would be compatible with Transloadit alone. Such a solution wouldn’t be genuinely open, even if the code were open-source.

“We almost instinctively wondered how the project would look if it were to be truly open and useful for any website, not just those leveraging Transloadit for media processing,” Charlie said. “After some deliberation, we decided we should go this route.”

Through what would become known as Uppy, the company hoped to attract a larger audience for its commercial service while advancing the art of the file upload. And contributions from the open-source would benefit everyone.

“Even if this meant we would be giving away the software to so many folks that would never care to pay us a dime, these advantages, we thought, were worth it — so we gave it our best shot,” Charlie said.

File Upload Solutions from the Makers of Transloadit

The company’s original name for its new uploader — Transloadit JS Client — didn’t exactly roll off the tongue. After brainstorming a few ideas, the team settled on Uppy.

“It was short, distinct, and we fell for the ‘cute as a puppy’ wordplay and mascot that it enabled,” Charlie said. “We could acquire the .io from someone who had limited use for it, and that settled it. A product was born, even if it didn’t have any code yet.”

Today, Uppy is a robust JavaScript file uploader that can retrieve files from applications, cameras, and remote URLs, among other sources, and upload them to a final location. The forever-free uploader boasts a sleek user interface, file recovery via the Golden Retriever plugin, and multilanguage compatibility.

Uppy also features native integration with Transloadit and Companion, a server integration for the Uppy file uploader. Companion enables server-to-server communication between the user’s server and popular file storage providers like Google Drive, Dropbox, and Instagram. Transloadit also offers a hosted version of Companion.

Screenshot of Uppy dashboard
Uppy’s full-featured Dashboard provides file previews and upload progress, and allows users to edit metadata, among other functionalities.

“When we set out to create Uppy, we wanted it to be the final word on uploading for browsers,” Charlie said. “Uppy is now the number one file uploader in the world, so you might say we have succeeded.”

Uppy effectively streamlines workflows so users don’t have to reinvent the wheel whenever they’re looking for an uploader. Still, the team grapples with the challenge of trying to be everything to everyone.

“By providing a modular setup and a few convenient shortcuts into different selections of those modules, we hope people can compose their ideal own file uploader that suits their use case perfectly,” Charlie said. “But we can definitely make it easier — and that will be the direction we’ll be taking Uppy.”

Open-Source and Community-Driven

Transloadit was founded by three open-source enthusiasts: Tim Koschützki, Felix Geisendörfer, and Kevin van Zonneveld. Before the company’s founding, Tim and Felix had contributed to the open-source development framework CakePHP, and Kevin was a contributor to the open-source project Locutus.

While the company doesn’t offer Transloadit through an open-source license, it very much supports the open software movement.

“We use a lot of open-source resources in our coding, so this is our way of giving back to the community,” Charlie said. “That’s why we still pay full-time developers to work on Uppy, even though it’s open-source.”

Charlie told us that Uppy is a significant part of Transloadit’s efforts.

“About half of our employees work on the uploader alone,” Charlie said. “And, of course, it is open-source, so the community adds features as well. We have other people add features as well. We recently added some image editing features to it so you can crop set dimensions from within the UI itself. It’s very versatile.”

Transloadit also supports the open-source Robodog, a version of Uppy that comes bundled with Transloadit. The Uppy-based library talks to the Transloadit API and can be added to any Uppy plugin to boost functionality. In addition, Robodog features a modal user interface file picker that includes integration with HTML forms and support for imports from third-party services.

Continuous Efforts in Efficiency, Speed, and, Accuracy

Uppy already has a good list of features — from its modular, plugin-based lightweight architecture to an intuitive UI and easy compatibility with Transloadit. But the company is always looking for suggestions for further improvement.

In GitHub, a commit is a record of an individual change to a file that helps organize projects. With more than 1,000 commits, Uppy’s GitHub repository is massive.

It follows that the development of Uppy is primarily driven by its active open-source community. “We listen closely and adjust the project based on feedback,” Charlie said.

As for what’s next, the Uppy team has an entire lineup of improvements in store.

“Besides squashing all the bugs, speaking all of the languages, and addressing all of the a11y issues, there are a number of exciting plans on our public road map,” Charlie said. “There will be more integrations; after Vanilla, React, Vue, and Svelte, we still have to tackle Angular.”

The team also plans to add support for providers like Google Photos and Giphy, develop a WordPress integration, and create Uppy Mini for users who don’t need a full-blown dashboard but still want to offer a robust, connected, and energy-efficient uploading experience.

Other items on the checklist include enhanced integrations with Flutter and React Native and improved client-side image cropping, rotation, and editing.

“This is just the tip of the iceberg,” Charlie said. “There are also several things we would like to fix under the hood that will make Uppy even more efficient, fast, and seamless.”