Read this article in Español, Русский, Français, Deutsch, 日本語.
To many people, the question of releasing Vivaldi browser’s source code under a unified open-source license seems to be clear-cut.
We’re providing Vivaldi for free, we make money from searches and partner deals, therefore allowing external people to have access to and potentially help with the source code shouldn’t be any trouble, right?
We have a lot of understanding for this point of view and this is a question we regularly struggle with internally, as many of us are proponents of open-source and use open-source software.
However, as with everything, it becomes a lot more complicated when you look at the details.
Vivaldi browser is part open-source, part closed-source
Before we go into open-source, here’s a brief reminder of how Vivaldi browser is built.
Vivaldi is built in roughly three layers.
As most people know, we use Chromium as a foundation for our browser.
On top of Chromium, we have a lot of backend C++ code to support our features, such as Ad blocker and Notes.
These two layers support our UI, which comes in two different flavors.
- On desktop, the UI is written using mostly HTML+CSS+JS.
- On Android, the UI is implemented in Java and is mostly derived from the Java UI included in Chromium (the license of the Chromium Java code doesn’t require us to publish changes made there).
Chromium itself has an open-source license and all the changes we make to it in order to support our UI layer and features get published. We also publish all our C++ feature backend code as if it were part of the Chromium changes. This makes our internal process easier because it lets us build everything – Chromium and our C++ code – in one library.
A copy of Vivaldi browser’s open-source code is available on our website. The changes are published under an open-source BSD license. Details are explained in the README and LICENSE files within the package.
Vivaldi also contains third-party code. Licenses for this can be found in the source package and in the installed browser by navigating to vivaldi://credits.
Of the three layers, only the UI layer is closed-source. This means that roughly 92% of the browser’s code is open-source coming from Chromium, 3% is open-source coming from us and only 5% is our UI closed-source code.
It’s the Vivaldi brand
If Vivaldi browser is so close to being released under a unified open-source license, why isn’t it?
The Vivaldi UI is truly what makes the browser unique. As such, it is our most valuable asset in terms of code.
We don’t publish it under an open-source license and only release obfuscated versions of it. The obfuscation is partly there to improve performance, but it also very much is the first line of defense, to prevent other parties from taking the code and building an equivalent browser (essentially a fork) too easily.
But should we be afraid of forks in the first place?
This is highly subjective and I don’t expect to convince anyone. Instead, I’ll just explain where we are coming from on this issue.
From an open-source perspective, forks are pretty much the point. You fork someone else’s work, make something new and cool out of it, you get credit for your addition, the project you forked from gets the credit for being that project, and maybe they’ll take in your addition and everyone is happy.
But as I hinted earlier, Vivaldi is more than just its code. We have the brand and associated trademarks we have to enforce, which means any fork needs to be branded as a different product. This is the reason Chrome and Chromium are different things.
The new product then becomes an immediate competitor without putting any significant technical work to reach that status (it would still need to be marketed though).
When it comes to large projects that have been around for long enough or are household names, people won’t take notice of the fork.
However, as Vivaldi is still small and could be easily overshadowed, this makes our brand more vulnerable and not just in terms of revenue.
If a new project based on our code implements features that are fundamentally against our ethics (damaging to human rights or to the environment in some way, for instance), even though we would not in any way be associated with the author of those features, it can deeply affect morale on our side. And even though we would be in no way responsible for that project, being mentioned alongside it could affect our reputation.
If keeping the UI layer of Vivaldi closed-source and obfuscated allows us to put that sort of worry aside, it’s definitely worth doing, even if it’s far from a perfect solution. When it comes to business, we have to make decisions that minimize uncertainty, if only for the respect of ourselves as employees.
Open-source processes are costly too
There is also a more pragmatic reason for Vivaldi browser not embracing a unified open-source license. A big draw for us to go open-source would be to get contributions from many of the brilliant people out there who support us. But even that is not a clear win, given the size of our team. Open-source processes require people reviewing submitted patches and communicating with committers.
All this takes time, and given our constraints, we aren’t sure how the benefits would outweigh the investment of time. For now, we feel it’s more productive to keep our focus on building the most customizable browser.
What of the security benefits?
Even though most of the security-relevant code for Vivaldi browser is in Chromium, there is some security-relevant code in the UI as well. If you think that specific security-relevant parts of the UI should be open-sourced to make Vivaldi more trustworthy, let us know and we’ll consider putting it out as part of our code bundles, so you can check it for yourselves.
What happens if Vivaldi dies?
This is a totally valid concern. Quite a few of us at Vivaldi retain some frustration at how Presto-based Opera basically couldn’t continue existing after Opera Software decided to switch to a Chromium-based implementation. I personally spent a lot of time working on Presto-based Opera, improving it, fixing it and I feel that, yes, if it had been open-source, it might still have been living on to this day and all that work wouldn’t have gone to waste.
See how Vivaldi stacks up against Opera
So, wouldn’t it be good to open-source Vivaldi for this reason alone? Yes, it would be really good. This is pretty much something everyone working at Vivaldi agrees on at the moment. On the other hand, we are growing and we aren’t pessimistic about our future. Ultimately, while this is something we want to address, it’s not a pressing issue right now.
No going back
This is the most important point, one of the keys to the whole conundrum.
You can’t test open-source and then go back to closing everything off if it turns out that open-source isn’t for you. Code that has been released under an open-source license remains open in perpetuity. The only way you can work around this is to make the released code obsolete, and that requires a significant amount of time. So, from a business perspective, the safe solution when you don’t know for sure if open-source is the right way to go is to not try it. As great as open-source licenses are, this is an unfortunate aspect of them.
Mod Vivaldi to customize it even more
If you aren’t bothered by the minutiae of the open-source arguments and are only interested in being able to edit the code to customize Vivaldi browser to your taste (and have the skills), you can do just that with our desktop version.
You can make sense of the obfuscated code and mod it for personal use by simply editing the minified javascript code directly.
This is easier to do than in other browsers which all require a full compilation step in order to apply a change.
Even though our license doesn’t formally allow for this, we welcome it and we allow users to share these code modifications through our forums.
Should Vivaldi browser be open-source?
As you have hopefully seen, this is not an easy question.
While there are arguments pointing in both directions, we are happy with what we can offer now – software that is free, including a large open-source license portion and with only a limited amount of closed, but moddable code.
We’ll stick to this for as long as we feel that protecting both the look and feel of Vivaldi and the identity of our brand is valuable. This is something we will keep reconsidering (we are secretly cheering for this but you didn’t hear us say that).
Photo by Markus Spiske on Unsplash.