Paul Kinlan

Paul Kinlan

DevRel Lead

I lead the Chrome Developer Relations team at Google.

We want people to have the best experience possible on the web without having to install a native app or produce content in a walled garden.

Our team tries to make it easier for developers to build on the web by supporting every Chrome release, creating great content to support developers on, contributing to MDN, helping to improve browser compatibility, and some of the best developer tools like Lighthouse, Workbox, Squoosh to name just a few.


I lead the Chrome Developer Relations team at Google.

We want people to have the best experience possible on the web without having to install a native app or produce content in a walled garden.

Our team tries to make it easier for developers to build on the web by supporting every Chrome release, creating great content to support developers on, contributing to MDN, helping to improve browser compatibility, and some of the best developer tools like Lighthouse, Workbox, Squoosh to name just a few.

Filter by:

Filter by:




Chat GPT Code Interpreter and Browser Compat Data

One of the problems that I have with LLMs is knowing when they will be useful and how to apply them to any given problem. A lot of it just feels alien to me because with a background in computer programing I've been trained over 30 years that we frequently will get a deterministic set of results. I like to experiment and break new mental ground, so when I saw that Chat GPT had a code interpreter, I was was interested and yet had no clue what I would do with it.

10 updates at Google I/O

Learn how we're making it easier for developers to deliver powerful experiences to their users through key updates and new launches that we shared at Google I/O 2023.

IndexedDB as a Vector Database

As I started to play with Open AI and some Generative ML ideas, I said "There are database companies that just focus on Vector search :mind-blown:". My mind is still blown that this is an industry, but as I play with Polymath and Pinecone it is clear that they are useful services, and the tinkerer that I am wanted to tinker about with the idea of running this type of database directly in the browser.

Bookmarklet: Eyedropper

I was reading Stefan Judis's awesome "Web Weekly" and in this weeks post he mentioned the EyeDropper API in Chromium Desktop browsers only - I totally missed this and because I frequently have to grab color information for slide design I need something quick to hand. Bookmarklets are quick to hand, so I built one for you. const e = new EyeDropper(); => { alert(d.sRGBHex); }).catch(console.error) EyeDropper <— Just drag this to your bookmark bar.

Querying browser compat data with a LLM

I've been noodling about a lot with LLMs recently and naturally I wanted to see if they could help me with my role. There's a lot of places I've found them to be useful, but an area where I've struggled is their data sources not being up to date with the current state of the web. I build a lot of sites and speak to a lot of Web Developers and a huge problem we have is knowing what APIs are supported so that I can use and rely on it in my sites without having to worry about compatibility as much.

Building Ask Paul

I've been doing a lot of experimentation with Generative Machine Learning and one of the demo's that I've build is called "Ask Paul". You can ask me nearly any front-end web development question and the software will give you a direct answer if it can and links to further reading across the sites that I create content for (this blog, and You can try it with a couple more queries:

Talk: "Aiming for the future" at Bangor University

I was honoured to be able to present at the "School of Computer Science and Electronic Engineering" last week with a talk called "Aiming for the Future" [pdf]. I had a lot of fun creating this talk where I could go from the earliest computing with the Difference Engine all the way to today and try and talk about the evolutions of computing and possibility at every transition (I tied the transitions to delivery of content/data).

BCD - Experimental APIs

This is just a small update. I've spent a bit of time adding some features to "time-to-stable". As I try to think about what is stable across the web platform it is useful to think about what APIs are marked as experimental. I added a new page to the site which lets you discover the APIs across a selected list of browsers that are still marked as experimental in BCD (Browser Compat Data).

The local-only web

I was very happy to do a keynote session for the Tokyo and New York Google Developer Groups. I love doing talks that are centred around "The web in 202x" and these where no different. The New York keynote was a little different to the event in Tokyo because I had an extra 15 minutes to talk, and I like talking. One area that I got to spend more time on was using talking about areas that I am personally excited in 2023 and beyond.

Support during layoffs

If you are impacted by any of the layoffs at Google or across the industry, please reach out and I will try and help in any way that I can. I am happy to make connections and intros, LinkedIn recommendations, resume review, interview prep, a listening ear. For over a year now I've been running calls and I want to try and help you all as much as I can. My calendar is open, please use me in anyway that you think I might be able to help.

Using ML to Create a Simple Lighthouse Audit to Detect a Button

This post wraps up the series of posts I created about applying ML to some developer tasks that are hard to do programatically. Specifically, I wanted to create a tool that would let me detect if an anchor on a page <a> was styled to look like a button or not (woot, it worked!) You can check out the previous posts here: Scraping images of links and buttons to train an ML model

Creating a Lighthouse Gatherer to generate high-res screenshots for your Audit

I created a custom Lighthouse Gatherer that captures high-resolution screenshots of web pages, using the Puppeteer API. Despite the complexity of the task, the process was surprisingly easy and efficient.

Creating a web app with Deno, Fresh and TensorflowJS

After I trained a simple machine learning model that can detect if an image looks like a link or a button. I created a web app to help me test it using Deno, Fresh and TensorflowJS. My demo allows for dragging and dropping many images on a page and automatically classifying them.

