Web on Android

Learn how different components can be used to render web content inside Android apps. | Continue reading


@web.dev | 4 years ago

It's time to lazy-load offscreen iframes

This post covers the loading attribute and how it can be used to control the loading of iframes. | Continue reading


@web.dev | 4 years ago

Human interface devices on the web: a few quick examples

There is a long tale of human interface devices (HID) that are too new, too old, or too uncommon to be accessible by systems' device drivers. The WebHID API solves this by providing a way to implement device-specific logic in JavaScript. | Continue reading


@web.dev | 4 years ago

Property: Giving Superpowers to CSS Variables

Learn how to implement CSS custom properties with semantic typing, a fallback value, and more, directly in your CSS file. | Continue reading


@web.dev | 4 years ago

Service worker caching and HTTP caching

The pros and cons of using consistent or different expiry logic across the service worker cache and HTTP cache layers. | Continue reading


@web.dev | 4 years ago

Ten modern layouts in one line of CSS

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


@web.dev | 4 years ago

Web.dev Live Wrap-Up

A summary of the major news and updates that were announced during our 3-day online community event, and a reminder about upcoming regional events. | Continue reading


@web.dev | 4 years ago

web.dev Live 2020

Bringing web developers together, from home | Continue reading


@web.dev | 4 years ago

Progressively enhance your Progressive Web App

Learn how to progressively enhance your Progressive Web App so that it remains useful on all modern browsers, but delivers an advanced experience on browsers that support new web capabilities like native file system access, system clipboard access, contacts retrieval, periodic ba … | Continue reading


@web.dev | 4 years ago

Sign-In Form Best Practices

Use cross-platform browser features to build sign-in forms that are secure, accessible and easy to use. | Continue reading


@web.dev | 4 years ago

Quick read on how target=_blank is unsafe and the secure way to do it

Learn how to safely link to resources on another host. | Continue reading


@web.dev | 4 years ago

Milliseconds Make Millions

A 0.1 second improvement in 4 speed metrics can improve progression rates across the full purchase funnel. | Continue reading


@web.dev | 4 years ago

Using the Crux Dashboard on Data Studio

Data Studio is a powerful data visualization tool that enables you to build dashboards on top of big data sources, like the Chrome UX Report. In this guide, learn how to create your own custom CrUX Dashboard to track an origin's user experience. | Continue reading


@web.dev | 4 years ago

Getting Started with Trust Tokens

Our latest news, updates, and stories for developers | Continue reading


@web.dev | 4 years ago

Experimenting with QuicTransport

QuicTransport is a new API offering low-latency, bidirectional, client-server messaging. Learn more about its use cases, and how to give feedback about the future of the implementation. | Continue reading


@web.dev | 4 years ago

Web Animations API improvements in Chromium 84

Wrangling your web animations is about to get much easier. | Continue reading


@web.dev | 4 years ago

More variable font options for the macOS `system-UI` font in Chromium 83

Chromium 80 had a system-ui font weight regression on macOS. The reason it broke, and the new super powers post-resolution, are worth the wait in Chromium 83. | Continue reading


@web.dev | 4 years ago

Persistent Storage

Persistent storage can help protect critical data from eviction, and reduce the chance of data loss. | Continue reading


@web.dev | 4 years ago

How CommonJS is making your bundles larger

CommonJS modules are very dynamic, which prevents JavaScript optimizers and bundles perform advanced optimizations over them. | Continue reading


@web.dev | 4 years ago

Chromium lands Flexbox gap

Chromium's CSS Flexbox and Multi-Column layout engines now support gap. grid-gap is old news. | Continue reading


@web.dev | 4 years ago

Web Vitals

Essential metrics for a healthy site | Continue reading


@web.dev | 4 years ago

Optimize First Input Delay

First Input Delay (FID) measures the time from when a user first interacts with your site to the time when the browser is actually able to respond to that interaction. Learn how to optimize FID by minimizing unused JavaScript, breaking up Long Tasks, and improving interaction rea … | Continue reading


@web.dev | 4 years ago

Optimize Largest Contentful Paint

Largest Contentful Paint (LCP) can be used to determine when the main content of the page has finished rendering on the screen. Learn how to optimize LCP by improving slow server response times, resource load times and client-side rendering. | Continue reading


@web.dev | 4 years ago

Improved Next.js and Gatsby page load performance with granular chunking

Learn how both Next.js and Gatsby have improved their build output to minimize duplicate code and improve page load performance | Continue reading


@web.dev | 4 years ago

Storage for the Web

There are many different options for storing data in the browser. Which one is best for your needs? | Continue reading


@web.dev | 4 years ago

Digging into the Privacy Sandbox

