Repository navigation
Add thorough documentation for Client Side Media #75111
Copy link
Copy link
Labels
[Feature] Client Side MediaMedia processing in the browser with WASMMedia processing in the browser with WASM[Status] In ProgressTracking issues with work in progressTracking issues with work in progress[Type] TaskIssues or PRs that have been broken down into an individual action to takeIssues or PRs that have been broken down into an individual action to take
Description
Overview
With the Client Side Media feature being graduated to a core capability in WordPress 7.0, thorough documentation is needed for both developers and users. This documentation should cover:
- How client side media processing works within the block editor
- The benefits of using browser-based media processing versus server-side
- Supported image formats and processing capabilities
- Graceful fallback mechanism for unsupported browsers (and partially supported browsers without iframe credentialless support)
- Integration points and hooks for plugin developers (e.g., JS-side hooks analogous to existing server-side ones). which hooks no longer fire during uploads. how to disable the feature using a hook.
- Guidance on handling Cross-Origin Isolation and SharedArrayBuffer requirements
- Known risks and environment requirements
Tasks
- Draft new sections for the official Gutenberg and WordPress developer documentation detailing Client Side Media
- Create or update user-facing documentation to explain changes in media uploading workflow
- Add information for developers about how to extend or interact with the new system
- Document how to handle fallback scenarios and browser compatibility
- Ensure reference to roadmaps and tracking issues (e.g., Client Side Media iteration for WordPress 7.0 #74333) for additional context
- Draft a make/core post announcing the feature, linking to the documentation
References
- Core tracking issue: Client Side Media iteration for WordPress 7.0 #74333
- Current experiments: https://github.com/swissspidy/media-experiments
Acceptance Criteria
- Documentation is published in relevant developer and user guides
- Key architectural and UX changes are clearly explained with actionable examples
- Plugin developers can find guidance for adapting to JS-side hooks and fallbacks
- Documentation includes links to foundational PRs and background issues
- Draft created for make/core post
Metadata
Metadata
Assignees
Labels
[Feature] Client Side MediaMedia processing in the browser with WASMMedia processing in the browser with WASM[Status] In ProgressTracking issues with work in progressTracking issues with work in progress[Type] TaskIssues or PRs that have been broken down into an individual action to takeIssues or PRs that have been broken down into an individual action to take
Type
Projects
- StatusShow more project fields✅ Done
Activity
[-]Add documentation for the new Client Side Media feature[/-][+]Add thorough documentation for Client Side Media[/+]Docs: Update client-side media docs for WP 7.1 release plan
adamsilverstein commentedon Jun 29, 2026
Animated GIF → video conversion has now landed in #78410 (merged), which adds a new Client Side Media capability that should be folded into this documentation effort.
Specific things to document for this feature:
ImageDecoder+VideoEncoder) and the mediabunny library, then the block is switched to a "GIF" variation of the Video block that plays like the original GIF.@wordpress/video-conversion(mirrors the@wordpress/vipsworker pattern; conversion runs off the main thread).core/imageattachment; the converted video and first-frame poster are sideloaded as companion files (recorded inmedia_details.animated_video/animated_video_poster), not separate attachments.preserveAnimatedGif). Gallery images stay GIFs; Media & Text / Cover are unaffected.ImageDecoder+VideoEncoderavailability and cross-origin isolation; falls back to uploading the original GIF when WebCodecs is unavailable (e.g. Firefox). Transparent GIFs are not converted.<video autoplay loop muted playsinline poster>with no render-time PHP.This is a good concrete example for the "supported formats and processing capabilities", "graceful fallback / browser compatibility", and "integration points for developers" sections.