Learn Measure Blog About


Our latest news, updates, and stories for developers

The Web Bundle logo

Get started with Web Bundles

Share websites as a single file over Bluetooth and run them offline in your origin's context

Colorful airplanes flying in sync

Richer offline experiences with the Periodic Background Sync API

Sync your web app's data in the background for a more native-like experience

A hand sharing a web.dev article.

Share like a native app with the Web Share API

Web apps can use the same system-provided share capabilities as native apps.

A hand sharing a web.dev article.

Receiving shared data with the Web Share Target API

Sharing on mobile made simple with the Web Share Target API

OYO Lite: a TWA with the best of web and Android apps

How a hospitality startup built an Android app that relies on web content to dramatically increase user engagement and keep file size low

AirSHIFT's logo.

Five ways AirSHIFT improved their React app's runtime performance

A real-world case study of React SPA performance optimization.

A person using a virtual reality headset.

Virtual reality comes to the web

A few basics to prepare you for a spectrum of immersive experiences: virtual reality, augmented reality, and everything in between.

SameSite cookie recipes

Update your site's cookies to prepare for the upcoming changes to the SameSite attribute's behavior.

A long-exposure shot of a moving subway train and advertisement posters at the station photo.

Fast ads matter

Learn how improving ad speed can increase revenue and makes users happy, and how to approach ad speed improvements.

A drawing of a woman using OTP to log in to a web app.

Verify phone numbers on the web with the SMS Receiver API

Help users type OTPs received through SMS

A wall with a bunch of image frames in different sizes.

Preloading responsive images

Starting in Chrome 73, link rel="preload" and responsive images can be combined in order to load images faster.

Fixing layout instability

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

A pile of photos.

Optimize images with Thumbor

Thumbor can be used for free to resize, compress, and transform images on-demand.

A screenshot of PROXX

Techniques to make a web app load fast, even on a feature phone

How we used code splitting, code inlining, and server-side rendering in PROXX.

A black screen shows development work..

Smarter custom properties with Houdini’s new API

Transitions and data protection in CSS

Prefetch resources to speed up future navigations

Learn about rel=prefetch resource hint and how to use it.

A description of the hero image for screen reader users.

Going beyond images with basic video for the web

Learn basic video. Increase engagement.

Game design, business and tools for modern web games.

Ready Player Web

Building games for the modern web.

Image of hard disk platters

The Native File System API: Simplifying access to local files

The new Native File System API allows web apps to read or save changes directly to files and folders on the user's device.

Multiple Shifting Gears.

Progressive Web Apps in multi-origin sites

Challenges and workarounds for building Progressive Web Apps in multi-origin sites.

The Truebil logo and a screenshot of the Truebil Lite web app.

How Truebil made the web its channel of growth

A startup's story of building a best-in-class web experience.

A pile of photos.

How to install the Thumbor image CDN

Thumbor can be used for free to resize, compress, and transform images on-demand.

Third-party JavaScript performance

Find out how third-party JavaScript can affect performance and what you can do to keep it from slowing down your sites.

DJ mixer controls.

More capable form controls

With a new event, and custom elements APIs, participating in forms just got a lot easier.

Telephone on yellow background.

A contact picker for the web

The Contact Picker API provides an easy way for users to share contacts from their contact list.

Phone outline with loading image and assets

Native lazy-loading for the web

Browser-level native lazy-loading is finally here!

Adam's Creation by Michelangelo on Sistine Chapel ceiling

Establish network connections early to improve perceived page speed

Learn about rel=preconnect and rel=dns-prefetch resource hints and how to use them.

A view through a rain-covered foggy window.

Create OS-style backgrounds with backdrop-filter

Blurring and color shifting behind an element.

A photograph of a half-painted wall.

Keeping things fresh with stale-while-revalidate

An additional tool to help you balance immediacy and freshness when serving your web app.

Guess.js logo

Faster web navigation with predictive prefetching

Learn about predictive prefetching and how Guess.js implements it.

The OpenSooq logo next to a smartphone displaying the OpenSooq website.

How OpenSooq increased engagement by investing in the web

Learn how a small team achieved big wins by creating a compelling marketplace PWA.

Clipboard with shopping list

Image support for the async clipboard API

The Asynchronous Clipboard API now handles some images, in addition to text.

Silhouette photo of a mountain during nighttime, photo by Nathan Anderson on Unsplash.

Hello darkness, my old friend

Overhyped or necessity? Learn everything about dark mode and how to support it to the benefit of your users!

Top tips for web performance

Use srcset to automatically choose the right image size.

An illustration of a service worker interacting with a cache.

Bringing service workers to Google Search

The story of what shipped, how the impact was measured, and the tradeoffs that were made.

A globe with code overlaid

How we're bringing Google Earth to the web

Improving cross-browser access to Google Earth with WebAssembly.

A wooden spoon, full of salt.

Web components: the secret ingredient helping power the web

Web components at I/O 2019

Use Lighthouse for performance budgets

Aircraft instrument panel, photographer Arie Wubben via unsplash.com

The value of speed

Show stakeholders how site speed improvements can increase revenue.

Transfering money from a phone

Updates to the Web Payments APIs

Stay up to date on what's new in Web Payments.

Youtube application screenshot

How YouTube improved video performance with the Media Capabilities API

Ensuring buttery smooth video playback across all devices.

A man at a whiteboard draws a flow diagram depicting shopping cart abandonment.

How can performance improve conversion?

Optimize your site's performance and improve conversions.

A pile of gears.

Making JavaScript and Google Search work together

Get the latest updates and insights from Google I/O 2019.

Service workers lining up.

Service worker mindset

How to think when thinking about service workers.

A row of shopping carts.

What should you measure to improve performance?

Strategies to measure performance at each stage in the purchase funnel.

A description of the hero image for screen reader users.

Image policies for fast load times and more

Use optimized image policies to ensure your site is using the best performing images.

A flatlay photo of wrenches and screwdrivers.

Extract critical CSS

Learn how to improve render times with critical CSS technique.

An hourglass with sand pouring through it

Are long JavaScript tasks delaying your Time to Interactive?

Learn to diagnose costly work preventing user interaction.

Speedometer on a retro car

Speed at scale: what's new in web performance?

Learn about three new web performance launches from I/O 2019.

a logo image of PROXX.

Introducing PROXX

A game of proximity, inspired by minesweeper.

SameSite cookies explained

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

A series of screens shows a phone camera scanning an image and generating a link.

Visual searching with the Web Perception Toolkit

Easy to use real-world interactivity.

A logo of Portals

Hands-on with Portals: seamless navigation on the Web

Learn how the proposed Portals API can improve your navigation UX.

Image of laptop with mouse pointing to checkout button on a web page

How to report metrics and build a performance culture

Understand why performance matters when it comes to conversion.

A group of colorful hot air balloons launching into the sky.

web.dev at I/O 2019

New look. New docs. New blog!

QR code being scanned by a mobile phone

The Shape Detection API: a picture is worth a thousand words, faces, and barcodes

The Shape Detection API detects faces, barcodes, and text in images.

mobile device with app panel open

Is your native app installed? getInstalledRelatedApps() will tell you!

The getInstalledRelatedApps() method allows your web app to check whether your native app is installed on a user's device, and vice versa.

Stay awake with the Wake Lock API

The Wake Lock API provides a way to prevent devices from dimming or locking the screen when an application needs to keep running.

Phone showing several notification badges

Badging for app icons

The Badging API allows installed web apps to set an application-wide badge on the app icon.

Discover performance opportunities with Lighthouse