Hello.

I am Paul Kinlan.

A Developer Advocate for Chrome and the Open Web at Google.

links (35 articles)

  • Debugging Web Pages on the Nokia 8110 with KaiOS - published March 21 2019
  • Object Detection and Augmentation - published March 11 2019
  • Got web performance problems? Just wait... - published March 9 2019
  • Browser Bug Searcher - published March 9 2019
  • Github's Web Components - published February 27 2019
  • London from Kingscross - published February 27 2019
  • The GDPR mess - published February 18 2019
  • Brexit: History will judge us all - published February 17 2019
  • Ricky Mondello: Adoption of Well-Known URL for Changing Passwords - published January 31 2019
  • pinch-zoom-element - published January 13 2019
  • Registering as a Share Target with the Web Share Target API - published December 7 2018
  • Why Build Progressive Web Apps: Push, but Don't be Pushy! Video Write-Up - published December 6 2018
  • Maybe Our Documentation "Best Practices" Aren''t Really Best Practices - published December 5 2018
  • Feature Policy & the Well-Lit Path for Web Development (Chrome Dev Summit 2018) - published November 23 2018
  • Photos from Chrome Chrome Dev Summit 2018 - published November 21 2018
  • Chrome Dev Summit 2018 - published November 11 2018
  • Performance and Resilience: Stress-Testing Third Parties by CSS Wizardry - published October 23 2018
  • Chrome Bug 897727 - MediaRecorder using Canvas.captureStream() fails for large canvas elements on Android - published October 22 2018
  • Why Microsoft and Google love progressive web apps | Computerworld - published October 22 2018
  • 894556 - Multiple video tracks in a MediaStream are not reflected on the videoTracks object on the video element - published October 12 2018
  • Barcode detection in a Web Worker using Comlink - published October 2 2018
  • Running FFMPEG with WASM in a Web Worker - published October 2 2018
  • Translating a blog using Google Cloud Translate and Hugo - published August 31 2018
  • Apple - Web apps - All Categories - published August 25 2018
  • Gears API - published August 25 2018
  • RSS Feed to Google Chat Webhook using Cloud Functions for Firebase and Superfeedr - published August 25 2018
  • 'Moving to a Chromebook' by Rumyra's Blog - published August 13 2018
  • What are the pain points for web designers? - Mustafa Kurtuldu - published August 1 2018
  • Page Lifecycle API - Philip Walton - published July 26 2018
  • Add to homescreen changes in Chrome 68 - Pete LePage - published July 26 2018
  • A one year PWA retrospective - Pinterest Engineering - published July 20 2018
  • Configuring hugo server to serve 'mjs' ES modules - published July 20 2018
  • Thoughts on importing npm modules to the web as JavaScript modules - published July 20 2018
  • This.Javascript: State of Browsers - YouTube - published July 19 2018
  • PWACompat: the Web App Manifest for all browsers - @ChromiumDev - published July 17 2018
  • pwa (29 articles)

  • Why Build Progressive Web Apps: Push, but Don't be Pushy! Video Write-Up - published December 6 2018
  • Why Microsoft and Google love progressive web apps | Computerworld - published October 22 2018
  • Building a video editor on the web. Part 0.1 - Screencast - published October 12 2018
  • Building a video editor on the web. Part 0. - published October 11 2018
  • PWA: Progressive Web All-the-things - published August 2 2018
  • Page Lifecycle API - Philip Walton - published July 26 2018
  • Add to homescreen changes in Chrome 68 - Pete LePage - published July 26 2018
  • A one year PWA retrospective - Pinterest Engineering - published July 20 2018
  • This.Javascript: State of Browsers - YouTube - published July 19 2018
  • PWACompat: the Web App Manifest for all browsers - @ChromiumDev - published July 17 2018
  • Getting started with the Ambient Light Sensor - published July 13 2018
  • Understanding Storage Quota | Workbox - published July 11 2018
  • JakeHorner - published April 15 2018
  • Web Share Target API - published April 15 2018
  • onappinstalled - for when an app is installed. - published April 13 2018
  • Topicdeck - published March 3 2018
  • GDE Deck - published January 1 2018
  • Progressive Progressive Web Apps - published July 4 2017
  • Airhorner Custom Element - published April 15 2017
  • Ephemeral social or content networks - published July 4 2016
  • Serverless Data Sync in Web Apps with Bit Torrent - published June 14 2016
  • The future of the web on mobile from Coldfront Conf - published September 11 2015
  • QR Snapper - published April 15 2015
  • Walking, talking and ideas for web apps - published February 11 2015
  • The future of communications apps is on the web - published January 18 2015
  • Living with Web Apps - published August 20 2014
  • Airhorner - published April 15 2014
  • Add to home screen is not what the web needs. Is it? - published February 21 2014
  • paul.kinlan.me - published April 15 2010
  • intents (21 articles)

  • File Web Share Target - published February 15 2019
  • testing-file-share-target - published February 13 2019
  • Hyperlinking Beyond the Web - CSS-Tricks - published July 15 2018
  • Web Share Target API - published April 15 2018
  • Breaking down silos by sharing more on the web - published January 20 2018
  • The Web is my API - published August 27 2017
  • Reinventing Web Intents - published August 25 2017
  • Web sites as unintended silos: The problem with getting data in and out of the web client - published July 25 2017
  • Creating a share button web component - published April 6 2017
  • Launch an Android app from the web and cleanly fallback to web - published January 10 2016
  • Service discovery and app interactions on the web - published January 8 2016
  • The future of the web on mobile from Coldfront Conf - published September 11 2015
  • Deep Web App Linking - published August 3 2015
  • Deep App linking and changes to Chrome on Android - published March 14 2015
  • Parsing the screenshot that Chrome for Android includes via ACTION_SEND intent - published March 13 2015
  • What happened to Web Intents? - published February 14 2015
  • Getting your app to support Web Intents on Chrome - published February 8 2012
  • Two years and counting at Google - published February 7 2012
  • Web Intents: A fresh look - published July 1 2011
  • So what is happening with Web Intents? - published March 3 2011
  • 2010: My year in review (a personal view) - published January 4 2011
  • javascript (11 articles)

  • Configuring hugo server to serve 'mjs' ES modules - published July 20 2018
  • Thoughts on importing npm modules to the web as JavaScript modules - published July 20 2018
  • Importing npm modules to the web as JavaScript modules - published July 19 2018
  • We need DOM APIs in Workers - published January 28 2018
  • A simple clientside templating langauge - published January 27 2018
  • Detecting text in an image on the web in real-time - published January 27 2017
  • How should we load web components? - published January 26 2017
  • Building a simple PubSub system in JavaScript - published December 8 2016
  • Barcode detection using Shape Detection API - published December 5 2016
  • Web Fundamentals - published April 15 2014
  • HTML5Rocks - published April 15 2012
  • link (11 articles)

    headless (9 articles)

  • Puppeteer as a service - published March 15 2018
  • DOMCurl - published February 15 2018
  • Exciting times: 2017 and the web - published January 1 2017
  • Running Chrome on AppEngine - published December 22 2016
  • Chrome on Google Home - published December 12 2016
  • Designing a Web Push Service - published November 29 2016
  • The Headless Web - published August 1 2016
  • An organizer's perspective on Progressive Web App Dev Summit - published July 4 2016
  • SLICE: The Web - published August 3 2015
  • web-app (7 articles)

  • Ephemeral social or content networks - published July 4 2016
  • Serverless Data Sync in Web Apps with Bit Torrent - published June 14 2016
  • The future of the web on mobile from Coldfront Conf - published September 11 2015
  • Walking, talking and ideas for web apps - published February 11 2015
  • The future of communications apps is on the web - published January 18 2015
  • Living with Web Apps - published August 20 2014
  • Add to home screen is not what the web needs. Is it? - published February 21 2014
  • web-components (7 articles)

  • Github's Web Components - published February 27 2019
  • pinch-zoom-element - published January 13 2019
  • Minifying a Custom Element that contains inline CSS and HTML - published April 23 2017
  • Defining web component interfaces - published April 13 2017
  • Creating a share button web component - published April 6 2017
  • How should we load web components? - published January 26 2017
  • Custom Elements: an ecosystem still being worked out - published November 5 2016
  • custom-element (6 articles)

  • Github's Web Components - published February 27 2019
  • pinch-zoom-element - published January 13 2019
  • file-drop custom element - published November 26 2018
  • Minifying a Custom Element that contains inline CSS and HTML - published April 23 2017
  • Defining web component interfaces - published April 13 2017
  • Custom Elements: an ecosystem still being worked out - published November 5 2016
  • ffmpeg (6 articles)

  • Running FFMPEG with WASM in a Web Worker - published October 2 2018
  • Exciting times: 2017 and the web - published January 1 2017
  • Screen recording on Android with getUserMedia and WebRTC - published December 16 2016
  • Ideas for web apps with FFMPEG and ffmpeg.js - published December 5 2016
  • Building ffmpeg.js for Ubuntu - published December 3 2016
  • Automating Android screen recording and device framing - published July 29 2016
  • headless-chrome (6 articles)

  • Bookmarklet: Chrome DevTools trace page - published April 12 2018
  • Hosting Puppeteer in a Docker container - published March 13 2018
  • domcurl: curl + JavaScript - published March 12 2018
  • Chrome on Google Home - published December 12 2016
  • The Headless Web - published August 1 2016
  • SLICE: The Web - published August 3 2015
  • india (6 articles)

    share (6 articles)

  • File Web Share Target - published February 15 2019
  • Testing-file-share-target-from-camera - published February 13 2019
  • testing-file-share-target - published February 13 2019
  • Registering as a Share Target with the Web Share Target API - published December 7 2018
  • Breaking down silos by sharing more on the web - published January 20 2018
  • Defining web component interfaces - published April 13 2017
  • qrcode (5 articles)

  • Object Detection and Augmentation - published March 11 2019
  • Performance and Resilience: Stress-Testing Third Parties by CSS Wizardry - published October 23 2018
  • Barcode detection in a Web Worker using Comlink - published October 2 2018
  • Barcode detection using Shape Detection API - published December 5 2016
  • QR Snapper - published April 15 2015
  • manifest (4 articles)

    mediarecorder (4 articles)

    performance (4 articles)

    puppeteer (4 articles)

  • Bookmarklet: Chrome DevTools trace page - published April 12 2018
  • Puppeteer as a service - published March 15 2018
  • Hosting Puppeteer in a Docker container - published March 13 2018
  • DOMCurl - published February 15 2018
  • service-worker (4 articles)

  • Understanding Storage Quota | Workbox - published July 11 2018
  • Using CSP Nonces effectively with service worker - published February 4 2018
  • QR Snapper - published April 15 2015
  • Airhorner - published April 15 2014
  • the-headless-web (4 articles)

  • domcurl: curl + JavaScript - published March 12 2018
  • Chrome on Google Home - published December 12 2016
  • The Headless Web - published August 1 2016
  • SLICE: The Web - published August 3 2015
  • wasm (4 articles)

  • Building a video editor on the web. Part 0. - published October 11 2018
  • Running FFMPEG with WASM in a Web Worker - published October 2 2018
  • Emscripten's compiled Web Assembly, used minimally - published July 11 2018
  • Building ffmpeg.js for Ubuntu - published December 3 2016
  • webdev (4 articles)

    airhorn (3 articles)

  • JakeHorner - published April 15 2018
  • Airhorner Custom Element - published April 15 2017
  • Airhorner - published April 15 2014
  • chrome-dev-summit (3 articles)

    google (3 articles)

    shape-detection (3 articles)

  • Detecting text in an image on the web in real-time - published January 27 2017
  • Barcode detection using Shape Detection API - published December 5 2016
  • QR Snapper - published April 15 2015
  • webrtc (3 articles)

    api (2 articles)

    bigquery (2 articles)

    css (2 articles)

  • Web Fundamentals - published April 15 2014
  • HTML5Rocks - published April 15 2012
  • getusermedia (2 articles)

    html (2 articles)

  • Web Fundamentals - published April 15 2014
  • HTML5Rocks - published April 15 2012
  • hugo (2 articles)

    lighthouse (2 articles)

    npm (2 articles)

    progressive-web-apps (2 articles)

    slice (2 articles)

  • An organizer's perspective on Progressive Web App Dev Summit - published July 4 2016
  • SLICE: The Web - published August 3 2015
  • topicdeck (2 articles)

  • Topicdeck - published March 3 2018
  • GDE Deck - published January 1 2018
  • torrent (2 articles)

    video-editor (2 articles)

    web-intents (2 articles)

  • Registering as a Share Target with the Web Share Target API - published December 7 2018
  • Web Share Target API - published April 15 2018
  • worker (2 articles)

  • Barcode detection in a Web Worker using Comlink - published October 2 2018
  • QR Snapper - published April 15 2015
  • a2hs (1 articles)

    app-shell (1 articles)

  • Topicdeck - published March 3 2018
  • architecture (1 articles)

  • Web Architecture 101 - VideoBlocks - published July 12 2018
  • beaker (1 articles)

    bookmarklet (1 articles)

  • Bookmarklet: Chrome DevTools trace page - published April 12 2018
  • boomerang (1 articles)

    brave (1 articles)

    browsers (1 articles)

    bugs (1 articles)

  • Browser Bug Searcher - published March 9 2019
  • chrome (1 articles)

    chromeos (1 articles)

  • 'Moving to a Chromebook' by Rumyra's Blog - published August 13 2018
  • cloud (1 articles)

    color (1 articles)

  • A List Apart. Cool! - published August 24 2005
  • comlink (1 articles)

    crux (1 articles)

    csp (1 articles)

    curl (1 articles)

  • domcurl: curl + JavaScript - published March 12 2018
  • debugging (1 articles)

    demo (1 articles)

    developing-markets (1 articles)

    devrel (1 articles)

    docker (1 articles)

  • Hosting Puppeteer in a Docker container - published March 13 2018
  • dom (1 articles)

  • We need DOM APIs in Workers - published January 28 2018
  • edge (1 articles)

    es-modules (1 articles)

    feature-policy (1 articles)

    firebase (1 articles)

    firefox (1 articles)

    fonts (1 articles)

    fraud-detection (1 articles)

    gears (1 articles)

  • Gears API - published August 25 2018
  • getdisplaymedia (1 articles)

    git (1 articles)

  • Grep your git commit log - published October 23 2018
  • google-analytics (1 articles)

    idl (1 articles)

  • Defining web component interfaces - published April 13 2017
  • intent (1 articles)

  • Testing-file-share-target-from-camera - published February 13 2019
  • kaios (1 articles)

    leak (1 articles)

  • Levi Routes - published June 1 2011
  • lifecycle (1 articles)

  • Page Lifecycle API - Philip Walton - published July 26 2018
  • london (1 articles)

  • London from Kingscross - published February 27 2019
  • lumpy (1 articles)

  • Browser Bug Searcher - published March 9 2019
  • media (1 articles)

    mjs (1 articles)

    modules (1 articles)

    mozilla (1 articles)

    node (1 articles)

  • domcurl: curl + JavaScript - published March 12 2018
  • productivity (1 articles)

  • did.txt file - Patrick - published July 16 2018
  • pubsub (1 articles)

  • Building a simple PubSub system in JavaScript - published December 8 2016
  • push-notifications (1 articles)

    rollup (1 articles)

    routing (1 articles)

  • Levi Routes - published June 1 2011
  • rss (1 articles)

    ruby (1 articles)

  • A List Apart. Cool! - published August 24 2005
  • safari (1 articles)

    security (1 articles)

    sensor (1 articles)

    shapedetection (1 articles)

  • Object Detection and Augmentation - published March 11 2019
  • silo (1 articles)

    site (1 articles)

  • paul.kinlan.me - published April 15 2010
  • specs (1 articles)

    ssr (1 articles)

  • Progressive Progressive Web Apps - published July 4 2017
  • storage (1 articles)

  • Understanding Storage Quota | Workbox - published July 11 2018
  • superfeedr (1 articles)

    tech-writing (1 articles)

    templating (1 articles)

  • A simple clientside templating langauge - published January 27 2018
  • translate (1 articles)

    ux (1 articles)

  • Designing with the Gestalt principles - published July 11 2018
  • video (1 articles)

    web-component (1 articles)

  • file-drop custom element - published November 26 2018
  • webaps (1 articles)

  • Apple - Web apps - All Categories - published August 25 2018
  • webgl (1 articles)

    webpush (1 articles)

  • Designing a Web Push Service - published November 29 2016