Skip to content

react-upload-kit

Headless, adapter-based file uploads for React. Drag & drop, validation, concurrency, and retry — you own 100% of the UI.

Features

HeadlessHooks-first API, zero styling opinions. You build the UI.
Adapter patternXHR, fetch, S3 presigned, tus.io — anything that returns a Promise.
Drag, drop, pasteNative DnD with live accept/reject, plus clipboard images.
QueueConcurrency, exponential backoff, AbortController cancel.
Zero depsOnly react as a peer. Dual CJS/ESM, tree-shakeable.
tsx
import { useUploader, useDropzone } from 'react-upload-kit';

const uploader = useUploader({ adapter, autoUpload: true });
const dropzone = useDropzone({ onDrop: uploader.addFiles });

Released under the MIT License.