Topics in this section
Shrink and sanitise media in the browser before upload with createImageBitmap, OffscreenCanvas in a Worker and WebCodecs — and what re-encoding costs you.
Explore topic →Measure bytes with xhr.upload.onprogress, aggregate across concurrent parts, coalesce writes per frame, and fold server processing events into one honest bar.
Explore topic →Classify retryable versus fatal upload errors, retry with full-jitter backoff, keep chunk writes idempotent, and resume from a durable checkpoint.
Explore topic →Model browser uploads as an explicit finite state machine with chunk offset tracking, a HEAD/Range or tus resume handshake, and IndexedDB persistence.
Explore topic →Run many uploads without saturating the browser or network — a bounded queue with priorities, pause and cancel, per-chunk limits and adaptive sizing.
Explore topic →Build upload interfaces everyone can use — a real file input behind every dropzone, keyboard paths, calm progress announcements and errors that explain the fix.
Explore topic →