Is it possible to create a completely new browser from scratch?
Published on

Nowadays we have 3 major and independent browsers: Chrome, Firefox and Safari. The rest of them are neither major nor independent. They are almost exclusively some derivative of Chromium (the base of Chrome) or Firefox. Among them are Edge, Opera, Brave, Yandex Browser, Opera, Tor, Waterfox, etc.
Why no company is going to write their own browser from scratch nowadays? It seems like Opera had its own engine till 2013. Microsoft Edge was also based on its own engine until switching to Chromium in 2020.
Insane complexity
Modern browsers are among the most complex pieces of software in the world. For instance, Chromium, as for 2025, has about 46 million LOC. Browsers are not just HTML renderers - they include:
- CSS / layout engines.
- JavaScript engines (which are virtual machines with JIT compilers).
- Networking stacks.
- Sandboxing and process isolation.
- GPU acceleration.
- Accessibility layers.
Each of these is its own mini-operating system in terms of scope and difficulty.
Standards compliance is brutal
Web standards (HTML5, CSS, ECMAScript, etc.) are vast and constantly evolving. And just to imagine the insane size of the today's web standards' specs, here is a table:
Spec | Org | Approx. Pages |
---|---|---|
HTML Living Standard | WHATWG | ~900 pages |
CSS (all levels + modules) | W3C | ~4,000+ pages (across dozens of specs) |
ECMAScript (JS) | ECMA | ~900 pages (2023 edition) |
DOM Standard | WHATWG | ~400 pages |
Web APIs (Canvas, WebSockets, IndexedDB, etc.) | W3C/WHATWG | ~3,000+ pages total |
HTTP/1.1 + HTTP/2 + HTTP/3 | IETF | ~500 pages |
TLS 1.2 + 1.3 | IETF | ~300 pages |
Unicode | Unicode Consortium | ~2,000+ pages |
WebGL/WebGPU | Khronos | ~300-500 pages |
And that's being conservative. Supporting them all correctly and consistently requires:
- Interpreting specs that are sometimes ambiguous.
- Passing tens of thousands of automated tests (like the WPT suite).
- Falling short means websites won't work properly - and users blame your browser, not the sites.
Also, the web is filled with decades of quirks. To render sites the way users expect, you need to reproduce behaviors - even buggy ones - of existing engines (like Chrome's Blink). Even a giant like Microsoft ditched their own engine (EdgeHTML) and adopted Chromium because compatibility is a nightmare to get right.
So what does this mean for the web's future?
It's unlikely that we'll see a completely new browser in the foreseeable future. This creates an unpleasant situation where established browsers can enjoy monopoly (such as Chrome and Safari) despite web is supposed to be an open platform. But on the other hand, Chromium and Firefox are still open source, which makes things a bit easier. Also, on top of that, developers have fewer browser bugs to worry about.
Web developers have to care
However, if developers keep saying "just make it work in Chrome", then the incentive to support other engines dies. In order to help the web to stay a healthy, diverse and open platform as much as possible we must do this:
- Major platforms (like GitHub or Netflix) need to actively support and test on non-Chromium browsers.
- Dev tooling (e.g., browser testing, dev consoles) needs to improve parity and make cross-browser work easier.
- We as developers have to stop writing "only works in Chrome" code - or worse, blocking other browsers with user agent checks.