# Uppy
Uppy is (going to be) a sleek, modular file uploader that integrates seemlessly with any framework. It fetches files from local disk, Google Drive, Dropbox, Instagram, remote URLs, cameras and other exciting locations, 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.
Uppy is developed by the [Transloadit](https://transloadit.com) team.
Check out [uppy.io](http://uppy.io/) for docs, API, examples and stats.
## Features (some in development)
- Lightweight, modular plugin-based architecture, easy on dependencies :zap:
- Use from a CDN or as a module to import
- Resumable file uploads via the open [tus](http://tus.io/) standard
- Supports picking files from sources like: Webcam, Dropbox, Facebook, bypassing the user's device where possible, syncing between servers directly via [uppy-server](https://github.com/transloadit/uppy-server)
- A nice user interface :sparkles:
- Speaks multiple languages (i18n) :earth_africa:
- Built with accessibility in mind
- Free for the world, forever (as in beer 🍺, pizza 🍕, and liberty 🗽)
- Works great with file encoding and processing backends, such as [Transloadit](http://transloadit.com), works great without (just roll your own Apache/Nginx/Node/etc backend)
- Cute as a puppy, also accepts cat pictures :dog:
## Demo
- [Full featured UI](http://uppy.io/examples/dashboard)
- [Simple Drag & Drop](http://uppy.io/examples/dragdrop)
## Usage
:warning: :construction: **Don’t use Uppy in production just yet, we’re working on it**
### Installing from NPM
```sh
$ npm install uppy --save
```
Bundle with Browserify or Webpack:
```js
import Uppy from 'uppy/lib/core'
import DragDrop from 'uppy/lib/plugins/DragDrop'
import Tus10 from 'uppy/lib/plugins/Tus10'
const uppy = Uppy()
uppy
.use(DragDrop, {target: 'body'})
.use(Tus10, {endpoint: '//master.tus.io/files/'})
.run()
```
Add CSS [uppy.min.css](https://unpkg.com/uppy/dist/uppy.min.css), either to `