Steve Heffernan created Video.js over 16 years ago. The project was sustained by Brightcove until the company was sold, its Video.js contributors were laid off, and the project effectively became abandoned.
Rather than simply resuming maintenance, Heffernan reached out to the teams behind Media Chrome, Plyr, Vidstack, and Mux Player — four separate open source video player projects — and persuaded them to throw out their own code and build something new together.
The result is Video.js v10, which achieves an 88 percent reduction in bundle size compared to v8. A minimal background player now ships at roughly 9KB minified and gzipped, with streaming support loaded only when configured rather than bundled by default.
The architecture represents a clean break. UI, playback, and streaming are fully separated concerns. The React integration uses hooks and render props rather than web component wrappers. Skins follow the shadcn pattern of copy-and-customize rather than rigid theming. Vue composables are planned.
The consolidation is remarkable in an ecosystem where competing projects rarely merge. That five separate teams agreed to start over together suggests genuine alignment on the problem and mutual respect among the maintainers.