Hello.

I am Paul Kinlan.

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

I love the web. The web should allow anyone to access any experience that they need without the need for native install or content walled garden.

transformerjs-breadboard-kit

Paul Kinlan

A TransformerJS kit for breadboard

Read More

Building an NPM downloads dashboard with Google Sheets

Paul Kinlan

As a data-driven manager, I needed a way to track the performance of our team's numerous NPM packages. Frustrated by the lack of an obvious API, I discovered a hidden gem in the NPM registry documentation. Using this, I created a Google Sheet with custom functions to pull download stats directly. The sheet allows you to track both scoped and non-scoped packages, view data in a table or column format, and easily create charts to visualize trends. Check out the linked sheet and accompanying code to build your own NPM downloads dashboard!

Read More

A simple video insertion tool for EditorJS

Paul Kinlan

I've created a simple video plugin for EditorJS, called simple-video, to easily embed videos. It's based on the simple-image plugin and allows for autoplay, mute, and control options. Check out the npm package and GitHub repo for more details!

Read More

Thoughts on importing npm modules to the web as JavaScript modules

Paul Kinlan

In this post, I explore importing npm modules into web projects using ES6 modules. I needed a quick way to use the 'get-urls' npm module in my ES6 project without resorting to CommonJS bundling. My solution involves creating a wrapper file to import the module, using Rollup to handle Node globals and builtins, converting to ES modules via the CommonJS plugin, and finally, including the bundled file. This highlights a larger issue: much of the Node ecosystem, though not inherently Node-specific, is tightly coupled with it through CommonJS and APIs like 'Buffer' and the old 'URL.' Transitioning to ubiquitous ES modules will require effort and potentially be painful. Until the ecosystem adapts, we'll rely on conversion tools and bundlers for cross-platform code sharing. While using '.mjs' as a standard extension is promising, the lack of infrastructure recognizing it as 'text/javascript' necessitates further server-side configuration, which adds complexity.

Read More

Importing npm modules to the web as JavaScript modules

Paul Kinlan

In this post, I share a Rollup configuration I created to easily import npm modules into a front-end project using ES6 modules. I needed a way to use the 'get-urls' npm package in my ES6 project without resorting to CommonJS. My solution involves creating a wrapper file, using Rollup to bundle it with necessary plugins (node-resolve, commonjs, node-builtins, node-globals, closure-compiler-js), and then importing the resulting bundle into my HTML using a <script type="module"> tag. While the resulting bundle size is larger than ideal, this method allows me to use npm modules directly within my ES6 code.

Read More

Topicdeck

Paul Kinlan

Topicdeck is the module that aggregates a selection of RSS feeds into a tweetdeck style view

Read More

GRPC + Google Cloud: Cannot find module grpc_node.node

Paul Kinlan

This is a note for how to fix the above error because it annoyed me!

Read More

Walking, talking and ideas for web apps

Paul Kinlan

How do you find ideas for web apps and why is it important to build apps that push the platform?

Read More