# Uppy > The open source JavaScript file uploader Uppy is an open source JavaScript file uploader for the browser. It uploads from disk and from remote sources such as Google Drive, Dropbox and OneDrive, resumes interrupted uploads over the tus protocol, and has official bindings for React, Vue, Svelte and Angular. For a Markdown twin, replace the HTML URL’s trailing slash with `.md` (`/docs/quick-start/` becomes `/docs/quick-start.md`). ## Documentation - [Quick start](https://uppy.io/docs/quick-start.md): Uppy is a sleek, modular JavaScript file uploader that integrates seamlessly with any application. It’s fast, has a comprehensible API and lets you worry about more important problems than building a… - [AI image generator](https://uppy.io/docs/ai-image.md): The `@uppy/image-generator` plugin lets users generate images from text prompts using Transloadit’s 🤖 `/image/generate` Robot. Under the hood it asks your backend for signed Transloadit parameters,… - [Angular](https://uppy.io/docs/angular.md): Angular components for Uppy UI plugins. - [Audio](https://uppy.io/docs/audio.md): The `@uppy/audio` plugin lets you record audio using a built-in or external microphone, or any other audio device, on desktop and mobile. The UI shows real time sound wavelength when recording. - [AWS S3](https://uppy.io/docs/aws-s3.md): The `@uppy/aws-s3` plugin uploads files from the browser directly to an S3 bucket, or to any S3-compatible service such as Cloudflare R2, MinIO, or DigitalOcean Spaces. - [Box](https://uppy.io/docs/box.md): The `@uppy/box` plugin lets users import files from their Box account. - [Building plugins](https://uppy.io/docs/guides/building-plugins.md): You can find already a few useful Uppy plugins out there, but there might come a time when you will want to build your own. Plugins can hook into the upload process or render a custom UI, typically… - [Building your own UI with Uppy](https://uppy.io/docs/guides/building-your-own-ui-with-uppy.md): This guide is in progress. - [Choosing the uploader you need](https://uppy.io/docs/guides/choosing-uploader.md): Versatile, reliable uploading is at the heart of Uppy. It has many configurable plugins to suit your needs. In this guide we will explain the different plugins, their strategies, and when to use them… - [Companion](https://uppy.io/docs/companion.md): Companion is an open source server application which **takes away the complexity of authentication and the cost of downloading files from remote sources**, such as Google Drive, Dropbox, and others.… - [Comparison of uploaders](https://uppy.io/docs/comparison.md): Below is a comparison of **features** in Uppy versus other popular uploading software and services. - [Compressor](https://uppy.io/docs/compressor.md): The `@uppy/compressor` plugin optimizes images (JPEG, PNG, and any other format supported by the client’s browser) before upload, saving up to 60% in size (roughly 18 MB for 10 images). It uses… - [Custom stores](https://uppy.io/docs/guides/custom-stores.md): If your app uses a state management library such as Redux, it can be useful to have Uppy store its state there instead. That way, you could write custom uploader UI components in the same way as the… - [Dashboard](https://uppy.io/docs/dashboard.md): The all you need Dashboard: powerful, responsive, and pluggable. Kickstart your uploading experience and gradually add more functionality. Add files from remote sources, edit images, generate… - [Drag & Drop](https://uppy.io/docs/drag-drop.md): The `@uppy/drag-drop` plugin renders a drag and drop area for file selection. - [Drop target](https://uppy.io/docs/drop-target.md): The `@uppy/drop-target` plugin lets your users drag-and-drop files on any element on the page, for example the whole page, `document.body`. - [Dropbox](https://uppy.io/docs/dropbox.md): The `@uppy/dropbox` plugin lets users import files from their Dropbox account. - [Facebook](https://uppy.io/docs/facebook.md): The `@uppy/facebook` plugin lets users import files from their Facebook account. - [File input](https://uppy.io/docs/file-input.md): As of Uppy 5.0, `@uppy/file-input` is removed. Prefer the headless hooks (e.g., `useFileInput`) from `@uppy/react`, `@uppy/vue`, or `@uppy/svelte`, or use `@uppy/dashboard`. See the migration notes in… - [Form](https://uppy.io/docs/form.md): The `@uppy/form` plugin integrates with an existing HTML `
` element to extract input data from it, and send along with the Uppy upload. It then appends the upload result back to the form via a… - [Golden Retriever](https://uppy.io/docs/golden-retriever.md): The `@uppy/golden-retriever` plugin saves selected files in your browser cache, so that if the browser crashes, or the user accidentally closes the tab, Uppy can restore everything and continue… - [Google Drive](https://uppy.io/docs/google-drive.md): The `@uppy/google-drive` plugin lets users import files from their Google Drive account. - [Google Drive Picker](https://uppy.io/docs/google-drive-picker.md): The `@uppy/google-drive-picker` plugin lets users import files from their Google Drive account using the new Picker API. - [Google Photos Picker](https://uppy.io/docs/google-photos-picker.md): The `@uppy/google-photos-picker` plugin lets users import files from their Google Drive account using the new Picker API. - [Image editor](https://uppy.io/docs/image-editor.md): Image editor. Designed to be used with the Dashboard UI. - [Import from URL](https://uppy.io/docs/url.md): The `@uppy/url` plugin allows users to import files from the internet. Paste any URL and it will be added! - [Import from WebDAV](https://uppy.io/docs/webdav.md): WebDAV (Web Distributed Authoring and Versioning) is an extension of the HTTP protocol that enables users to manage files on remote servers. It supports uploading, downloading, editing, and organizing… - [Informer](https://uppy.io/docs/informer.md): As of Uppy 5.0, `@uppy/informer` was merged into `@uppy/dashboard`. Use Dashboard’s built-in notifications triggered via `uppy.info()`. See the migration notes in the migration guide. - [Internationalisation](https://uppy.io/docs/locales.md): Uppy speaks many languages, English being the default. You can use a locale pack to translate Uppy into your language of choice. - [Migration guides](https://uppy.io/docs/guides/migration-guides.md): These cover all the major Uppy versions and how to migrate to them. - [Next.js](https://uppy.io/docs/nextjs.md): Integration guide for Next.js featuring the dashboard, the tus uploader, transloadit, multipart uploads to a Next.js route, the Uppy UI components, and the React hooks. - [OneDrive](https://uppy.io/docs/onedrive.md): The `@uppy/onedrive` plugin lets users import files from their OneDrive account. - [Progress bar](https://uppy.io/docs/progress-bar.md): As of Uppy 5.0, `@uppy/progress-bar` is deprecated. Use Dashboard or build a custom indicator with Uppy’s `progress`/`upload-progress` events (see examples in the migration guide). - [React](https://uppy.io/docs/react.md): React components for the Uppy UI plugins and hooks. - [React Router](https://uppy.io/docs/reactrouter.md): Integration guide for the React components for the Uppy UI plugins and hooks. - [Remote sources](https://uppy.io/docs/remote-sources.md): `@uppy/remote-sources` is a preset plugin (meaning it bundles and sets up other plugins) to add all the available remote sources, such as Google Drive, Dropbox, and others to Uppy Dashboard in one… - [Screen capture](https://uppy.io/docs/screen-capture.md): The `@uppy/screen-capture` plugin can record your screen or an application and save it as a video. - [Status bar](https://uppy.io/docs/status-bar.md): The `@uppy/status-bar` plugin shows upload progress and speed, estimated time, pre- and post-processing information, and allows users to control (pause/resume/cancel) the upload. - [Supporting IE11](https://uppy.io/docs/guides/browser-support.md): We officially support recent versions of Chrome, Firefox, Safari and Edge. - [Svelte](https://uppy.io/docs/svelte.md): Svelte components for the Uppy UI plugins. - [SvelteKit](https://uppy.io/docs/sveltekit.md): Integration guide for using Uppy UI plugins and components with SvelteKit. - [Thumbnail generator](https://uppy.io/docs/thumbnail-generator.md): `@uppy/thumbnail-generator` generates proportional thumbnails (file previews) for images that are added to Uppy. - [Transloadit](https://uppy.io/docs/transloadit.md): The `@uppy/transloadit` plugin can be used to upload files directly to Transloadit for all kinds of processing, such as transcoding video, resizing images, zipping/unzipping, and much more. - [Tus](https://uppy.io/docs/tus.md): The `@uppy/tus` plugin brings resumable file uploading with Tus to Uppy by wrapping the `tus-js-client`. - [Unsplash](https://uppy.io/docs/unsplash.md): The `@uppy/unsplash` plugin lets users import files from their Unsplash account. - [Uppy + Transloadit framework guide](https://uppy.io/docs/guides/uppy-transloadit.md): This is the canonical browser integration for sending user-selected files to a Transloadit Assembly—one execution of your Template. The same integration works in JavaScript, React, Next.js, Vue, and… - [Uppy core](https://uppy.io/docs/uppy.md): Uppy can be an uploader and an interface with a lot of features. Features can be added incrementally with plugins, but Uppy can be as bare bones as you want it to be. So we build Uppy’s heart,… - [Uppy documentation](https://uppy.io/docs.md): Install Uppy, choose an uploader, add UI plugins, integrate frameworks, and configure Companion for remote sources. - [Vue](https://uppy.io/docs/vue.md): Vue components for the Uppy UI plugins. - [Webcam](https://uppy.io/docs/webcam.md): The `@uppy/webcam` plugin lets you take photos and record videos with a built-in camera on desktop and mobile devices. - [XHR](https://uppy.io/docs/xhr-upload.md): The `@uppy/xhr-upload` plugin is for regular uploads to a HTTP server. - [Zoom](https://uppy.io/docs/zoom.md): The `@uppy/zoom` plugin lets users import cloud video recordings from their Zoom account. Note that only licensed Zoom accounts can store their recordings in the cloud, so this functionality will only… ## Optional - [OpenAPI](https://uppy.io/openapi.json): Machine-readable description of the documentation content API. - [Examples](https://uppy.io/examples): Live, runnable Uppy demos. - [Blog](https://uppy.io/blog): Release notes and announcements. - [Sitemap](https://uppy.io/sitemap.xml): Every URL on this site. - [Source](https://github.com/transloadit/uppy): The Uppy monorepo on GitHub.