Published on January 27, 2026

Five players, one future: How we're building Video.js v10

Steve Heffernan
By Steve Heffernan5 min readProductPart of our story on Video.js

Over the past few months, we've shared how Media Chrome, Plyr, Vidstack, and Mux Player each approached video on the web differently — and what each team learned the hard way in production. Now they're coming together in Video.js v10.

Here's the short version: we’re combining the most important video player projects on the web, with some of the best open source player engineers I've ever worked with, on one team. I don't say that lightly. And even as the oldest among them (or maybe because I am the oldest), I feel privileged to be part of it.

LinkWhy this had to happen

Video.js has powered trillions of plays over 15 years. But open source projects don't survive on legacy alone.

When Brightcove was acquired last year, the Video.js contributors on their team were let go. The project needed new stewardship. Mux stepping in was the easy part. The harder question: what do we actually do with it?

A player without active development doesn't just stagnate; it slowly becomes incompatible with the web around it. After 15 years, some early architectural decisions are impossible to escape without doing something drastic. If we didn't rebuild Video.js now, it would eventually be replaced by something else.

So we're rebuilding it.

LinkWhat we're building

The engineers behind Media Chrome, Plyr, Vidstack, and Mux Player are building Video.js v10 together — not merging codebases, but rebuilding from scratch with everything we've collectively learned.

A few highlights (each post in the series goes deeper):

  • Real modularity. A background video player is 9KB. Streaming support loads only when you configure it. You ship only what you use. (More on the architecture)
  • Framework-native, not framework-wrapped. The React version uses hooks and render props because it's built in React. The Vue version will use composables. No more web component friction when you don't want it. (Rahim's post on why this matters)
  • UI separated from playback. Swap individual components, replace the entire media pipeline, or access the state layer directly. The architecture exposes these layers from the start rather than hiding them until you hit a wall. (Wesley's post on Media Chrome's evolution)
  • Beautiful by default, customizable by design. Multiple polished skins designed by Sam Potts (creator of Plyr). But instead of importing a theme and tweaking CSS variables, you copy a skin's source into your project and own it, shadcn-style. (Sam's post on sweating the pixels)
  • Mux integration when you want it. Drop in a playback ID and get automatic thumbnails, captions, authentication — all the magic from Mux Player, now through extensions. (My post on what we learned from Mux Player)

LinkWhat we're still figuring out

Timelines are hard when you're building a new architecture from scratch. We're a small team — five engineers at most on any given day, all with other responsibilities.

Video.js v8 has over 500 plugins, most built by contributors. It's still unclear how many will come back to help migrate or build new ones. Mux has dedicated significant resources, but Video.js really thrives when the community gets involved.

And the tradeoffs are real — performance, ease of use, beautiful design, small file sizes. There are genuine tensions among these goals, and we're learning together where they conflict.

We're not pretending we have all the answers. But the player is turning out better than I imagined.

LinkWhat this means for you

Currently using one of these players? They'll continue working with support for security patches, though feature development has slowed or stopped depending on the player. No urgency to migrate until it makes sense for your roadmap.

Want to kick the tires? Beta drops early March 2026. That's when we're targeting production-readiness for new, simpler applications. If you have mission-critical video playback, I'd wait for GA in mid-2026.

Want to help shape it? Now through GA is the time. Look through the docs and codebase, give us feedback. We're confident in the API direction, but we're open to changes if there's clear feedback.

Using the Mux Player iframe? You'll automatically benefit from Video.js v10's improvements without code changes.

LinkWhat's next

  • October 2025: Tech Preview launched at Demuxed
  • Early March 2026: Beta with core feature parity — start new projects here
  • Mid-2026: General availability with full features and migration paths

We've been heads-down on this for months now. I hope you're starting to see why we're excited!

Follow along: Video.js v10 roadmap | v10.videojs.org

Written By

Steve Heffernan

Steve Heffernan – Co-founder and Product Architect

Creator of Video.js and co-founder of Zencoder. Semi-professional drummer and apparently drove a Civic lowered more than Mux's live latency in high school.

Leave your wallet where it is

No credit card required to get started.