Hello.

I am Paul Kinlan.

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

Webmention.app

Paul Kinlan

I love the idea of Webmentions, yet I’ve not had the time to implement it on my site. At a high-level web mentions let you comment, like and reply to other content on the web and have it be visible to that content without being centralised with tools like Disqus (which I am keen to remove from my site). Web Mentions are split in to two components, the sender and the receiver.

Read More

Creating a commit with multiple files to Github with JS on the web

Paul Kinlan

My site is entirely static. It’s built with Hugo and hosted with Zeit. I’m pretty happy with the setup, I get near instant builds and super fast CDN’d content delivery and I can do all the things that I need to because I don’t have to manage any state. I’ve created a simple UI for this site and also my podcast creator that enables me to quickly post new content to my statically hosted site.

Read More

Translating a blog using Google Cloud Translate and Hugo

Paul Kinlan

I recently returned from a trip to India to attend the Google4India event (report soon) and to meet with a lot of businesses and developers. One of the most interesting changes discussed was the push for more content in the language of the users in the country, and it was particularly apparent across all of Google’s products which ranged from making it easier to search in the users language, to find content, and also to read it back to users in either text or voice form.

Read More

Configuring hugo server to serve 'mjs' ES modules

Paul Kinlan

By default Hugo doesn’t serve .mjs files with the correct content type. In fact it wasn’t until recently that hugo could serve more than one file extension per mime-type. It looks like with v0.43 this has been fixed. [mediaTypes] [mediaTypes.“text/javascript”] suffixes = [“js”, “mjs”] Read full post. The above code lets me serve mjs files for ES Modules with the correct mime-type (note modules need to be served with ‘text/javascript’).

Read More