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 →