
Creating WebP Images with the Command Line
In this codelab, learn how to serve optimized images using WebP.
4,266 articles on Engineering.

In this codelab, learn how to serve optimized images using WebP.

In this codelab, learn how to make an application reliable by registering a service worker.

In this codelab, learn how to use the sizes attribute to size images correctly depending on the user's viewport.

Community Guidelines

HowTo Components




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.


Constructable Stylesheets provide a seamless way to create and distribute styles to documents or shadow roots without worrying about FOUC.

When building custom interactive components, use tabindex to ensure that they're keyboard accessible.

Learn how to set up the opt-in-based isolated environment, called cross-origin isolated, with COOP and COEP.

A look at some useful and creative ways to style a list.

Optimizing the critical rendering path refers to prioritizing the display of content that relates to the current user action.

Learn how to use architectural standards and solutions (such as metadata, cross-origin iframes, identity federation, and subdomain consolidation) to resolve cross-domain identity fragmentation and deliver a seamless user journey.

Cross-origin isolation enables a web page to use powerful features such as SharedArrayBuffer. This article explains how to enable cross-origin isolation on your website.

Custom metrics let you measure and optimize aspects of your site's experience that are unique to your site.


Use the beforeinstallprompt event to provide a custom, seamless, in-app install experience for your users.

The DataTransfer object holds data that is being dragged during a drag and drop operation. It may hold one or more data items, each of one or more data types.

Learn how to identify and fix layout shifts.

Learn how to debug media playback errors on the web.

A collection of insights on the top pain points, collected from a number of one to one conversations with web developers.

Best practices for combining different installation offerings to increase installation rates and avoid platform competition and cannibalization.

A skeuomorphic attempt at recreating a solar calculator on the web that makes use of the ambient light sensor and the window controls overlay feature.

Web Developer Satisfaction is a Google project to gather information about the needs of web developers. The goal is a more reliable, predictable and interoperable web platform, enabling developers to invest in and trust it, and adopt and use new features to grow the platform and their business.

Device motion and orientation events provide access to the built-in accelerometer, gyroscope, and compass in mobile devices.

Since Chrome 84, ResizeObserver supports a new box measurement called device-pixel-content-box, that measures the element's dimension in physical pixels. This is crucial for rendering pixel-perfect graphics, especially in the context of high-density screens.

This article helps Web developers pick the right hardware API based on a given device.

Web apps can now disable mouse acceleration when capturing pointer events.


Learn how to render 2D graphics to a canvas on the web from WebAssembly with Emscripten.

Build a solid business case for your PWA. Learn when you should invest, and how you can measure its success.


Emscripten’s embind


Web Payments aims to provide frictionless payment experience on the web. Learn how it works, its benefits, and get ready to integrate your payment app with Web Payments.

How do you integrate WebAssembly into this setup? In this article we are going to work this out with C/C++ and Emscripten as an example.

Emscripting a C library to Wasm

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

Service workers can use static imports of ES modules to bring in extra code, as an alternative to importScripts().



A write-up of Thomas Steiner's Google I/O 2021 talk titled Excalidraw and Fugu: Improving Core User Journeys

This page brings together answers to the questions about hacking we at Google hear most often.

So long HTML5Rocks, it's been nice knowing you.

This post introduces the First Contentful Paint (FCP) metric and explains how to measure it

Catching errors when working with the Fetch API.

Fetch Metadata is a new web platform feature designed to allow servers to protect themselves from cross-origin attacks.

This post introduces the First Input Delay (FID) metric and explains how to measure it

Before you can reproduce slow interactions in the lab to optimize your website's Interaction to Next Paint, you'll need to lean on field data to find them. Learn how to do just that in this guide.

This guide is created specifically for a type of hack that adds keyword-heavy gibberish pages to your site.

This guide is created specifically for a type of hack that adds keyword-heavy gibberish pages to your site.

This guide is for a type of hack that creates autogenerated Japanese text on your site.

A walkthrough of using WebPageTest to identify and fix layout instability issues.

Find out how to fix mixed content errors on your website, in order to protect users and ensure that all of your content loads.

Going fullscreen.

Learn to control web games with the Gamepad API.

Web Google Developers Experts on how mentoring programs empowered them to become leaders.