Training the Button detector ML model

A guide on how I trained an ML model that detects Buttons and Links in a web page.

Button and Link Scraping for ML training

After over 20 years I'm getting back in to ML. I looking at a simple (but practical) example that I can get back up to speed on

Dec 23rd, 2022

Created Adding ActivityPub to your static site and also added a lot more functionality to my site. I can now show Likes, "Boosts" and replies. See Interactions from around the fediverse with as an example Added resources to ActivityPub to help people find the best information ML Google Colab - Colab is a rather amazing tool, I've also built some dashboards in the past with it but for ML with Tensorflow it's worked really well.

Adding ActivityPub to your static site

This is a short post about I how I added ActivityPub to my Hugo static blog

Chrome Dev Insider: The year that was

An update from Chrome’s Web Platform team where we take developers behind the scenes to share perspectives, conversations and updates.

Post Deploy Webhook for Vercel

This custom integration was created because Vercel does not currently offer the ability to configure webhooks for project-related events such as Deploy Successful.

Dec 13th, 2022

Note taking has become irregular. Need to get back into it. Very happy to see updates to Learn Accessibility Learn HTML I know there is a lot more coming in the new year. Spent some time researching ActivityPub - Personally I found it all a bit complex Added ActivityPub to this blog so that it publishes a feed and posts it to subscribers. ActivityPub ecosystem needs a Technical Writer.

Thoughts on a "Web Follow" protocol

Thinking about the follow action on the web.

Using ML to improve developer experience.

My world has been shook. I started writing this post in March 2021 and am revisiting it today. I discussed how watching Corridor Crew inspired me to look for ways ML can improve developer experience. After researching, I identified four challenges: inferring what developers meant for the DOM, aiding with accessibility, helping with performance, and creating layouts and images. Finally, I questioned how GPT-Chat has changed my job as a DevRel lead.

Detecting if a URL scheme can be handled

Can we detect if a url with a custom URL scheme can be handled? Why yes. Yes we can.

Nov 21st, 2022

Events are hard. Collating lots of posts about the Modern Frontends event. Stop treating all of your content as if it were news – Rachel Andrew Drawing a star with DOMMatrix - Building a Cross-Platform Mobile Messaging Experience Reading Enhance docs Collated TPAC 2022 - currently reading through a lot of the discussions. Read Optimizing Interaction to Next Paint (INP) by Jeremy Wagner Read Can we enterprise CSS grid?



On Mastodon

Some thoughts about why Mastodon

Chrome Dev Insider: Scaling performance with the framework ecosystem

An update from Chrome’s Web Platform team where we take developers behind the scenes to share perspectives, conversations and updates.

Meeting you where you are

Find out how you can meet the Chrome team.

Sep 16th, 2022

Thinking about Competitive Dashboards Created Chrome Release 106 a super-light list of what is in each release of Chrome powered by Chrome Status. Mostly an experiment with Deno and Deno Deploy, but it was amazing to build a UI in Lit and then just move it to run on the server (note: I removed Lit and used my own templating tool that is very similar.) Read How To Improve Largest Contentful Paint for Faster Load Times - Calibre Read Modern alternatives to BEM - daverupert.

Sep 12th, 2022

Read Fronteers - Debugging Web Privacy [public] - Google Slides Read Critical CSS? Not So Fast! – CSS Wizardry – Web Performance Optimisation Read A Dangerous Addiction. I wanted to talk about something I’ve… | by Alex Komoroske | Jul, 2022 | Medium This post resonates a lot with me and was similar to a conversation I had with Alex earlier in my career when we worked together TIL https://internet.

What is new on the web?

When does an API become available to use on the web?

Sep 5th, 2022

The USA was off on national holiday today, so I spent some time investigating what you can do with Browser Compat Data Built Now Stable across Chrome, Firefox, and Safari - to help us work out what is new to the web each month. Built Time to Stable - To help us how long it takes features to reach a stable portion of the web Test: Time to Stable across Chrome, Firefox, and Safari browser-compat-data/browsers-schema.

Aug 22nd, 2022

Read Sustainable Web Manifesto - not really sure what to make of it. On one hand I totally get it, on the other who knows how to actually quantify this? I know the Pixel 6 has a power rail that can be measured and you could look at the impact of loading a page in terms of power usage, but measuring on the client is only one aspect, how do you quantify the impact of any server interaction.

Aug 15th, 2022

Read Adactio: Journal—Democratising dev This is another great post, and there's this bit at the end: Don’t get me wrong. I love having my own website. Like, I really love it. But I’m also well aware that it doesn’t scale. It’s unreasonable to expect someone to learn new skills just to make a web page about, say, an event they want to publicise. I don't always think it's the complexity of building the site that is the biggest blocker to a lot of people, it's the deploying and running.

Aug 10th, 2022

New CRUX available - - July data set. Chrome UX Report - Chrome Developers CrUX is probably one of the most valuable datasources that you don't yet use. Watched: What are Chrome release channels? - YouTube - I love Sam's videos, he creates clear and concise content that is easy to understand but covers what I need to know. WASM coming to Vercel Edge ? PHP 7.4.20 - phpinfo() - I'm actually curious to see what this actually means (not the PHP link).

