
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 web.dev, contributing to MDN, helping to improve browser compatibility, and some of the best developer tools like Lighthouse, Workbox, Squoosh to name just a few.
Bio
Bio
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 web.dev, contributing to MDN, helping to improve browser compatibility, and some of the best developer tools like Lighthouse, Workbox, Squoosh to name just a few.
paul.kinlan.me
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.
developer.chrome.com
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.
paul.kinlan.me
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.
paul.kinlan.me
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(); e.open().then(d => { alert(d.sRGBHex); }).catch(console.error) EyeDropper <— Just drag this to your bookmark bar.
paul.kinlan.me
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.
paul.kinlan.me
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, web.dev and developer.chrome.com) You can try it with a couple more queries:
paul.kinlan.me
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).
paul.kinlan.me
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).
paul.kinlan.me
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.
paul.kinlan.me
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.
paul.kinlan.me
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
paul.kinlan.me
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.
paul.kinlan.me
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.
paul.kinlan.me
Training the Button detector ML model
A guide on how I trained an ML model that detects Buttons and Links in a web page.
paul.kinlan.me
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
paul.kinlan.me
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 https://paul.kinlan.me/adding-activity-pub-to-your-static-site/ 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.
paul.kinlan.me
Adding ActivityPub to your static site
This is a short post about I how I added ActivityPub to my Hugo static blog
developer.chrome.com
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.
paul.kinlan.me
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.
paul.kinlan.me
Dec 13th, 2022
Note taking has become irregular. Need to get back into it. Very happy to see updates to web.dev/learn 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.
paul.kinlan.me
paul.kinlan.me
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.
paul.kinlan.me
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.
paul.kinlan.me
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 - JakeArchibald.com 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?
paul.kinlan.me
paul.kinlan.me
developer.chrome.com
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.
developer.chrome.com
paul.kinlan.me
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.
paul.kinlan.me
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.
paul.kinlan.me
paul.kinlan.me
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.
paul.kinlan.me
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.
paul.kinlan.me
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.
paul.kinlan.me
Aug 10th, 2022
New CRUX available - https://groups.google.com/a/chromium.org/g/chrome-ux-report-announce/c/N5B3F9QVOmY - 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).
web.dev
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…
web.dev
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…
web.dev
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…
developer.chrome.com
developer.chrome.com
Get Ready for the Chrome Dev Summit 2016
Chrome Dev Summit 2016 is coming Thursday, Nov 10th and 11th.
developer.chrome.com
API Deprecations and Removals in Chrome 54
An round up of the deprecations and removals in Chrome to help you plan.
developer.chrome.com
Intervening against document.write()
Chrome is blocking some scripts that are added using document.write()
web.dev
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…
web.dev
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…
developer.chrome.com
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.
developer.chrome.com
API Deprecations and Removals in Chrome 50
An round up of the deprecations and API removals in Chrome to help you plan.
developer.chrome.com
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.
developer.chrome.com
API Deprecations and Removals in Chrome 49
An round up of the deprecations and API removals in Chrome to help you plan.
developer.chrome.com
Notification Actions in Chrome 48
Users can interact with your site without opening up the page by using Notification Action buttons
web.dev
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…
developer.chrome.com
developer.chrome.com
Notification requireInteraction - A Smoother Notification UX on Desktop
Notifications on desktop will be automatically dismissed after a short period of time.
developer.chrome.com
Input device capabilities
A simpler method to rationalize your mouse and touch logic for when there is no PointerEvents
developer.chrome.com
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.
developer.chrome.com
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.
developer.chrome.com
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.
developer.chrome.com
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.
developer.chrome.com
developer.chrome.com
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
developer.chrome.com
developer.chrome.com
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.
developer.chrome.com
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](https://www.w3.org/TR/touch-events/) specification.
developer.chrome.com
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.
web.dev
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…
web.dev
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…
developer.chrome.com
developer.chrome.com
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.
developer.chrome.com
developer.chrome.com
Using cross-domain images in WebGL
WebGL specification has an important update on how to request images, cross-domain.
web.dev
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…
web.dev
3D and CSS
Introduction # For a long time 3D has been the preserve of desktop applications. Recently with the introduction of advanced smart-phones…
web.dev
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…