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.