Philip Walton

Philip Walton

@philipwalton.com

DevRel lead @ Google working on Chrome and the Web. I occasionally blog at: https://philipwalton.com

1.5K followers222 following52 posts

Pinned

📢 New post: The State of ES5 on the Web. For years, we defaulted to transpiling to ES5 in order to support IE. But is that still necessary? I took a look at the data to find out, and I'll just say that the results were *actually* quite surprising! 🙀 philipwalton.com/articles/the...

philipwalton.comThe State of ES5 on the WebShould web developers and JavaScript library authors still transpile their code to ES5? This post looks at what the data suggests based on what popular libraries, tools, and websites are doing

Philip Walton reposted

Modern Web Guidance v0.0.192 is out. With it your coding agent now knows how to: • build SMS one-time-code forms that autofill (WebOTP) • make dark mode toggles that follow the OS • honor the OS text size setting • reduce INP and lazy-load video/audio • feature-detect CSS at-rules with @supports

Philip Walton reposted

We just launched experimental ad metrics in the Chrome User Experience Report (CrUX): - Ad Count - Ad Density - Ad Weight: Network - Ad Weight: CPU These metrics are a set of ad-related measurements that provide transparency into sites' ad experiences. developer.chrome.com/blog/crux-ad... 1/8 🧵

developer.chrome.comNew ad metrics in Chrome User Experience Report  |  Blog  |  Chrome for DevelopersLearn about the new ad metrics now available in the Chrome User Experience Report (CrUX)

If you've ever tried using a new web API in TypeScript, you've probably hit this problem: An API exists. It works in your browser. But TypeScript has no types for it. The reason is a limitation that TS unfortunately applies to its built-in libs. BUT, I've created a relatively simple fix 👇

View full thread

The good news: TS's type-generation pipeline is open source, and the datasets it consumes already include the full set of web platform features—even those only in one browser. So if you remove the 2-engine restriction, you can use the same generator to create types for all web features.

So that's what I did! I built a package that generates complete DOM and WebWorker libs with all available web features, which you can use as drop-in replacements in your TypeScript projects. You can read more about it here: philipwalton.com/articles/mod...

philipwalton.comModern Web TypesIf you've ever written code against a new web API in TypeScript, you've probably seen an error telling you the thing you're using doesn't exist. Turns out, TypeScript intentionally doesn't support all...

If you've ever tried using a new web API in TypeScript, you've probably hit this problem: An API exists. It works in your browser. But TypeScript has no types for it. The reason is a limitation that TS unfortunately applies to its built-in libs. BUT, I've created a relatively simple fix 👇

TS has a policy to exclude web features unless they're supported in at least 2 browser engines. That means TS can be missing types for perfectly valid APIs—including APIs that are safe to use today as a progressive enhancement.

Philip Walton reposted

Hi! I'm working on a new HTML feature: filterable select There are two proposed API shapes so far: 1. Nesting <input> in <select> 2. Sibling <input> for listbox <select> w/id ref Option 1 is more ergonomic, but would break selects in older browsers Thoughts? (Both currently in Canary w/flag)

Philip Walton reposted

Replying to @lea.verou.me

Yeah, www.bram.us/2025/05/04/c... is the article Jakob's referring to. The post lists the difficulties (basically reiterating what @philipwalton.com said a decade ago), identifies the needs, and also explores a potential solution. I really wish we had something like it, for the better of the web.

bram.usPolyfilling CSS with CSS Parser ExtensionsIn April I attended #BlinkOn, the conference for web platform contributors in the Chromium open source project. At the conference I gave a presentation about “CSS Parser Extensions”, a wild idea I hav...

Philip Walton reposted

Along with the laundry list of CSS features I didn't know had been knocking around for the last few years, I've just found that private JS properties are "widely available" baseline…since 2021. Apparently I just get older and slower 🐌

Philip Walton reposted

Solved: AI coding tools that hallucinate legacy web practices. Modern Web Guidance codifies decades of Chrome's platform expertise into your agents. Level up with guides for web best practices and new platform features, using Baseline data for cross-browser reliability → goo.gle/4on8BMS