Farewell to HTML5Rocks

After 10 years and 100 million pageviews this commit completes our transition of content of HTML5Rocks to homes that are maintained on…

Google I/O 2022: That's a wrap!

At Google IO 2022 we shared updates on our progress to help create a web that is instant, and connects people, no matter their device or…

Quickly create nice CSS gradients with the CSS Gradient Creator

This CSS Gradient Generator by Josh W Comeau is a very good, simple Web App that helps you to create "Beautiful, lush gradients". I…

position:sticky is back in Chrome

position:sticky. It's back!

Get Ready for the Chrome Dev Summit 2016

Chrome Dev Summit 2016 is coming Thursday, Nov 10th and 11th.

API Deprecations and Removals in Chrome 54

An round up of the deprecations and removals in Chrome to help you plan.

Joe Medley Paul Kinlan

Joe Medley, Paul Kinlan

Intervening against document.write()

Chrome is blocking some scripts that are added using document.write()

Recording Audio from the User

Many browsers now have the ability to access video and audio input from the user. However, depending on the browser, it might be a full…

Capturing an image from the user

Many browsers now have the ability to access video and audio input from the user. However, depending on the browser it might be a full…

Geolocation API removed from unsecured origins in Chrome 50

Starting with version 50, Chrome no longer supports the HTML5 Geolocation API over non-secure connections.

API Deprecations and Removals in Chrome 50

An round up of the deprecations and API removals in Chrome to help you plan.

Web Notification Improvements in Chrome 50 - Icons, Close Events, Renotify Preferences and Timestamps

There are lots of great new features in Chrome 50 for Notifications, here is a rundown.

API Deprecations and Removals in Chrome 49

An round up of the deprecations and API removals in Chrome to help you plan.

Notification Actions in Chrome 48

Users can interact with your site without opening up the page by using Notification Action buttons

Beyond the Rack

Beyond the Rack re-engages users on the mobile web, increasing revenue per visit by 26% with push notifications. Push notifications allowed…

Manage the triggering of touch to search

Understanding when and how Touch to Search is triggered

Notification requireInteraction - A Smoother Notification UX on Desktop

Notifications on desktop will be automatically dismissed after a short period of time.

Input device capabilities

A simpler method to rationalize your mouse and touch logic for when there is no PointerEvents

Using the web app manifest to specify a site wide theme color

Set a theme-color in the manifest and have it available to all pages on your site when launched from the home screen.

Using poster images on plugin content

Chrome can now add custom poster images to object elements to improve perceived loading performance of plugins such as Flash.

Measuring Performance in a Service Worker

If you can't measure the performance of your requests in a service worker, how can you say it improves performance? Now you can answer that question with recent changes in Chrome.

Using rotationAngle and touchRadius

A small set of changes have landed in Chrome 45 that will make it easier for developers to build better touch based apps.

Autocapitalize for mobile

Another text entry frustration for users is being removed.

DOM Attributes now on the prototype chain

Chrome is becoming in line with the spec. Check your sites if you are assuming the WebKit logic for attribute propagation


Pixelation of the nation. Now in Chrome 41

Fundamentals of mobile web development

A quick look at some of the efforts the Chrome team are doing to helps developers get started with web development and iterate on their sites.

A more compatible, smoother touch

You and your users want mobile web apps that react and scroll smoothly to the touch. Developing them should be easy but, unfortunately, how mobile web browsers react to touch events during scrolling is left as an implementation detail in the [TouchEvent]( specification.

Chrome Dev Summit - Mobile summary

Here's the first in a series of reports from Chrome Dev Summit. There was a strong emphasis on Mobile and Cross-device development, so we'll kick off with that.

User Location

The Geolocation API lets you discover, with the user's consent, the user's location. You can use this functionality for things like guiding…

Touch and mouse

Introduction # For close to thirty years, desktop computing experiences have centered around a keyboard and a mouse or trackpad as our main…

Detect DOM changes with mutation observers

An introduction to Mutation Observers.

Having a ride with Three.js

We are seeing more and more developers coming up with new 3D demos whether they were OpenGL experts already or new adventurers that started playing with it.

insertAdjacentHTML everywhere

How to insert content in a HTML document

Using cross-domain images in WebGL

WebGL specification has an important update on how to request images, cross-domain.

Multiplayer audio fun

Using the Web Audio API, WebSockets and a very nice designed UI here comes a demo where you can generate notes on the fly and with other…

3D and CSS

Introduction # For a long time 3D has been the preserve of desktop applications. Recently with the introduction of advanced smart-phones…

A simple TODO list using HTML5 WebDatabases

Warning On November 18, 2010, the W3C announced that Web SQL database is a deprecated specification. This is a recommendation for web…

This site uses cookies to deliver and enhance the quality of its services and to analyze traffic. If you agree, cookies are also used to serve advertising and to personalize the content and advertisements that you see. Learn more about our use of cookies.