
Patterns for promoting PWA installation
How to promote installation of Progressive Web Apps and best practices.
4,364 articles on Engineering.

How to promote installation of Progressive Web Apps and best practices.

A step-by-step interactive tutorial that shows you how to build a client that subscribes the user to push notifications, displays push messages as notifications, and unsubscribes the user from push notifications.

There are right ways of using notifications, and ways of using them better. Learn what makes a good notification. We won't just show you what to do. We'll show you how to do it.







An overview of what push notifications are, why you might use them, and how they work.

A step-by-step interactive tutorial that shows you how to build a server that manages push notification subscriptions and sends web push protocol requests to a push service.


A step-by-step interactive tutorial that shows you how to build a server that manages push notification subscriptions and sends web push protocol requests to a push service.

What makes a good, or great Progressive Web App?

Progressive Web Apps are easy to install with a new install button in Chrome’s address bar (omnibox).

How to promote installation of Progressive Web Apps and best practices.

Building a PWA with offline streaming has its challenges. In this article you will learn about the APIs and techniques that provide users with a high-quality offline media experience.

Progressive Web Apps can be submitted to app stores like the Android Play Store or the Microsoft Store and more.

The Oculus Quest 2 is a virtual reality (VR) headset created by Oculus, a division of Meta. Developers can now build and distribute 2D and 3D Progressive Web Apps (PWA) that take advantage of Oculus Quest 2's multitasking feature. This article describes the experience and how to build, sideload, and test your PWA on the Oculus Quest 2.

Take your site offline while you fix the problems.


This post explains how to reduce the size of the WebFonts that you use on your site, so that good typography doesn't mean a slow site.

Consider setting a referrer policy of `strict-origin-when-cross-origin`. It retains much of the referrer's usefulness, while mitigating the risk of leaking data cross-origins.


Recommendations for implementing logic and rendering in apps.

You must request a review from Google to have your page or site unflagged as dangerous or possibly deceptive to users.


Register a callback that runs in the rendering steps, when a new video frame is sent to the compositor.

Resolution is the amount of information in a frame of video.

"same-site" and "same-origin" are frequently cited but often misunderstood terms. This page explains what they are and how they are different.

Sites can now explicitly mark their cookies for cross-site usage. Learn how to mark up your cookies to ensure that your first-party and third-party cookies continue to work after this change is implemented.


How to securely display user-controlled content on web applications.




Introduction to semantics and assistive technology


Serving desktop-sized images to mobile devices can use 2–4x more data than needed. Instead of a "one-size-fits-all" approach to images, serve different image sizes to different devices.

A deep-dive into the service worker lifecycle.

Working with service workers is new and unfamiliar for many web devs. This post provides some tips for wrapping your mind around them.

Best practices for timing your service worker registration.

Practical developer guidance about what to do when a user logs out of the website.

Help your users sign up, sign in and manage their account details with a minimum of fuss.

An SXG is a delivery mechanism that makes it possible to authenticate the origin of a resource independently of how it was delivered.

Learn how to serve signed exchanges (SXGs) using Web Packager.

Paint is the process of filling in pixels that eventually get composited to the users' screens. It is often the longest-running of all tasks in the pipeline, and one to avoid if at all possible.

Starting in Chrome 81, scrollers remain snapped when the page layout changes. In other words, you no longer need to add event listeners to force resnapping.

You can influence the way your site appears when shared via social media by adding a few lines of code to each page. This can help bring more people to your site by providing previews with richer information than would otherwise be available.






stale-while-revalidate helps developers balance between immediacy—loading cached content right away—and freshness—ensuring updates to the cached content are used in the future.

Compositing is where the painted parts of the page are put together for displaying on screen.

The focus indicator identifies the focused element. For users who can't or don't use a mouse, this indicator is extremely important, as it acts as a stand-in for their mouse-pointer.


Make sure your service worker knows what to do when a partial response is requested.

Learn what code coverage is and discover four common ways to measure it.