One important point about MWG (that hasn't gotten much coverage) is that it's *designed* to output cross-browser-compatible code by default. Every guide in this tool includes extensive browser compat instructions, meaning you can actually use this guidance now in real-world production applications.

Philip Walton reposted

We've been COOKING Modern Web Guidance is a skill pack that helps your coding agent write better, faster, more accessible and secure code Get it at goo.gle/mwg We'd love to know what you think!

goo.gleModern Web Guidance  |  Chrome for DevelopersGuidance on how to build for the modern web.
Chrome for Developers@developer.chrome.com

Ensure your coding agents build modern, fast & secure apps by default → goo.gle/3PcqfGj We just announced Modern Web Guidance at #GoogleIO. It injects AI-ready skills and modern features—with Baseline Widely Available fallbacks—so your agent stays up to date 🧵

Philip Walton reposted

Thrilled this is out, keeping quiet has been SO HARD! 🤐 I’ve had the opportunity to contribute as a domain expert consultant over the past few months, and saw firsthand the level of thoughtfulness and care that went into it. Proud to have played a small part, and excited to see what folks build! ❤️

Chrome for Developers@developer.chrome.com

Ensure your coding agents build modern, fast & secure apps by default → goo.gle/3PcqfGj We just announced Modern Web Guidance at #GoogleIO. It injects AI-ready skills and modern features—with Baseline Widely Available fallbacks—so your agent stays up to date 🧵

Philip Walton reposted

💥 Game changer for Web Development announced at GoogleIO- Modern Web Guidance! It’s expert-vetted skills for web development based on best practices of latest specs and APIs. It ensures your agent/coding harness doesn’t default to older and out of date patterns to build sites.

I'm going to be giving a talk that deep dives into Modern Web Guidance in 2 hours: bsky.app/profile/deve... You can find the talk details here: io.google/2026/explore...

Chrome for Developers@developer.chrome.com

Ensure your coding agents build modern, fast & secure apps by default → goo.gle/3PcqfGj We just announced Modern Web Guidance at #GoogleIO. It injects AI-ready skills and modern features—with Baseline Widely Available fallbacks—so your agent stays up to date 🧵

Philip Walton reposted

🚨 What are some modern web platform (CSS, HTML, JS) features that you wish your AI agent utilized, but doesn't (or gets them wrong)? I’ll go first: - CSS: lh unit, trig functions, nesting - HTML: inert attribute - JS: Regex lookbehind, regex named groups, RegExp.escape(), Object.groupBy()

Philip Walton reposted

TypeScript excitement 😉 Congrats to @jakebailey.dev on updating upstream tsc to default to an unpinned *latest* yearly edition of ES20xx. Heading for TS 6.0 🎉 This mean less transpilation of new JS features & more use of native language features provided by JS engines 👍 github.com/microsoft/Ty...

github.comDefault `target` to "latest standard", deprecate ES5 by jakebailey · Pull Request #63067 · microsoft/TypeScripttarget now defaults to ScriptTarget.LatestStandard, which is an alias to the most recent standardized ES version, currently ES2024 (until we add ES2025). target=ES5 is now deprecated. #63066 got mo...
Jake Bailey@jakebailey.dev

ES5 🫡👋

Philip Walton reposted

You know that annoying experience on mobile websites where you need to find the little close button and can't swipe a menu closed? The solution is simpler than you think. With basic CSS scroll APIs, you can get built-in interruptible swipe gestures 🥳

Philip Walton reposted

The Chrome Identity and Payments team in Waterloo Canada is hiring several early/mid-career developers. I'm on the lookout for exceptional candidates with a passion for browsers and/or the identity/payments space! www.linkedin.com/posts/rick-b...

Philip Walton reposted

There are many goodies that are newly and widely available in Baseline. backdrop-filter is so much fun to work with and I am obsessed with AVIF images and the ability to animate from display: none with @starting-style. And how easy is it to lazy load images now? web.dev/articles/bas...

web.devHow to implement an image gallery using Baseline features  |  Articles  |  web.devImage galleries are a common user interface pattern on the web. Learn how to create one using Baseline features.

Philip Walton reposted

Chrome for Android can now help users adopt passkeys more seamlessly. If a user signs in with a saved password , your website can request that an associated password manager (in many cases on Chrome is Google Password Manager) creates a passkey automatically. developer.chrome.com/blog/automat...

developer.chrome.comAutomatic passkey creation in Chrome for Android  |  Blog  |  Chrome for DevelopersChrome for Android can now automatically create passkeys after password sign-in, helping users transition to passkeys with less friction.

Philip Walton reposted

If we started Chrome Dev Summit again, would you be interested in it? (huh - apparently can't do polls here...), Please reply, Yes or No, or any other answer in between.

Philip Walton reposted

Announcing our public preview of Chrome DevTools MCP! Experience the full power of DevTools in your AI coding agent→ goo.gle/4pDE6Tk With Chrome DevTools MCP, your AI agent can run performance traces, inspect the DOM, & perform real-time debugging of your web pages.

Philip Walton reposted

Scoped View Transitions are ready for testing in Chrome! SVTs expose el.startViewTransition() on HTML elements. The element creates a scope for the transition, ∴ the transition pseudo-elements are affected by ancestor clips and transforms. Multiple SVTs on separate elements can run *concurrently*.

github.comgithub.com

Philip Walton reposted

🎉 Happy 30-month anniversary to Container Queries – in every browser since Feb, 2023. It was supposed to be impossible, but here we are! Why 2.5 years? Nothing will change tomorrow, but Baseline uses this milestone to signal confidence a feature has gained "wide" support. youtu.be/bhHV0rQ3-CQ