
In today's digital world, online advertising is a critical part of the free web we all enjoy. However, poorly implemented ads can lead to a slower browsing experience, frustrating users and diminishing engagement. Learn how to effectively load ads without impacting your page speed, ensuring a seamless user experience, and maximizing revenue opportunities for website owners.

When working with WebAssembly, you often want to download a module, compile it, instantiate it, and then use whatever it exports in JavaScript. This post explains our recommended approach for optimal efficiency.

New logical property shorthands and new inset properties for Chromium.

Learn to diagnose costly, work-preventing user interaction.

First load performance is important, but it's not everything. Users who load your site a second time will use their cache to get access to your content—so it's key to make sure it works well too, both for speed and correctness.

What it takes to change icons, shortcuts, colors, and other metadata in your web app manifest for your PWA.

Many of today's most popular apps let you apply filters and effects to images or video. This article shows how to implement these features on the open web.

You've looked through your field data, and it turns out that you have some slow interactions. The next step is to learn more about how to manually test those interactions, and identify the causes behind them.

Maskable icons are a format that give you more control and let your Progressive Web App use adaptive icons. A maskable icon can look great on all Android devices.

How to track offline usage of your site so that you can make a case as to why your site needs a better offline experience.

A collection of common patterns for working with media.

Working with media often requires changing the characteristics of media files. On this page, you'll learn about the tools used and how to install them quickly.

Most browsers can get access to the user's camera.

Commands needed to convert a raw mov file to media assets packaged for DASH or HLS.

Enabling HTTPS on your servers is critical to securing your webpages.

Learn digital rights management concepts, and the commands needed to get from a raw mov file to encrypted media packaged for MPEG-DASH or HLS using both Clear Key or Widevine encryption.

Videos can be fun and informative. For a good user experience, videos need to meet a number of technical requirements.

You might think that you can take a video from a camera and upload it to the web as is. Preparing a video for serving from your own site is a bit more complicated.

Media frameworks come in both the proprietary and open-source variety, and at their core are a set of APIs that support audio and/or video playback for various container formats and transmission protocols.

Create the best mobile media experience on the Web by following these best practises.

Media Source Extensions (MSE) is a JavaScript API that lets you build streams for playback from segments of audio or video.

Find out how this new syntax can streamline media queries.

Most browsers can get access to the user's microphone.

Most browsers can get access to the user's camera.

Web developers can customize media notifications and respond to media related events such as seeking or track changing with the Media Session API.

Media streaming is the method for continuously delivering multimedia content from a server where the content has been split into individual chunks of data that can be joined back together during playback in a specific order through a range request using protocols such as DASH and HLS.

Strategies to migrate your site from relying on the user-agent string to User-Agent Client Hints.

Min, max, and clamp provide powerful CSS capabilities that enable more responsive styling with fewer liens of code. This post goes over how to control element sizing, maintain proper spacing, and implement fluid typography using these well-supported CSS math functions.







The <model-viewer> web component lets you use 3D models on a web page declaratively.

Module workers make it easy to unblock the main thread by moving expensive code to a background thread while keeping the ergonomic and performance benefits of standard JavaScript modules.

Module preload offers a way of declaratively loading JavaScript modules ahead of time.

What tools to use to keep track of and analyze the webpack bundle

Learn how to measure memory usage of your web page in production to detect regressions.

Build custom elements that work like built-in form controls.

Media Source Extensions (MSE) provide extended buffering and playback control for the HTML5 audio and video elements. While originally developed to facilitate Dynamic Adaptive Streaming over HTTP (DASH) based video players, MSE can be used for audio; specifically for gapless playback.

Consider content as well as layout and graphic design when building for a range of users and devices.

Multi-origin architecture presents many challenges when building PWAs. Explore the good and bad uses of multiple origins, and some workarounds to build PWAs in multi-origin sites.

A demo using the Web Audio API.


The role of semantics in page navigation

Learn the basics of using the Navigation and Resource Timing APIs to assess loading performance in the field.

The modern web is enjoyed by a wide swath of people, using a range of different devices and types of network connections. Your creations can reach users all across the world, but delivering a reliable experience on the web for all of your users can be challenging. It can be a challenge just to understand what reliability means.

Use Network Error Logging (NEL) to collect client-side network errors.

This blog post announces a new collection of patterns for media apps.

A new, six part Progressive Web App training is now available, complete with a new series of codelabs to teach you how to build reliable, installable, and capable PWAs.

User-preference based media features, container queries, and media queries for new screen types, such as foldable screens, will enable us to usehr in a new era of responsive web design.


The browser's main thread is incredibly overworked. By using web workers to shift code off the main thread, you can significantly improve your app's reliability and user experience.

Some common recipes to make your app work offline.

Learn how to create a simple offline experience for your app.


This document explains how you can use the OffscreenCanvas API to achieve performance improvements when rendering graphics in your web app.

This post highlights a few powerful lines of CSS that do some serious heavy lifting and help you build robust modern layouts.

Cumulative Layout Shift (CLS) is a metric that quantifies how often users experience sudden shifts in page content. In this guide, we'll cover optimizing common causes of CLS such as images and iframes without dimensions or dynamic content.