Component

Dropzone

Drag files in, click to browse, or just paste. Validation, previews, a concurrency-limited queue, per-file progress, cancel and retry — no dependencies, and one line to point it at your own endpoint.

Upload files

PNG, JPG, WebP, GIF or PDF · up to 8 MB each · 6 files max

No backend here — the transport is simulated (and fails a file now and then on purpose, so you can see the retry path). Set ENDPOINT in app.js and the real XMLHttpRequest path takes over, progress events and all.