cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How can Firefox create the best support for web apps on the desktop?

david-rubino
Employee
Employee

Hi everyone, my name is David Rubino and I’m a product manager for Firefox. As the Firefox leadership team mentioned in the Reddit AMA last week, we’re taking a fresh look at Progressive Web Apps (PWAs), which have long been a top request from our Mozilla Connect community. Today I want to share a concept that aims to address some of this feedback. 

As you may know, we built a prototype for desktop PWAs a few years ago, and unfortunately user testing on our solution showed confusion and lack of perceived value. We didn’t release it because we didn’t have an approach that could meet the needs of power users without causing confusion among the broader user base. Recently, other browsers have implemented or enhanced their approach to PWAs, for example by making it easy to install any website as a web app (even if no PWA manifest is provided), and by running web apps in the same session as normal browser tabs. I was a user of these features, and so when I joined the Firefox Product Management team last year, I decided to take a fresh look at how Firefox might approach the problem. 

In this post you will see that I don’t use the term “PWA” and instead stick with the more generic “web app”. While there are some working definitions for what a PWA is and is not, most of the feedback from the Firefox community are requests for specific capabilities. So when considering what Firefox should do, I’m focusing on how we can offer features that help you get a more app-like experience for any website you choose, when you choose

There are many specific requests in the thread, but viewed through this lens a few emerge:

  1. Web apps should appear with their own icons alongside traditional apps, both in places where you launch apps and where running apps are shown. 
  2. Web apps should remain open until you close them. You should not be able to “navigate away” from them like a web page.
  3. Like many mobile apps, desktop web apps should be able to handle links to their website in lieu of having them opened in a normal browser window. 

It’s possible to take the web app concept further than is needed, into the realm of making web apps be as app-like as possible. This can make it seem like you’re not using a web browser or a website at all. Some examples of this might be having PWAs be installed and uninstalled using the OS, removing all or nearly-all of the browser “frame”, and limiting access to common browser features like bookmarks and search. While some of these may turn out to be beneficial, it’s not a goal to make it feel like you’re not in Firefox.

In fact, contrary to the notion that web apps should be “installed” like regular apps, a core idea of this concept is that running a web app should be thought of as moving a tab to your taskbar or dock... a one-step operation that can be undone just as easily. 

So what might this experience look like? Let’s look at the following topics:

  1. Moving into and out of a web app “mode”
  2. Offering a different browser UI for a web app
  3. Browsing within and between sites
  4. Integrating with the operating system

Moving into and out of a web app “mode”

As stated above, you should be able to take any tab and move it into web app mode in one step. When you take this action, the tab would be moved into a new web app window, maintaining the state of the web page entirely. You could even be watching a video, and it won’t miss a frame. There would be no setup. Each website will have some preferences associated with it, but the intent will be to have sensible defaults that work for most people, informed by a manifest if the site offers one. Moving a tab back out of this mode will be just as simple. 

Offering a different browser UI for a web app

Web apps are still websites in a web browser, so the goal will be to fully maintain access to features that help you with the website itself, while de emphasizing features that are about managing multiple websites. Some examples:

  • No tabs or bookmarks bar by default, but these could be enabled in web app preferences
  • The main toolbar would be fully enabled, including the address bar and extensions 
  • A new toolbar section would show the icon of the website prominently, clearly indicating you’re in web app mode for a given site. This section would offer access to settings and controls for the web app.
  • In lieu of a new tab button, there would be buttons to open a new tab in a normal Firefox window, or a new instance of the current web app. 
  • The address bar would not be read-only, offering easy access to Firefox Suggest and the ability to search. Web pages opened from here would land in a new tab in a regular Firefox window. 

Browsing within and between sites

One of the key differences between a normal mode webpage and a web app is that you shouldn’t be able to “navigate away” from a web app. To exit a web app you have to explicitly close it. To accomplish this, each web app would be a “single site browser”. Navigations within the current website will remain in the app, and navigations outside the current website will open in a normal Firefox window. There will be exceptions to help with login flows and redirections so that a web app feels as much as possible like an app that only opens a browser when opening a truly external page. 

We would also introduce “link capture”, which would allow a web app to register itself to handle URLs within its scope. For example, if you click on a link to reddit.com in a normal Firefox window, the link would open in the Reddit web app. This behavior is analogous to how mobile browsers redirect links to registered mobile apps. 

Integrating with the operating system

On Windows, it is straightforward to show web apps separately on the taskbar using differentiated icons, to allow them to be pinned, to show them in the Start menu, in the ALT+TAB and window snap experience, and so on. This allows quick access to web apps using the same surfaces used to run or switch between regular apps. By “leveling up” to the taskbar websites you leave running and revisit often, you can save time over hunting for them in Firefox. 

