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.

Adding ActivityPub to your static site

Paul Kinlan

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

Read More

Using Web Mentions in a static site (Hugo)

Paul Kinlan

My blog is an entirely static site, built with Hugo and hosted with Zeit. This is a great solution for me, a simple blog has a pretty simple deployment process and it loads blazingly fast. Statically generated sites do have some drawbacks, the largest is when you need anything dynamic to be integrated into your page (comments for example). Not being able to easily host dynamic content will mean that you end up relying on 3rd party JavaScript that will then get full access to your page and you won't know what it is doing - it could be tracking your users or slowing down your page load.

Read More

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'). This is only needed for local testing, hosting is another issue :)

Read More