Hi Hacker News!
I made a site which displays the most common useragents found on the web.
The site updates weekly with data sourced from the server access logs of another site I run in order to give an accurate picture of the devices and browsers being used on the web.
I do a lot of web scraping in my work and it's this group of people who I had in mind when creating the site.
The data is presented as useragent, browser, os, and relative percentage of occurence. It can be viewed as a table on the site or via json in the API.
Please let me know your thoughts or feedback and I hope you find it useful!
Thanks!
> The site updates weekly with data sourced from the server access logs of another site I run in order to give an accurate picture of the devices and browsers being used on the web.
If you only source data from one website, it is not an accurate picture by any means. Consider that other websites have different user bases. Your Firefox usage seems way too high for example, it's likely your other website is largely used by other technical people.
So they only need what is a reasonable UA as of this week. They don't need what is the most popular one.
[0] I.e. look at how many browsers are bunched at 0.22, 0.32, 0.43, 0.54, 0.65 with no entries between.
Why Orion?
1. It supports tree style tabs (note lower case, I mean the concept, not the extension) natively. (I think you can also use TST, the Firefox extension, as Orion strives to be compatible with Firefox and Chrome extensions).
2. It is not based on Chrome/Chromium, but rather on the built in browser engine on Macs.
That said I don't know if it shows up as Safari or if it shows up as its own.
We have a single-page app with lots of dynamically created elements. We discovered a case where Chrome kept input focus on an element that was deleted and recreated, while Firefox didn't, resulting in different behavior if the user pressed Enter next after clicking on that element. (I don't know which of those is the bug, if either. We wanted the Firefox behavior so I hacked in a .blur() in the event handler for Chrome.)
How do you feature detect a crash bug? Or a leak? If you run the code that crashes, you've crashed the page and can't then run alternative code.
But on the other hand, there are certainly some cases where you want to know actual browser version to work around the critical bugs: e.g., Safari 13 (I think?) had broken their implementation of WebSocket compression for about a year: the byte stream becomes garbled after about 64 KiB of data transmitted, and the WebSocket connection breaks down. How do you work around that without UA string?
And on the third hand, we may have proper APIs for feature detection nowadays but — how many webdevs actually have heard of them? And willing to update their legacy codebases? I personally haven't although I'm not a webdev by any stretch. And when one tries to google how to e.g. support some feature in different browsers, there are lots of older pages/resources/answers telling how to do it with contents of the UA header.
"there exists a use case that wouldn't be possible to implement without user agents" is not an argument. it's not philosophically valid. its dead obvious that you do not consider the whole picture if you make this argument. why does that 0.1% use case matter? especially given that it's not officially supported. especially given that for the last 10 years, the likes of google have shoved everything _straight_ into the web specs when they started considering it an official supported use case? if you are doing something that's not an official supported use case, why do we need to have hacks to support it? obviously the least ecologically harmful solution is for your use case to not be supported. of course we are talking web here, where scope creep is infinite and the protocols do nothing well instead of one thing well.
this is the very problem with the web, that "it doesnt have a concrete use case maaaaan", "ill just add and take what i want as i go", "the web is just the web maaaan you need to think on my wavelength to get it". these people embedded in web actually unironically just make shit up as they go along. they literally operate on an oscillating wave where today feature set 1 is good, tomorrow feature set 2 is good, and the day after, (what is essentially) feature set 1 is good. arguing to have a user agent string is the same idea. this is in strict contrast to a well designed product that actually solves a specific problem, like Standard ML, or a good SQL implementation (disregarding the specification conundrum) or JSON or VGA or TCP.
If you're parsing this info into the OS column, you should probably display this info in there at least with a note, or something like "Windows 10/11", "macOS 10.5 or newer"
I wonder if we can get to a default User-Agent string for a browser where just none of the information it contains is accurate. Lying to say you're "Mozilla 5.0" is ubiquitous, now we've got lying about the version of the OS you're on and lying about the architecture... the only stumbling block is that browsers pretty much all admit who they themselves actually are and their version somewhere. So we need to get a browser that's lying about those things, too.
> Chrome 62.09%
> Safari 26.55%
> Edge 3.23%
> Opera 2.94%
> Firefox 2.64%
> Samsung Internet 0.88%
> Internet Explorer 0.54%
> Android Webview 0.24%
> YaBrowser 0.16%
Bias: site audience is mostly writers/authors
> Chrome 44.36%
> Safari 22.40%
> Firefox 18.23%
> Edge 3.12%
> Samsung Internet 2.24%
> IE 0.38%
> Opera 0.32%
> YaBrowser 0.03%
Bias: German middle-upper class young families
edit: also in case someone is wondering about the Firefox numbers, Germans love Firefox. It's a thing.
Here’s our (also German, photography market) Top 5:
39.78 % Chrome
24.39 % Firefox
20.11 % Safari
7 % Edge
2.44 % Opera
edit:
And just because there are essentially only 2 mobile browsers, here’s the Desktop-only list:
34.08 % Chrome
32.26 % Firefox
16.82 % Safari
9.61 % Edge
2.79 % Opera
On your second point, I use a mix of Chrome and Firefox... can't remember the last time I ran into something that didn't work on Firefox. Is mandating Chrome really particularly common?
Deleted Comment
1. All the bots use the top UA to stay anonymousish.
2. This increases that UA share causing more of 1
3. Some of the bots are mission critical so humans complain if that UA is rejected so it is always accepted
4. Actual browsers decide to now just send the always accepted UA on any system to ensure the best experience, even as tech changes.
5. 100% of browsers send the 2022 UA top ranked string in 2032!
Case in point. An issue with Vivaldi browser was reported at the beginning of the year where google search/gmail/etc would show broken pages with links and buttons not working:
> Search for example shows the carriage, but does not accept user input.
> Gmail opens the page, but does not respond to any clicks to open emails.
> Image search doesn't show the images and pretends it's stuck "loading"
IIRC the issue was resolved on Vivaldi's side by changing UA to Chrome's for google services.
Transparent license/copyright info is another advantage of a package.
-- https://www.youtube.com/watch?v=oKg1hTOQXoY&t=1415s