DEV Community

Cover image for Video.js Was Abandoned After 16 Years. Its Creator Came Back and Merged 5 Competing Players Into One.
Aditya Agarwal
Aditya Agarwal

Posted on

Video.js Was Abandoned After 16 Years. Its Creator Came Back and Merged 5 Competing Players Into One.

The Video.js platform has been available for an entire generation of engineers to use, over 16 years. It powers trillions of video plays all over the web. Until recently, Brightcove was cutting the checks that kept the lights on.

Then Brightcove got sold. The contributers-at-the-time on their Video.js team got laid off. The project technically became abandoned.

So the original creator of Video.js, Steve Heffernan, came back and picked it up again. After 16 years.


That should be the end of it, right? It's a heartwarming story already. But it's what Steve did next that's interesting.

He didn't just keep the lights on and get maintenance back up to speed. He reached out to the engineers behind Media Chrome, Plyr, Vidstack, and Mux Player, four separate open source video player projects, and convinced them that all of them should volunteer to throw out their own code and build something new, together.

88% Smaller

Video.js v10 is 88% smaller than v8.

Not because they use brotli on the output bundle or found some clever way to only load modules that the user actually uses. As the player sat, it would give you a 9KB or so minified + gzip bundle for a background player. Streaming would give you a bloated 150KB or so. The standard didn't optimize for packaging parts that you didn't use and only lazy loaded them by default. They had to agree to start over.

The Architecture

They separated everything completely. UI isn't the player. Playback isn't the player. Streaming support isn't even loaded until you configure it.

React does not use web components to wrap the player in a react-like API. They actually just use hooks and render props to keep concerns separated where they belong. A promise not to stray from that in the Vue composables version is forthcoming.

Skins are shadcn-style, just grab 'em and own it.

Five Projects, One Codebase

But that's not what I keep thinking about.

Five independent video player projects — Media Chrome, Plyr, Vidstack, Mux Player — that's five different existing, completely independent code bases, each with owners, contributors, git history, inner opinions about the best architecture, and a slate of users that have decided that that's the specific codebase that they prefer to use.

All raise their hand, agreed that that made sense for new code, and now they're all actively working on the same thing and may even end up just co-maintaining one codebase.

Open Source Can't Work Like This

Open source can't work like this, right? Projects fork. Projects compete. They putter out because the founders just can't keep going anymore or the interests of the big dog of the sponsor shift.

The old Video.js could have gone that way too. Brightcove's gone. The number of users that will return to contribute can't be counted on when you're crossing your fingers.

But instead, the owner came back and said 'let's build one thing' and somehow pointed it at five separate already successful open source projects and no one bailed.

→ Beta dropped March 2026
→ GA expected mid-2026
→ Five engineers, all with other responsibilities
→ 500+ plugins from v8 that need migration

The project is alive. Whether it stays alive depends on whether the community shows up.

When was the last time you saw five competing open source projects voluntarily merge into one?

Top comments (0)