Modern, modular, and composable media player framework for Web and React.
🚧 Technical Preview - not recommended for production. 🚧
Thanks for checking out the project! It's in its early stages and currently a mix of prototyping and early structure pointing in the direction we want to go with Video.js v10 (so be kind 🙏).
- Read our early architecture goals.
- Read the v10 discussion topic
- Watch Heff's recent presentation
🚧 Detailed roadmap coming soon. 🚧
- Technical Preview (current): Initial showcase for Demuxed.
- Beta (Feb 2026): Core goals accomplished, stable core, adoption in real projects.
- GA (Mid 2026): Stable APIs. Feature parity w/ Media Chrome, Vidstack, and Plyr.
- Video.js (End of 2026): Video.js core/contrib parity and supported plugins migrated.
If you'd like to get started and learn more, you can find our documentation on our website:
This project is organized as a monorepo. Here's an overview:
- Packages - publicly published packages that make up the Video.js 10 media player framework
- core - shared platform/framework agnostic functionality, including
- media store compositional definitions
- media renderer and playback Engine functionality
- common core component behaviors and functionality
- icons - core (svg) icon set definitions used by platform/framework-specific implementations
- html - web component implementations of
- media UI components
- media icons
- media renderers
- media (state) providers
- react - React implementations of
- media UI components
- media icons
- media renderers
- media (state) providers
- utils - various platform agnostic (shared) and platform specific (dom) utility functions
- core - shared platform/framework agnostic functionality, including
- Examples - example applications for using Video.js 10.
- html-demo - an example application for using and smoke testing @videojs/html
- react-demo - an example application for using and smoke testing @videojs/react
- next-demo - an example application for using and smoke testing @videojs/react (Useful for validating things like SSR or other complexities not surfaced by react-demo
- Other
- site - the codebase for the Video.js 10 website
If you need help with anything related to Video.js 10, or if you'd like to casually chat with other members:
Video.js is a free and open source library, and we appreciate any help you're willing to give - whether it's fixing bugs, improving documentation, or suggesting new features. Check out the contributing guide for more! Contributions and project decisions are overseen by the Video.js Technical Steering Committee (TSC).
By submitting a pull request, you agree that your contribution is provided under the Apache 2.0 License and may be included in future releases. No contributor license agreement (CLA) has ever been required for contributions to Video.js. See the Developer's Certificate of Origin 1.1 .
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
Join our community channels above and give us feedback! Keep in mind this is a technical preview and we're working on a lot of polish over the coming months. Feedback on any of the following would help us:
- Player skin designs
- Architecture and general approach
- Initial embed code and component structure
- Package structure and exports
- Repo, workspace, contributor guides
- Component structures and APIs