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.