FirefoxPWA: Progressive Web Apps for Firefox
github.com
github.com
It appears this is more of a packager that tries to turn a website into a pwa and makes it install more like a native app. I may try it out, but the name is horrible and damaging to Firefox so I'll probably not ship until that name is changed.
(Desktop, Fedora - in case that makes a difference)
It doesn't support "installing" PWAs like native apps, and that's a core feature of PWAs, so no it does not have great support for PWAs
> the name is horrible and damaging to Firefox so I'll probably not ship until that name is changed.
I think you're being a bit harsh here. Sure, a more accurate name would be "PWA Installer for Firefox", but to say it's deceptively named is pretty hyperbolic.
Is it different than Firefox's "Add to Home" button?
There are two ways to link to an application in Firefox: one just creates a shortcut ("Add to home") which opens the browser. The other opens a full screen application, like PWAs are designed to do.
When I hit the install button, what I really want is the latter but occasionally PWA detection seems to fail and installs a shortcut instead.
In desktop Firefox, Mozilla has decided to can this idea and not implement it. There was a bug open for this in bugzilla, but that was closed as WONTFIX.
It doesn't and the relevant bug is marked as WONTFIX.
It's a trademark violation, in that "FirefoxPWA" improperly implies that that Firefox is the brand behind the product. This isn't likely to go all the way to a court of law, but if it did it would be an open and shut case. The author should do the polite thing and rename their product.
Legally proper alternatives would be "PWAs for Firefox" or more clearly, "PWA Installer for Firefox" as suggested elsethread. Those aren't necessarily great product names, but they illustrate a point: the inversion makes it clear that this is a third party offering, rather than something coming from Firefox.
For what it's worth I don't think the author intended to create marketplace confusion, because the full product description "Progressive Web Apps for Firefox" makes it clear it's a third-party offering. It should be possible to resolve this amicably.
- [1] https://simplabs.com/blog/2020/06/10/the-state-of-pwa-suppor...
Makes it difficult to get the full 'App' experience people expect
It's all about the shitty browser storage on iOS.
I want Apple to do this as well to put pressure on google to fix their shit with letting these run rampant on the web.
Web apps that can be made resident on your phone home screen are another story, where notifications may be legitimate (e.g. chat apps).
For instance any shop I create an account with (Best Buy, Ulta Beauty, …) thinks I want to hear from them once a day or more often. If they tried to keep it relevant it would be one thing but it is really a conversation where one side talks talks and talks and the other isn’t listening. Right now on Arstechnia’s Dealmaster they are talking like it is news that Amazon Fire tablets on sale but they ought to just send me a notice when Fire tablets aren’t on sale.
People in this thread keep confusing notification request from random websites with notification requests from web apps you WANT to get notified from. It's a thing. And all browser offer a per-site preference. Having PWA support doesn't mean being spammed by every site you visit.
People who use the web are used to being spammed at every turn so naturally they are going to expect any feature usually used for spam to be used for spamming. It doesn’t help that PWA hasn’t had clear branding that ordinary people would understand.
i hope nobody is deciding that no apps should ever be allowed to send notifications, just because most notifications get blocked. it's still an incredibly useful feature even if most apps use it poorly.
Over time, the cost of these (completely optional and opt-IN) notifications grew enough that I figured it was time to seek an alternative. I fully implemented WebPush notifications and evaluated them with my users. I found that most Android devices wouldn't vibrate nor make a sound when a notification is received, and iOS straight up doesn't support these APIs. With these findings, I scrapped the entire implementation. It was useless to our users and only led to more confusion.
If I had to guess, I would say that is the exact reason 99% of WebPush usage is spammy. Spammers don't really care about quality of service, they just want to cast a wide net. I'm willing to bet the API would see a massive uptick in legitimate adoption if it wasn't so utterly useless in the real world.
This wouldn't be a problem if users could use other browsers that are not that buggy and have the features needed to build native-like app experience. But Apple is banning any other browser from using their own engine, they are all forced to use the buggy and lagging behind WebKit. Firefox, Edge, Chrome, etc on iOS are just skins around WebKit.
So there is basically no browser competition on iOS, and this is how Apple prevent web apps from competing with native apps.
In Windows you can install any other browser you want (even if it ships with IE default).
On iOS, ALL browsers are forced to used Safari's rendering engine. It would be like installing Firefox and it uses Trident in the background.
They’re saying that while the situation isn’t completely analogous, that what Apple is doing is far more egregious than what Microsoft already faced massive judgement for doing.
Antitrust legislators would surely be very interested in this if they were aware of the issue, but most of them probably aren't yet. Some people have been talking to regulators, like Stuart Langridge and Bruce Lawson to the UK regulator, the CMA.
Stuart Langridge presentation to the CMA: https://kryogenix.org/code/cma-apple/
The web should be to the greatest extent possible browser agnostic.
- Websites asking me for permission to send me notifications
- Websites asking me to install an app to use them
What other features are you decreeing essential? I admit curiosity if my distaste is in perfect opposition.
The idea is to be able to build web apps that have feature parity with native apps. (Especially on mobile, where apps are expected to integrate with the system and data connectivity is intermittent.)
If you don’t want that, that’s fine. But native apps are popular for a reason, and those features are a big part of that reason.
Do you really mean the web? Or a small subset of the web (that then probably already has a native iOS app)? For example how would Google search work while offline?
Even making something as "simple" as HN (only compared to Google search) work while offline would be a considerable technical challenge and a large investment for HN, for a use case that is almost non-existent.
Would really appreciate your perspective.
And the ability to continue using portions the app if you briefly loose connection. That can be quite powerful in some instances.
Not everything makes sense offline. If you need to perform real-time lookups, or if the backing database is too large, or the data is rapidly changing, or the user just infrequently visits the site - those are all good reasons to require connectivity.
But if the data is small enough, can be cached, and can be sent asynchronously, and is something the user is using consistently it’s a good candidate. Apps that work well would be things like email, productivity apps (word processing/spreadsheets/photo editing), and maybe small data feeds like weather and news headlines. Even chat is fine, since connectivity gaps are often only a couple minutes long.
My litmus test is “is this something somebody would expect to work while they’re on a train as part of their daily commute.”
I’m not personally arguing for PWAs over native apps!
That said, I also know there are some apps that will never be developed as native apps (due to cost issues), and in those cases it would be nice to give web developers the tools to at least make the experience more pleasant and native-feeling.
It serves the crash page locally, from cache. But it’s clear that they could have invested in this and chose not to. That’s not the OS’s fault, any more than it is when an native app decides not to implement offline support.
But. Native apps are required to ship basic offline mode support, so that when launched while offline, they show something to the user. The open web has no such requirement, and tends prefers the laziest approach without regard for users. Restrictive demands upon apps is what makes me prefer them; I respect others prefer the freedom not to bother with offline or accessibility or whatever.
- Safari reports to pages that permission is given, regardless of actual permission state
- Developers have no way to trigger a system prompt dialog for either, instead requiring a user action initiated from browser chrome
This is so websites can’t even implement their own prompts to sidestep restriction to user actions within the page, or even have the state on which to judge if a prompt should be shown. Bottom line, those features are fine so long as they bring zero additional dickbars/dialogs/etc.
I personally want notifications from the sites I use and I want to know if I can install websites so that they work offline. It takes the guesswork out of "will I be able to use this when I'm out and about" which is essential for the concept to work. Besides that, I just want to use my RSS reader without browser chrome.
There are tons of shitty blogs and crapsites that ask for all kinds of stuff like permissions, persistent file storage and GPU access, that I agree with. Excessive use of these prompts should be a reason to drop that website, though, not to remove the feature.
By the same logic, all notifications should be banned from mobile phones, because there's tons of them that push ads and other unwanted crap (including big names like Netflix). Which is something you can probably do, if you really want to, by just disabling notifications for every app you install.
One thousand notification prompts, one for each site I visit, is unacceptable.
Fifty notification prompts, one for each time I open an app for the first time on my phone, is acceptable.
You’ve only addressed the single-site case, not the at-scale reality that we users face when browsing HN or Google News or any other content aggregator that links out to a near-infinite array of sites.
My browser is for the open web. My phone is for native apps. I’m aware this is upsetting to proponents of PWAs, but it’s not because of technological limitations that I feel this way. It’s because websites target the lowest common denominator, and I don’t have time for that on mobile.
I can barely stand to use HN on mobile, it’s so awful, it doesn’t honor my OS-wide text settings, it has a horrendous text area, it ignores system color palettes, it doesn’t support OS dark mode hints. HN consciously chooses to target browsers only and does not wish to target being an app, and so I have modified my browser to adapt the website to be tolerable to me. But HN does not deserve to exist on my phone as-is outside of my browser.
Very few websites put in the level of effort to deserve to be called an “app”, and my views reflect their disregard for per-platform integration. (Similarly, I loathe apps that are just a website in a shim, and I tolerate them as minimally as necessary for banking and medical purposes, and tolerate none in my everyday use.)
According to my Firefox settings, I've given notification access to about 50% of the websites that requested it. I certainly visit a lot of different sites, usually linked from aggregators and social media such as HN, Reddit and Twitter.
We can both have our ways. Allow for an easy way to disable the prompts permanently, perhaps even in a popup after installation, and we can all go our merry way.
My enjoyment of PWAs basically comes down to the fact that the browser acts as an extra sandbox that I control. I can install addons that change bad behaviours and block tracking resources and I can safely run and update them without risking exposing too much information. I mainly use them for things I run myself (Home Assistant is a big one there), weather apps (Buienalarm) and forums where I want a notification if someone replies to my messages directly. They're the applications that are just interactive enough that a static website wouldn't suffice, but not interactive enough that I want to download an application for them.
One example is Youtube: if Google put in some effort, the entire app would only serve as a downloading and caching platform. Browsers are good at playing video. They're good at simple like/dislike interactions, and they're good at making comments. Yet for some obscure reason, the website is janky and difficult to use, forcing people to use their apps with all of its native code and unnecessary bells and whistles. There shouldn't be a need for the browser to do any serious Javascript work unless you watch 3D/360° video, and even that is uncommon enough that running the code in JS would be good enough. There are rich web video platforms out there with the same basic feature set; many of them in the adult entertainment industry, because of Apple's and Google's unwillingness to platform them, but also outside of it on platforms like Floatplane and its competitors.
Youtube should be a PWA or maybe even a website, not a full-blown app. Sadly, the web version of Youtube is neither of those things.
The lack of these features make Safari, and in some cases even Firefox, simply insufficient for my use cases. I hate Chrome but I started to use these features when Chrome and Edge (pre-Edgium) made their way to implement PWAs and Firefox went the same direction; I expected FF to just take their time, not reject the concept all together.
I actually like HN's clarity and simplicity and it's lack of the barely function rich text editor JS mess. Perhaps dark mode CSS would be a nice feature, but it's not that important to me. I despise blog platforms such as medium that pretend to be apps when they're really just shitty websites.
Our preferences seem to be the exact opposite of each other's, and that's fine. I do't want to impose my preferred way of working on you by forcing things like notifications and other permission prompts onto you, which is why I'm a fierce proponent of easy and clear methods to disable any potentially unwanted functionality.
Even an app following all standards can get refused by Apple's app review and there's no recourse other than to retry and hope this time the reviewer does their job right. Code using several open source licenses can't be uploaded to the Apple App store for legal reasons and there's no way around that either.
I think the web does deserve opt-in methods to access to many features, and I'd even like some features (like WebGL or WebGPU) to be behind additional permissions. Same with <canvas> features, most websites don't need that and it's mostly used for stalking me.
In a perfect world, Google would be able to put a real version of Chrome onto iOS and Mozilla would be able to do the same for Firefox, that way everyone could get what they wanted. The PWA enthusiasts could get a PWA-capable browser, the rest could stick to Safari with all of its quirks. That's not going to happen any time soon, though.
That's a slippery slope argument. Apple could very well require the PWA to be installed first before allowing it to send notifications, and make the install button non-intrusive.
There are now several dozen APIs that require prompts to work. And Chrome is busy ramming through several dozen more.
It's not "a single setting to disable these prompts".
That's one area where the app stores are pretty good. If you open the app store, you want to install apps. The same can't be said for a website.
I think the only way it would work really well is if the add to home screen / install button was prominent in the browser chrome and sites could trigger some effect if they can be installed as a PWA. For example, change from an inactive button to an active button.
> You pay to download 500 songs and one day you stop paying your subscription fee and your entire music library goes away.
You mean things like google maps, gmail and vimeo? They seem pretty popular to me, and significantly improved by the fact that almost anyone with a web browser can access them.
I want webapps. I don't want to install everything and the browser sandbox is tightest available. Taking my apps everywhere without having to install them is really nice.
Actually nobody cares about "the original purpose of the web". The web has included technologies to build apps very early by the way, back in the 90s.
Yeah, you’re right. No one ever wanted to use Hotmail on the web back in the 90s. No one wants to use Google Maps now. Please, please god let me have to download a native app from an App Store in order to access my online banking! It’s what the masses demand!
I want some of them, if they make sense. I will give you that a lot of things just don't really make sense as a webapp, but a lot of other things do.
There is a lot of "small" things I'd rather run in the confines of a sandboxed webapp than run as a "native" app. Things I use once in every blue moon, where I do not want to download a binary or worse track down a bunch of dependencies and compile myself. Opening a website in <10seconds is just faster than that, and hassle-free, and doesn't mean I have to maintain the stuff (either by keeping it up to date, or remembering to get rid of the thing after use). Even worse are the webapps pretending to be "native apps". Please stop packaging your "webapp" only as an electron app if you only ever use normal web browser features.
My problem with the state of things is just that every other "small" webapp tries to compel me into making an account for absolutely no reason first, or sell me "premium" features, or is plastered full of ads (which is less of a problem with the adblocker I use). Worse, if they do not really let me export my data. But all this also applies to native apps these days.
You have a choice. If you want to run PWAs, get an Android phone.
> If they had great support for PWAs a lot of companies and developers would go that route and there would be no native app option.
No. Apple doesn't want to let go of the app store model and the money it gives em. Every other problem one could conceive of is solvable.
I think the biggest problem with PWAs is the resource usage. A well written PWA will use a lot more battery, network, CPU, and memory than a well written native app. That's not solvable.
PWAs are a lowest common denominator solution. They are good for developers but bad for users.
What complete nonsense. It's hardly baked into the rules of the universe. Of course Apple could figure this out at a technical level, it just doesn't work for their profit margins. Besides, it should be my choice and not Apple's whether I want to install an app that uses more CPU.
> They are good for developers but bad for users.
There are entirely valid use cases where the expense and hassle of making native apps prevents any app existing at all. Small businesses building apps for their staff, individuals building apps for themselves or families, small groups of friends.
Probably not. Running an app in the browser is essentially running on a virtual machine. That's not going to be as efficient as a native app.
Mobile web apps suck because mobile browsers make them suck.
There’s no reason I can edit complex spreadsheets in Google Sheets in my desktop web browser, but every time I go to Reddit or Quora on my mobile browser, they claim that their native apps are required to truly display text and images correctly.
You can't explain that PWAs have no place in iOS using the excuse that Apple is doing it for our sake. Sorry, that's just dumb.
Web apps are lowest common denominator solutions and that’s not where Apple wants to be. They know their users are better off with native apps. If you disagree, then stick with Android which has pretty good support.
I've also dedicated a user guide to install FirefoxPWA for my own PWA but generic and easy enough for the average user I think, at:
1. Create a profile for the app you want to run...e.g. Spotify. Set the home bag
2. Create a startup file for your Firefox/Profile combo, e.g.
$ cat .local/share/applications/Music.desktop
[Desktop Entry]
Categories=Music;X-AudioPlayer;AudioVideo;Spotify
Exec=/usr/bin/firefox --class=musicplayer -P music
Icon=Music-icon
StartupWMClass=musicplayer
StartupNotify=false
Terminal=false
Type=Application
Name=Music
Comment=Firefox music container
Mozilla gets $500m - in theory for having Google as the default search engine - I reality to just to not challenge Chrome.
Anyone have a good explanation for why this isn't true?
The burden of proof is on the person making the assertion. Newton didn't say, 'F=ma - Anyone have a good explanation for why this isn't true?'
Otherwise, all we'll do here is disprove conspiracy theories and propaganda.
If my company chose to build PWAs, I would choose to use a browser that supports it in the way that is required. It would be totally bonkers to choose something like this just so that I can run them on firefox. Especially considering that this quite literally doesn't support half the feature set that might make PWAs desirable over a native app(like access to a lot of native APIs).
Even if we wanted to build PWAs, and then for some weird reason needed to use firefox, then the lack of support for them in firefox would be more likely to lead to not building PWAs instead of trying to wrangle firefox into something it doesn't really support.
What am I missing here?
Chromium/Edge make this super easy, and I use it to create standalone versions of Youtube Music, Fastmail, YNAB, WhatsApp so that they share the same Firefox process, instead of having four separate Electron apps written by third-parties that are just a fancy way of wrapping a website in their own window
And for some reason, Mozilla isn't interested of having this feature in their own browser.
If you click "Install", you'll get an app-like Spotify icon, it'll show up in applications, you can Cmd+Tab/ Alt+Tab to it with its icon, so on. It's basically an app - but it's running in a separate Chrome window and managed by the browser. Electron but you don't have to install a copy of Chrome every time, basically. (Also, if you're like me and use Brave, this is better in every way.)
Firefox does support PWA. This is a browser extension for packaging and installing like a native app. Pwa is a web spec and it is very nice.
I'm one of those who want a softfork(?) of Firefox: a set of patches on top of official Firefox that keeps getting expanded until it eclipses the official Firefox.
I already tried to donate but failed.
Bugzilla: https://bugzilla.mozilla.org/show_bug.cgi?id=1409675 & https://bugzilla.mozilla.org/show_bug.cgi?id=1460412
It's a bit tedious but it works.
I'd love to try this if I didn't have to use a FF extension to do it. It looks like it does it better than I have been doing it.
Also the name should be changed.
And there isn't a real flow that does explicitly say "Install" which is crucial for the final user to understand.
And overall after PWA installation the screen is filled with app alone in a clear and native looking way.
I don't know about Gmail as I use the HTML view, which is much faster in general and only updates when you tell it to.