30 ms·
PWA Browser Scorecards
- willsmith72 1y agoI'm still so pissed at how Apple continues to hamstring PWAs to push their own platform. Can't wait for the day their app store era is over and something actually user-focused is prevalent
- cutler 1y agoHarmonyoS has started the ball rolling.
- adamhartenz 1y agoHarmonyOS started it? What? Not Android?
- ffsm8 1y agoWasnt it Apple that famously came up with the concept, back before they introduced the app store? They only started back paddling after the app store was introduced and consequently crystalized into a multi billion $ market
- JimDabell 1y ago“PWA” is a bit of a nebulous concept, but it basically grew out of this blog post by Alex Russell, who was working at Google at the time: https://infrequently.org/2015/06/progressive-apps-escaping-tabs-without-losing-our-soul/ https://infrequently.org/2015/06/progressive-apps-escaping-t... When Apple launched the iPhone, Steve Jobs told people that if they wanted to build apps for the iPhone, they should build them as web apps. This wasn’t specifically about PWAs, just web apps in general. Users demanded native apps, so Apple launched the iPhoneOS SDK and App Store the next year.
- cosmic_cheese 1y agoThey’re pretty poor-to-mediocre under Android too. iOS isn’t helping but PWAs themselves also need to become much better to have any chance of displacing native apps.
- 01HNNWZ0MV43FF 1y agoOh cool, I was wondering about this. Is there not much PWA stuff for desktop or... does it not matter since you can just pin tabs?
- dankwizard 1y agoBecause they'd rather wrap it in Electron and farm system telemetry at that point.
- CharlesW 1y agoI think comparisons with desktop browsers will be interesting! I intend to make this configurable and let people choose browsers and browser versions, including desktop browsers.
- candiddevmike 1y agoPWAs work well on Desktops, you can install them on Chrome etc and they show up as native apps in Linux and Windows (opening in a chrome window, minus any address bar etc, at least). If you already have a PWA, I don't know what Electron would give you. You can also ship PWAs on the Microsoft Store and allow Windows 11 folks to natively install them (for an example/shameless plug: https://homechart.app https://homechart.app).
- 8cvor6j844qw_d6 1y agoAre there any popular PWA-only apps without a mobile app counterpart? File-sharing services (e.g., sharedrop?) seems to be some of them but I'm not sure if its popular in terms of usage.
- chocolatkey 1y agoIt's somewhat popular for piracy, when you know that your site could never pass the Apple/Google store reviews. I've seen it with, for example, manga aggregators
- candiddevmike 1y agoThere are a lot of PWAs packaged as mobile apps, probably more than you realize. Google makes this pretty seamless with TWAs, and you can use Capacitor/Cordova on iOS. You can even connect/write your own JavaScript interfaces to native APIs. FWIW, in the US, PWAs are a non-starter for most apps due to Apple having so much marketshare and having horrendous UX for installing them. Anytime you have to provide your users "instructions" to do something on iOS, you've lost (and it's by design).
- gabrielhfrn 1y agoI’ve always thought it funny how PWAs were pushed by Apple of all people in the beginning. Nowadays they might as well not exists for iOS/macOS
- gregsadetsky 1y agoReminds me of this very, very classic/epic post [0] by John Carmack on this very topic. Definitely worth a (re-)read. Steve first talked about application development for iPhone at the same keynote I was demonstrating the new ID Tech 5 rendering engine on Mac, so I was in the front row. When he started going on about “Web Apps”, I was (reasonably quietly) going “Booo!!!”. After the public cleared out and the rest of us were gathered in front of the stage, I started urgently going on about how web apps are terrible, and wouldn’t show the true potential of the device. We could do so much more with real native access! Steve responded with a line he had used before: “Bad apps could bring down cell phone towers.” I hated that line. He could have just said “We aren’t ready”, and that would have been fine. (read the whole thing, for real). [0] https://www.reddit.com/r/Games/comments/8l9qw2/comment/dzdwcbo/ https://www.reddit.com/r/Games/comments/8l9qw2/comment/dzdwc...
- nozzlegear 1y ago> Nowadays they might as well not exists for iOS/macOS PWAs work very well on macOS. I use the PWA version of discord instead of their electron app because it feels a lot more "native" and responsive than the alternative.
- JimDabell 1y ago> Nowadays they might as well not exists for iOS/macOS They work fine for both iOS and macOS. Safari scores higher than Firefox on Android. Don’t be fooled by scores like this that include non-standard behaviour. Including Blink-only behaviour that both Mozilla and Apple have rejected is obviously going to artificially inflate Chrome’s score.
- CharlesW 1y ago> Don’t be fooled by scores like this that include non-standard behaviour. Scores intentionally do not include non-standard or experimental capabilities. I'll make that clearer, thank you!
- staplers 1y agoWhy is Firefox marked as "unknown" for many easily findable settings/capabilities? (Ex: https requirement) This feels like a chrome ad
- CharlesW 1y agoFirefox has the same number of "Unknown" capabilities as Chrome and Safari. These are items which aren't tracked in Can I Use or MDN, and I intend to resolve those ASAP. (I appreciate you calling me out on that.)
- JimDabell 1y ago> This feels like a chrome ad A significant number of things on this list are non-standard things that only Google have implemented for Chrome, that no other rendering engine has agreed to implement. Obviously this gives a huge artificial boost to Chrome.
- SigmundA 1y agoTabbed Application Mode is really supported across all three? I know Chrome / Edge kept having issues with it being behind experimental flag and even the flag breaking and going away between builds. Never heard of Safari supporting tabbed mode for PWA's This is probably the biggest issue for me with PWA's windows.open actually opening a new full OS window sucks rather than a built in native tab strip. https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Manifest/Reference/display_override https://developer.mozilla.org/en-US/docs/Web/Progressive_web...
- CharlesW 1y ago> Tabbed Application Mode is really supported across all three? It is not, thank you. Fixed!
- rendaw 1y agoAh, I was curious about this too... but now it says that none of them support it. Surely at least one has to support it or else it wouldn't be a feature right? MDN says Chrome only...
- SahAssar 1y agoSeems like its chromeOS only for now.
- SigmundA 1y agoNot sure what the deal is with Chrome and tabbed mode, it has had a very long development cycle and it has to be turned on with experimental flag, and that keeps getting broken. https://issues.chromium.org/issues/393149332 https://issues.chromium.org/issues/393149332 Not sure why there isn't more traction here, tabs is the biggest thing holding back PWA's for me.
- abrookewood 1y agoLooks pretty cool. Some comments on usability, It would be handy to see a visual indicator of which capabilities where missing from each browser - maybe you could colour each section heading Green or Red? It would also be handy if you could toggle all open/closed.
- bigiain 1y agoIt might not be the objective of the owner of that site, but what I'd really like is an updated/maintained subset of what PWA features/components are usable across a selection of browsers - like iOS Safari and stock Android Chrome, Or Chrome/Safari/Firefox on desktop (perhaps filterable by OS too)?
- CharlesW 1y agoI really like those ideas for filtering, thank you!
- CharlesW 1y ago> It would also be handy if you could toggle all open/closed. Added, thanks! I really like the suggestion to use some kind of indicator in category headings, too.
- coastalpuma 1y agoI can easily imagine a world where you could install an open source PWA from an archive file into its own security sandbox without any further hoops to jump through, and it continues to just work indefinitely because the web has very good backwards compatibility guarantees. Instead, we have to get licensed and notarized by the monopolies and they keep you on a constant treadmill of drudgery just to stay up to date. Or you install somebody else's monopoly-approved "legitimate business" app which steals or leaks your data. Sad!
- candiddevmike 1y ago> the web has very good backwards compatibility guarantees Kinda... Google and folks have been cracking down on security pretty hard, to the point where certain things would probably stop working if you weren't maintaining the security of the endpoint or something correctly. There are APIs (more and more everyday it seems...) that only work with "secure contexts" like HTTPS, and they're working actively on tightening HTTPS requirements (like shortening certificate lifetimes, valid ciphers etc). Sure, this helps improve security, but not without breaking compatibility.
- iambateman 1y agoThe fact that iOS safari supports SO many lifecycle features except BeforeInstallPrompt is just so frustrating. You can feel the dev team trying to get as close as they can without shooting their golden goose App Store. So many apps could be PWA…and we could expect so much more from the median PWA.
- twism 1y agoThis. PWA is the end of 75% of apps being in the app store
- consumer451 1y agoThat would be the interesting thing for an EU regulation to try to cover, maybe more than the app store regs. PWAs are just websites, so Apple can't really make same security argument, right? That would be a nicer world.
- TulliusCicero 1y agoSeems doubtful to me. Native apps just tend to feel better. This scorecard says that Chrome for Android already does pretty well, but how many users use PWAs on Android?
- kelthuzad 1y ago>Seems doubtful to me. Native apps just tend to feel better. I'm really tired of hearing this quite frankly, because the reasons as to why that happens to be the case in some scenarios is not "just" a coincidence, which has been explained ad nauseam. >This scorecard says that Chrome for Android already does pretty well, but how many users use PWAs on Android? While I've not seen any stats, I personally use them where possible. Interestingly, my boomer Dad, who is completely clueless when it comes to technology, independently discovered them. He has no idea what a "PWA" is, but he always asks me to "make this website an app for me".
- zenmac 1y ago>Seems doubtful to me. Native apps just tend to feel better. That may have being true a few years ago, but now days unless you are really pushing for very specific stuff GPU stuff. With CSS GPU acceleration its barely noticeable for normal UIs. Now there are tons and tons of PWA that is done in a very in efficient way, then you get a really laggy app.
- judah 1y agoSeems like a useful resource to help devs understand PWA support across platforms. Thank you! I help run PWABuilder.com, which packages PWAs for app stores. I think it would be helpful to our users to see your pwascore.com site. Maybe we can link to your site from ours.
- CharlesW 1y agoYes, please! My email is in my profile in case you need anything.
- streptomycin 1y agoIt says "popular mobile and desktop browsers" but doesn't include the most popular desktop browser, Chrome? I know it has Chrome for Android, but desktop Chrome supports some extra stuff (Shared Workers, File System Access API) which makes it basically the best browser for PWAs. Feels like that level of popularity and quality should be represented somewhere. Biggest problem for me as a PWA dev is how eager mobile browsers are to delete your local data, which is not part of this scorecard. I guess that's tricky to quantify, but basically they all suck but Safari sucks more.
- srcreigh 1y agoThis site is harmful. Yes, we need to do this, but it has to be an actual test suite. People need to be able to contribute tests to expose broken “supported” functionality. This just perpetuates lies. Kudos to the author, I have absolutely nothing against your efforts, but the approach is just flawed in my opinion.
- CharlesW 1y agoI like the idea of actually testing for the capabilities. Can you share more about what you'd find useful? Maybe a "benchmark my browser" feature that adds a column? The data sources are credited at the bottom, and I feel like they're both gold-standard references. I'm open to suggestions!
- JimDabell 1y agoRemove all the non-standard stuff. If only Blink supports something because no other rendering engine thinks it should be implemented, then it doesn’t belong here. It’s non-standard, vendor-specific behaviour that you’re making people think is standard.
- CharlesW 1y ago> Remove all the non-standard stuff. I can create a filter for that, thanks for the feedback! Importantly, experimental and non-standard features are not counted in the primary score. Experimental capabilities have a little 'flask' icon next to them, and non-standard items have a little 'warning' icon next to them, mirroring MDN conventions.
- JimDabell 1y ago> Experimental capabilities have a little 'flask' icon next to them, and non-standard items have a little 'warning' icon next to them, mirroring MDN conventions. This is not true. I haven’t gone through each item in detail, but there are no icons for Web Bluetooth, Web NFC, or Web USB. All of these are non-standard, Blink-only APIs that no other rendering engine has agreed to implement. Mozilla on Web Bluetooth: > This API provides access to the Generic Attribute Profile (GATT) of Bluetooth, which is not the lowest level of access that the specifications allow, but its generic nature makes it impossible to clearly evaluate. Like WebUSB there is significant uncertainty regarding how well prepared devices are to receive requests from arbitrary sites. The generic nature of the API means that this risk is difficult to manage. The Web Bluetooth CG has opted to only rely on user consent, which we believe is not sufficient protection. This proposal also uses a blocklist, which will require constant and active maintenance so that vulnerable devices aren't exploited. This model is unsustainable and presents a significant risk to users and their devices. — https://mozilla.github.io/standards-positions/#web-bluetooth https://mozilla.github.io/standards-positions/#web-bluetooth Mozilla on Web NFC: > We believe Web NFC poses risks to users security and privacy because of the wide range of functionality of the existing NFC devices on which it would be supported, because there is no system for ensuring that private information is not accidentally exposed other than relying on user consent, and because of the difficulty of meaningfully asking the user for permission to share or write data when the browser cannot explain to the user what is being shared or written. — https://mozilla.github.io/standards-positions/#web-nfc https://mozilla.github.io/standards-positions/#web-nfc Mozilla on Web USB: > Because many USB devices are not designed to handle potentially-malicious interactions over the USB protocols and because those devices can have significant effects on the computer they're connected to, we believe that the security risks of exposing USB devices to the Web are too broad to risk exposing users to them or to explain properly to end users to obtain meaningful informed consent. It also poses risks that sites could use USB device identity or data stored on USB devices as tracking identifiers. — https://mozilla.github.io/standards-positions/#webusb https://mozilla.github.io/standards-positions/#webusb As far as I can see, you’re counting these Blink-only Google APIs as standards that other browsers are failing to implement.
- yujzgzc 1y ago"Security and privacy" is kind of a funny one to rate. As I understand it, one of the main reasons why Safari doesn't support as many advanced APIs as other browsers is that they want to avoid technologies that pose a fingerprinting risk. From that point of view, Chrome is pretty bad.
- CharlesW 1y agoFair point. Any thoughts on whether it makes sense for this page to reflect that, and if so, how?
- eichin 1y agoThe MDN links in the first section are failing for me - for example, Start URL takes me to https://developer.mozilla.org/en-US/docs/Web/html/manifest/start_url https://developer.mozilla.org/en-US/docs/Web/html/manifest/s... which says "Sorry, the page /en-US/docs/Web/html/manifest/start_url could not be found." (One of the search options on the 404 page goes to a possible PWA-related page, but it's also marked as "Limited" there.)
- CharlesW 1y agoFixed! I switched to a more reliable method of generating these URLs. Thank you for taking the time to try the site and reporting back!
- eichin 1y agoConfirmed that it now works for me. Thanks! (I'm sort of using it as a "what can PWA's do" study guide for My First Android PWA, so the section organization is almost as big a deal as the "does it even work" indicators - seeing "App Icon Badges: unsupported" does tell me that I don't need to bother figuring out what those even are, I can move on to something else.)
- Steltek 1y agoThis page oversteps the definition of PWA and seems to be more like QuirksMode for advanced features. For example, is AR/VR a critical PWA feature or is that just advanced capability? Where does PWA end and "replaces any conceivable native app" begin?
- CharlesW 1y agoIt's an interesting question. Where do you think the line should be? I think I understand the deeper point you're trying to make, which is that not all web platform capabilities are created equal when it comes to making PWAs a legitimate alternative to native apps. I've tried to be thoughtful about this, and my solution was to weight the capabilities from 0.5–3. At the two ends of that range, I gave required PWA features a weight of 3, and nice-to-have/experimental features a weight of 0.5. As you can see, this doesn't really penalize Chrome for its "stunt features", and I think it provides a more realistic picture of what Firefox and Safari are capable of for most PWA use cases. Additionally, experimental and non-standard features aren't used to compute the PWAscore. You can see raw scores (unweighted, and including experimental/non-standard features) in the tooltip of the "normal" score.
- Steltek 1y agoHonestly, I have no idea. Maybe categorizing things into MVP, standard, and advanced would be a good start. When I think of most apps on my phone, these capabilities are rare or non-existent: - USB - AV/VR - Payment processing or IAP (almost certainly my own tastes here tho) - Window management(?) - I'm not even sure what this means on mobile. But obviously, whatever deficiencies exist in background work or notifications are probably important. Looking at CIU, Firefox seems to have resolved them in more recent versions. In fact maybe some other comment has already mentioned it but FF/Android 141+ seems to have resolved a lot of those?