The GoldenRetriever plugin saves selected files in your browser cache (Local Storage for metadata, then Service Worker for all blobs + IndexedDB for small blobs), so that if the browser crashes, Uppy can restore everything and continue uploading like nothing happened. Read more about it on the blog.

1. Bundle your own service worker sw.js file with Uppy GoldenRetriever’s service worker. If you’re using Browserify, just bundle it separately, for Webpack there is a plugin serviceworker-webpack-plugin.

// sw.js


2. Register it in your app entry point:

// you app.js entry point
const GoldenRetriever = require('uppy/lib/plugins/GoldenRetriever')

uppy.use(GoldenRetriever, {serviceWorker: true})

if ('serviceWorker' in navigator) {
.register('/sw.js') // path to your bundled service worker with GoldenRetriever service worker
.then((registration) => {
console.log('ServiceWorker registration successful with scope: ', registration.scope)
.catch((error) => {
console.log('Registration failed with ' + error)

Voila, that’s it. Happy retrieving!