duck-upload -- modular file upload engine
@gentleduck/upload is a modular, strategy-based file upload engine with React bindings. Resumable uploads, pluggable strategies, and type-safe from backend to UI.
Built for duck-upload
A modular, strategy-based file upload engine with React bindings. Resumable uploads, pluggable strategies, and type-safe from backend to UI.
Resumable Uploads
Split large files into chunks and upload them in parallel with automatic retry. Resume interrupted uploads without starting over.
Type-Safe From Backend to UI
Every upload config, hook, and state transition is fully typed. Catch misconfigurations at compile time, not in production.
Pluggable Strategies
Swap between S3 multipart, presigned POST, or custom strategies without changing your application code.
React Bindings
useUploader hook and UploadProvider give you reactive upload state, progress tracking, and file management out of the box.
S3 & MinIO Ready
Works with S3, MinIO, Cloudflare R2, and any S3-compatible storage. Presigned URLs keep credentials off the client.
State Machine & Persistence
Built on a state machine with clear lifecycle events. Persist upload state across page reloads and app restarts.