The Privacy Sandbox is a series of proposals to satisfy third-party use cases without third-party cookies or other tracking mechanisms. The proposals need your feedback. | Continue reading


@web.dev | 4 years ago

Monitor your web page's total memory usage with `performance.measureMemory()`

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


@web.dev | 4 years ago

Web.dev engineering blog #1: How we build the site and use Web Components

In this first post from the web.dev engineering team, learn about how we build the site—including our use of Eleventy and Web Components. | Continue reading


@web.dev | 4 years ago

Ensure your website is available and usable for everyone during Covid-19

How to ensure that the core functionality of your website is always available, accessible, secure, usable, discoverable, and fast. | Continue reading


@web.dev | 4 years ago

Fix an Overloaded Server

How to determine a server's bottleneck, quickly fix the bottleneck, improve server performance, and prevent regressions. | Continue reading


@web.dev | 4 years ago

Prevent DOM-based cross-site scripting vulnerabilities with Trusted Types

Introducing Trusted Types: a browser API to prevent DOM-based cross-site scripting in modern web applications. | Continue reading


@web.dev | 4 years ago

How to Set Up Signed HTTP Exchanges (SXG)

How to generate a TLS certificate with SXG extensions, install tools for generating SXG files, and configure nginx to serve SXG files. | Continue reading


@web.dev | 4 years ago

Fixing website speed cross-functionally

How other departments can help make your website speed optimization project a bigger success. | Continue reading


@web.dev | 4 years ago

How Google improved ads performance with stale-while-revalidate

This case study explains how Google increased key ads business metrics by optimizing the performance of their third-party ads script with stale-while-revalidate. | Continue reading


@web.dev | 4 years ago

Secure your site by learning how to explicitly mark your cross-site cookies

Learn how to mark your cookies for first-party and third-party usage with the SameSite attribute. You can enhance your site's security by using SameSite's Lax and Strict values to improve protection against CSRF attacks. Specifying the new None attribute allows you to explicitly … | Continue reading


@web.dev | 4 years ago

Interact with NFC Devices on Chrome for Android

Reading and writing to NFC tags is now possible on Chrome for Android. | Continue reading


@web.dev | 4 years ago

Shopping for Speed on Ebay.com

This case study explains how eBay increased key business metrics by optimizing the performance of their web and app experiences. | Continue reading


@web.dev | 4 years ago

Advancing the Web Framework Ecosystem

Learn about how Chrome is investing efforts in a number of open-source tools to advance the JavaScript ecosystem | Continue reading


@web.dev | 4 years ago

Integrate PWAs into Native Sharing UIs with Workbox

How to register routes in Workbox so that your Progressive Web App shows up in system-level sharing UIs, alongside native apps. | Continue reading


@web.dev | 4 years ago

Indexing your offline-capable pages with the Content Indexing API

Your PWA might cache articles and media files, but how will your users know that your pages work while offline? The Content Indexing API is one answer to this question currently in an origin trial. Once the index is populated with content from your PWA, as well as any other insta … | Continue reading


@web.dev | 4 years ago

The Native File System API: Simplifying Access to Local Files

The new Native File System API enables developers to build powerful web apps that interact with files on the user's local device, like IDEs, photo and video editors, text editors, and more. After a user grants a web app access, this API allows web apps to read or save changes dir … | Continue reading


@web.dev | 4 years ago

Next-Generation Web Styling

Get up to date on some of the exciting new CSS features that are already supported in modern browsers—or soon will be! | Continue reading


@web.dev | 4 years ago

Moduled web workers shipped with chrome 80

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. | Continue reading


@web.dev | 4 years ago

Use web workers to run JavaScript off the browser's main thread

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. | Continue reading


@web.dev | 4 years ago

Adaptive loading: improving web performance on slow devices

Learn about adaptive loading pattern, how to implement it, and how Facebook, Tinder, eBay, and other companies use adaptive loading in production. | Continue reading


@web.dev | 4 years ago

Adaptive icon support in PWAs with maskable icons

Maskable icons are a new icon format that give you more control and let your Progressive Web App use adaptive icons. By supplying a maskable icon, your icon can look great on all Android devices. | Continue reading


@web.dev | 4 years ago

Get Started with Web Bundles

Web Bundles enable you to share websites as a single file over Bluetooth and run them offline in your origin's context. | Continue reading


@web.dev | 4 years ago

Share Like a Native App with the Web Share API

With the Web Share API, web apps are able to use the same system-provided share capabilities as native apps. The Web Share API makes it possible for web apps to share links, text, and files to other apps installed on the device in the same way as native apps. | Continue reading


@web.dev | 5 years ago