February 2026
Documentation Refinements
- CORS guide expanded — Added a section on handling preflight caching behavior across different CDN providers. Clarified the interaction between
Access-Control-Max-Ageand browser-specific preflight cache limits. Included concrete header examples for Cloudflare and AWS CloudFront configurations. - API events reference updated — Documented the order-of-execution for overlapping events when multiple files upload simultaneously. Added a note about the timing of
fileSuccessrelative to server-side reassembly completion. - Rate limits page refined — Expanded the token bucket explanation with a worked numerical example. Corrected a formula in the burst capacity section.
January 2026
Example Updates
- React integration example revised — Updated the hooks-based example to reflect current React patterns. Replaced the class component fallback section with a functional component using
useReffor Resumable instance management. Verified compatibility with React 18 and 19 concurrent features. - Resume after refresh example — Improved the localStorage serialization approach to handle edge cases where stored chunk metadata could become stale if the server purged temporary files. Added a staleness check mechanism.
- Basic uploader example — Simplified the progress bar CSS to use a single CSS custom property instead of inline width calculations. Reduced the minimal setup to fewer lines without sacrificing error handling.
December 2025
Compatibility Notes
- Browser compatibility tables reviewed — Verified
File.slice()support data across current browser versions. Confirmed that thewebkitSliceprefix is no longer needed for any browser with meaningful market share. Updated the overview page to remove legacy prefix references. - Node.js receiver examples — Tested server receiver code against Node.js 20 LTS and Node.js 22. Updated the multer-based example to account for a minor API change in multer v2 regarding disk storage configuration.
- TypeScript type notes — Added a note to the configuration reference about community-maintained TypeScript type definitions and their coverage of constructor options. Documented which options have accurate types and which require manual type assertions.
November 2025
Operational Notes
- Logging guide added — Published a comprehensive guide on structured logging for Resumable.js upload pipelines. Covers correlation IDs, log levels appropriate for chunk-level events versus file-level events, integration with ELK and Datadog, and alerting thresholds for upload failure rates.
- Timeout configuration guide expanded — Added sections covering proxy chain timeout ordering (client → CDN → load balancer → application server) and the common misconfiguration where an upstream timeout fires before the application timeout, producing misleading error responses.
- Caching guide updated — Clarified the distinction between caching static documentation assets and ensuring upload endpoints bypass all cache layers. Added Vary header guidance for APIs that serve different responses based on authentication state.
- Security guide expanded — Added a section on Content-Disposition header handling during file downloads of reassembled uploads. Documented the importance of sanitizing filenames on the server side even when client-side validation is in place.
October 2025
Content Additions
- S3 and object storage guide — Expanded coverage of multipart upload workflows when using Resumable.js with S3-compatible backends. Added MinIO-specific configuration notes and a section on pre-signed URL patterns for direct-to-storage uploads that bypass the application server.
- File validation guide — Added client-side MIME type sniffing versus extension-based checking comparison. Documented the
fileTypevalidation callback with examples for image dimension checking before upload begins. - Drag and drop example — Revised the drop zone styling to use modern CSS with
:has()selector for visual feedback during drag-over events. Maintained fallback styling for browsers without:has()support. - Chunking guide refined — Updated the chunk size recommendation table with benchmarks from current network conditions. The previous recommendations were based on measurements from 2023 and did not account for improvements in average upload bandwidth.
September 2025
Infrastructure and Corrections
- Server receivers guide — Added a PHP 8.3 receiver example alongside the existing Node.js and Python implementations. Corrected an error in the Python Flask example where the chunk reassembly function did not properly handle non-sequential chunk arrival.
- Configuration reference — Fixed an incorrect default value listed for
simultaneousUploads(was listed as 5, actual default is 3). Added documentation for thepreprocessFilecallback option that was missing from the reference. - Methods reference — Corrected the return type documentation for
getSize()and added a note about its behavior when called before files are added. Documented the optional parameter forcancel()that allows canceling a specific file rather than all uploads. - Retries and resume guide — Clarified the distinction between chunk-level retries (automatic, controlled by
maxChunkRetries) and file-level resume (requirestestChunksto be enabled). Added a troubleshooting section for common resume failures.
August 2025
Documentation Maintenance
- Cross-reference consistency — Audited all internal cross-references across guides, API reference, and examples to ensure links point to the correct sections. Fixed several references that pointed to renamed headings.
- Code sample formatting — Standardized code block formatting across all pages. Ensured consistent use of syntax highlighting for JavaScript, TypeScript, Python, and shell examples. Removed trailing whitespace from code blocks that caused horizontal scrolling on narrow viewports.
- Overview page tightened — Trimmed redundant paragraphs from the documentation overview. Reorganized the architecture section to flow from high-level concepts to implementation details more naturally.
