Mave Opened Its Video Platform. The Player Still Comes From Its CDN
On 8 October the Dutch video host released Mave Core under AGPL. Self-host it and your media and analytics stay home, but by default your viewers' browsers still fetch the player from cdn.video-dns.com. One setting changes that.
Inês Valente
Journal editor, Lisbon

The Journal · Made in Europe
The sentence that matters is in the second paragraph of the self-hosting docs, under What you run. Browser components load from Mave's hosted CDN by default, so browsers need internet access even though media and analytics stay on your installation.
I went looking for it because of the launch post. On 8 October 2026, mave.io B.V., a video host in the Netherlands, published Mave is now open source. Mave Core is the dashboard, the encoding pipeline, the embeddable player, analytics, the API and a self-hosting setup, under AGPL-3.0-or-later with a commercial licence on the side. Billing and payment processing for the managed service stay closed. That much is in the announcement. The CDN line is not.

What you get when you clone it
Mave is a hosted alternative to Vimeo and Wistia for organisations that want video on their own site without ads or tracking cookies. You upload, it encodes renditions and subtitles, you paste an embed. De Correspondent is the customer quote on the homepage.
Core is an Elixir and Phoenix app. I cloned github.com/maveio/core today and read the compose files and the self-hosting README rather than the marketing page. Three commands start it: git clone, cd core, docker compose up. The bundle is six things: Core, PostgreSQL for app data, ClickHouse for analytics, MinIO for S3-compatible storage, tusd for resumable uploads, and Caddy for HTTPS. FFmpeg runs inside the app container. Each upload goes through a versioned graph that inspects the source, encodes, packages HLS and makes posters, and every step records its status, so a failed encode is something you can look at and retry.
For an evaluation they ask for 4 CPU cores, 8 GB of RAM and 20 GB of free disk. A single upload is capped at 20 GiB unless you change MAVE_MEDIA_INPUT_MAX_BYTES. The docs are blunt about what is missing: no automated backups, no high availability, no zero-downtime migrations. docker compose down -v deletes everything.
It is also young. The repository has 18 commits. The first is dated 8 October. Token-protected playback landed on 10 October, and v0.2.0, v0.2.1 and v0.2.2 were all tagged on 12 October. The release notes say minor versions may break things until 1.0, and that these are source releases, not prebuilt images.
The part that still phones out

The self-hosting guide in the repo is more specific than the docs page. Browsers load @maveio/components and @maveio/data from cdn.video-dns.com by default. In the code, the fallback is hard-wired in the settings serializer: if you set nothing, every embed snippet your installation generates points at https://cdn.video-dns.com/npm/@maveio/components, and the default content security policy allows that origin.
So picture a hospital or a city council that self-hosts Mave precisely to keep viewers off third-party servers. The video bytes come from their own MinIO. The play counts go to their own ClickHouse. But each visitor's browser still makes a request to Mave's CDN for the player code, which hands over an IP address and, depending on referrer policy, the page it was on. When I looked it up this morning, cdn.video-dns.com resolved to Scaleway's edge network, which is French. That is a European hop. It is still somebody else's server.
This is not hidden. It is in the docs, the repo README and the self-hosting guide, and the guide gives the reason: no local component build is needed. The components are their own MIT-licensed project, version 0.0.197 on npm. Two environment variables, MAVE_COMPONENTS_BASE_URL and MAVE_COMPONENTS_SRC, point the embeds at a bundle you host yourself. The guide adds one more line: this distribution does not vendor one. You fetch or build it and serve it.
Managed is still the product they sell
The pricing page has not changed shape. Test is free for 30 days with one video, 5 GB of storage and 10 GB of traffic. Starter is €19 a month billed annually for 100 videos, one user, 500 GB of storage and 1 TB of traffic. Pro is €79 with eight users, Team €179 with twenty. Enterprise adds your own EU region and SSO. Paid plans include the player, encoding, automatic subtitles and analytics.

Further down, the comparison table against YouTube, Vimeo, Wistia and Bunny Stream rates Mave Strong on open source: yes, the whole platform (Mave Core). The table says it was reviewed on 29 September, nine days before the code went public. Whole is generous for a release that leaves billing out by design. It is fair for the parts a self-hoster needs, and on the managed service the CDN question does not arise, because you already chose to let Mave run the delivery.
I think Mave got the hard part right. The licence is a real copyleft one, the docs state their own limits, and the CDN default is written down in three places instead of none. What I would change is the order. A self-hosted video platform whose selling point is that viewers are not tracked should ship with the player served from the same box, and make the CDN the opt-in. Until it does, the first thing to put in your .env is not your domain name. It is the components URL.
Find your next European tool
Browse a curated directory of software made in Europe across every category your team relies on.
Explore the directory
