Building for the frontend on the web comes with the challenge of many unknowns. Many seem to dislike this and want to build only for one environment. I really like the challenge and you should too if you are a Front-end developer.
All the browser and devices #
At the moment there are about 63.000 browser-platform-device combinations. That's a lot. And there will be even more in the future.
It is impossible to test your site in all these combinations, so you have to find a way to make sure that your site works there without testing it everywhere. The way to do this is to learn to build for the unknown. To learn that every code may fail and be prepared.
I want only one browser #
I regularly hear from developers that they wish that there would only be one browser(engine). At the moment (beginning of 2020) we are in a situation where only three big browser/engines are active (Firefox, WebKit, Chromium). I really hope we don't end up with a monopoly. While it would be different from the »Internet Explorer monopoly« we had in the past, it would clearly not help the web.
Even if there would be only one browser engine left, there would still be fragmentation. Different devices, different screen sizes, different CPU power, different input devices, different output devices, different operation systems – so many differences.
So the bad news for everybody wishing that at some point they can build only for the known. It will never happen on the Front-end. If you dislike the challenge of the unknown that much, you may better work on the Back-end.
Progressive enhancement #
In the end, it is all about Progressive Enhancement. There is a lot about wrong assumptions about Progressive Enhancement as it seems. Some think it means to not use JavaScript at all, some think it is useless because they can't imagine that their CSS/JavaScript can fail in some scenarios and some think it means that you can't use new web technologies.
That's not really how I think about Progressive Enhancement. For me, Progressive Enhancement means »Preparing for the Worst and building for the Best«. It also means that I feel much more confident using new and even experimental web technologies, because I use them as an enhancement and I am still sure the basic stuff is there and works.
You should learn to like the idea of Progressive Enhancement, whatever you call it.