story
If you don't have a large team of developers and a few millions in the bank you basically don't have a chance.
As Google keeps pushing more and more features in the browser the bar keeps getting higher and higher. I'm actually surprised that Mozilla still manages to mostly keep up, but since it's mostly running on Google's money it's still not quite a relief.
I don't think this is even remotely true. Those same arguments (using apis, good security, good ui, speed, etc) could be made for any piece of non-trivial software. But there's no way a browser is "on par" in complexity with an operating system.
It's probably not the best metric but my checkout of the Linux kernel (a very advanced OS with support for many architectures and devices) is at about 14 million lines of C code (per sloccount), although if you remove device drivers and only count the "core" of the kernel you end up with about 3M lines. I don't have any browser source code available on my computer but a website[1] says that Firefox 20 (released in 2013) was around 4M lines of code and was rising quite fast.
Again, this is comparing apples to kernels but it shows that it's still within the same order of magnitude as far as code size is concerned. The maintenance burden alone on these large codebases is huge, you need teams of engineers just dealing with things like testing and regressions. The bar is extremely high for competition, you won't have two clever engineers write the next killer browser in their basement.
Now consider how many websites that exist with all kinds broken code, use of dead APIs, old versions of, well, everything. Yet a modern browser can display those sites just fine 99% of the time. Users expect this!
Making a modern browser that works across all those nearly infinite combinations is considerably more difficult than making a kernel boot on a new board with a plethora of datasheets out in the wild to download at your leisure.