
How to define your install strategy
Best practices for combining different installation offerings to increase installation rates and avoid platform competition and cannibalization.
4,364 articles on Engineering.

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.



GOV.UK dropped their jQuery dependency from their front end. You'll never guess what happened. (Yes, you will.)

Learn how and why websites are hacked.

This guide explains how to deal with a site that has been hacked with malware.

By using the correct elements for headings and landmarks, you can dramatically improve the navigation experience for users of assistive technology.

Hiding content from assistive technology

Understand how to serve the best quality images as efficiently as possible.

Steps to follow if you think that your site may be hacked.

Learn more about who is involved in the Web Payments ecosystem, how they interact with each other, and how you can participate.

Learn how the Payment Request API works at a high level.

Learn what Baseline targets are, how to choose one, and how it can help your development experience.


A peek into the process and tools used to build the holiday-calendar-style experience of Designcember.


How to search for vulnerabilities on your site.

This post covers the loading attribute and how to use it to control the loading of iframes.

Comments from survey respondents about various image optimization techniques.

Check out the state of image tooling.

A guide to the basics of IndexedDB.

Learn best practices for syncing application state between IndexedDB and popular state management libraries.

This post introduces the Interaction to Next Paint (INP) metric and explains how it works, how to measure it, and offers suggestions on how to improve it.

Progressive Web App installability criteria.