Changelog
Stay in the loop
Get notified when new versions and improvements are released.
v1.0.0August 2026
Initial release
The first public version of Drop Upload: a complete drag-and-drop file upload component for React, delivered as source you own — a component folder you drop into your app, not an npm package you depend on.
What's inside:
- Drag & drop, plus click to browse: built on the browser's own File, DataTransfer and AbortController APIs, so there is no upload library between your code and the file.
- Upload adapters: custom REST endpoint, S3, S3 multipart, Supabase and Cloudinary — with real progress, cancel and retry on each one.
- Validation: restrict allowed formats, size limits and file count, with the rejection reason surfaced in the UI. Dropped folders are caught and rejected too, rather than attaching as unreadable 0-byte rows.
- Avatar variant: a single-image avatar uploader sharing the same engine and props.
- Customization: plain CSS Modules — restyle it with your own tokens, no Tailwind required.
- Internationalization: English and Spanish copy built in, and
every string overridable via
translations. - Callbacks: hooks for attach, progress, success, error and cancel, so the component reports into your own state.
- TypeScript and JavaScript: fully typed source, with a plain JavaScript copy shipped in the same ZIP.
Compatibility:
- React: 18 and 19.
- Frameworks: Next.js, Vite, Remix and Astro. The component ships
its own
"use client"directive, so it imports straight into a React Server Component page. - Dependencies:
motion, and nothing else.
Try it in the playground, or start with the documentation.