Build upload UI that fits.
Keep your backend in charge.
Composable React components for choosing files, showing progress, and managing each upload. Use your existing upload() function.
Quick start
npm i uplofile0downloads / week
0downloads / month
0total downloads
React 16+MIT · zero deps
The whole thing
import { Root, Dropzone, Trigger, Preview } from "uplofile";export function Uploader() {return (<Root upload={putToS3}><Dropzone><Trigger>Choose files</Trigger><Preview /></Dropzone></Root>);}
Boundary
Uplofile handles
File state and lifecycle
Progress, cancel, retry, remove
Drag-and-drop and file dialog
Hidden input for form posts
You handle
Transport and protocol
Storage backend and auth
Retry and resumable strategy
All styling
Composable by default
Use each primitive independently, then make the upload experience yours.
Accessible interactions
Keyboard-friendly triggers and native file input behavior are built in.
Bring your transport
Keep your backend, credentials, and upload protocol exactly where they belong.