This behavior may be more challenging to implement on macOS and is likely to have some limitations comparatively. You should expect that if we build a prototype, it will begin as a Windows-only feature. Once proven we would bring it to our other desktop platforms leveraging the features supported by them. 

Please let us know what you think!

I am hopeful Firefox can bring a web app experience to the desktop that will feel natural to all users, while supporting the needs of our power users. In particular, I think we can improve upon the current experience offered by other web browsers by offering one-step setup, retaining access to core browser features, and allowing links to be “captured” automatically. 

We are looking to make progress in this area soon, so I would love to get a discussion going about what is right and wrong and missing from this set of ideas. While I did read every post in the Ideas thread, I am aware I did not address every topic mentioned, so please especially bring up what I skipped that is important to you. 

Thanks in advance!

-David Rubino
Product Manager
Mozilla Firefox

82 REPLIES 82

findorf
Making moves

> On Windows, it is straightforward to show web apps separately on the taskbar using differentiated icons

I think it is pretty straightforward on linux as well. In Wayland, I believe it just requires using a different`app_id` from  the normal firefox windows. It probably makes sense to keep "firefox" as part of the app_id, but also include the name of the web app. I it is similar in X, but I don't remember the exact mechanism.

> to allow them to be pinned, to show them in the Start menu, in the ALT+TAB and window snap experience, and so on

In order for those to work in linux (at least on most desktop environments), firefox would just need to create a .desktop file in ~/.local/share/applications that would look something like:

 

[Desktop Entry]
Name=Example app
Exec=firefox --webapp https://example.app
Type=Application
Icon=/path/to/app/icon
# optional, if the webapp handles a custom scheme
MimeType=x-scheme-handler/exampleapp

 

 

Also, I'd like to be able to start these web apps from the command line, by passing some option to firefox (like the `firefox --webapp https://example.app` in the above desktop file. Even if the initial support for adding shortcuts is windows only, I'd like it if I could manually start firefox with a web app experience from the command line.

drizztdourden_
Making moves

Hi,

I can't really read everything on here but one point in your main thread that hit me is that the UI should partly remain. Why?

The great thing (At least on MacOs), is that the only thing you have is the main buttons to close, minimize and expand, the title, and a "..." which hide everything else on the right side (probably on the left on windows instead).

This way, the "app" looks exactly like the original built in app in most cases.

I use it for teams and outlook and they look like their exact counterpart with Chrome. They're already electron app for the desktop version and thus, behave exactly the same as well in a browser, and pwa can replicate this easily.

drizztdourden__0-1727101782432.png

drizztdourden__3-1727101898511.png

And they appears as standard app with icon in the MacOS bar:

drizztdourden__2-1727101864690.png

My own gripe with this and the "wants" of Firefox having this is simple. It is my main browser and I like to use for everything. However, not having PWA means I use chrome for this... But every single link that is opened in these app is opened in Chrome instead of Firefox and there is no way to set this otherwise.

 

nachtfalter
Making moves

Hello,

First of all, I want to say that Firefox is my favorite browser. I just want to make sure I understood the new web app "mode" correctly. It seems like it will function similarly to the current popup "mode", but with more options, like a "quit web app mode" button and access to all extension buttons. From what I gather, the current popup mode is more compact and minimalistic than the upcoming web app mode will be.

However, I believe that one of the key ideas behind PWAs is to minimize distractions and reduce unnecessary interface elements. In Chrome, for example, developers can choose between different modes for PWAs: "fullscreen" (for games or video apps), "standalone" (which makes the app look like a regular desktop app), and "minimal-ui" (which shows only essential browser controls). Although I’ve only seen web apps in "standalone" mode, I think it’s important to offer a very minimalistic UI, ideally with just a three-dot menu in the title bar for options.

Additionally, since you’ll likely need some form of installation to manage link handlers, I’d suggest going all the way with it—offering a full installation experience. This would include the ability to pin the app to the taskbar and find it in the OS app menu, without showing the Firefox logo on the app icon.

If this feature isn’t implemented soon or doesn’t meet user expectations, I and other users may switch browsers permanently (I’m already using Chrome for PWAs and WebSerial). So, I urge you to create a clean, streamlined web app mode—no URL bar, no extra buttons to open Firefox (if I want to open the browser, I’ll use the pinned icon on my taskbar), and full integration with the taskbar.

Thank you, and I hope to see this update soon!

 

--

(Text is revised by AI, this time not with the AI-Chatbot in the sidebar)