Modern Web Development with Chrome

Recent content on Modern Web Development with Chrome
https://paul.kinlan.me/ (RSS)
visit blog
When generating apps the spec is important
12 Nov 2024 | original ↗

I've been generating a lot of web apps recently. It's been exhilarating to be able to launch projects (albeit on the small side) that I've always wanted to see be created finally be willed into existence. Last week on the train back from London I embarked on my largest project yet, https://tldr.express. I've been amazed by Agents like...

User Agents Hitting My Site
6 Nov 2024 | original ↗

I've always wanted to know which user agents are currently hitting my site... Am I getting crawled? Are ML bots sifting through my site? I added some middleware to my site to log the user agent of every request while using Vercel's KV to store the user agents and their counts. User Agents in the last hour User Agent Count

Countdown timer
6 Nov 2024 | original ↗

I've a little thing where I like to know roughly how many days it until something. My kids' birthdays, my wedding anniversary, Christmas... Following my focus on Generated Web Apps where launch sites and services without touching a single line of code, I decided to build a simple service that didn't require anyone to sign-up or sign-in, but could...

Will we care about frameworks in the future?
28 Oct 2024 | original ↗

I've been building lots of apps by using LLMs and Agents. I'm currently up to about 17 tools, utilities and demos over the duration of a couple of weeks. I build them for me and because tools like Replit have enabled me during my small spots of free time to build fully working sites and apps that solve the immediate problem that I have. I've felt...

20 years blogging
3 Oct 2024 | original ↗

I missed it, but I just realised that as of August 28th 2024 I've been blogging for over 20 year. I would have finished university and left my startups a couple of years before, gone went in to Enterprise, left behind Linux and Perl for a brief fling with c# and .net and started to make my first steps in to being a lot more public both in terms...

Generated Web Apps
23 Sept 2024 | original ↗

Following on from my post about the "disposable web" and building things just for me, I thought it might be useful to collate an evergreen list of all the things that I'm building (and their code) so that you can see some of the things they do and inspect the code that is produced (I am expecting that there are issues and if you spot any, it...

The disposable web
11 Sept 2024 | original ↗

I have vivid memories as a child of my dad buying an Amiga 500 and letting me have exclusive access to the C64. I'd plugin in cassettes and 5 1/4 inch disks and play California games. One day I was in the local newsagent and I saw a comic about computers. On the front of the comic it had two little horned devil things called Rom and Ram. I have...

I spent an evening on a fictitious web
28 Aug 2024 | original ↗

I saw https://websim.ai a couple of weeks ago but didn't quite get it, and then during some research on the creator and web developer ecosystems I came back to it and my mind was blown. I spent the evening exploring a web that is full of applications and sites and only limited by URLs that I could think of (heh - this web never has a 404 or an...

Idly musing about Manifest
21 Aug 2024 | original ↗

I sometimes go for a spelunk in to HTTP Archive looking at values here and there. I thought I would look at default manifest.json values. SELECT COUNT(*) FROM `httparchive.response_bodies.2024_08_01_desktop` WHERE url LIKE '%manifest.json' AND response_body LIKE '%"short_name": "React App"%' There are 551037 urls that end 'manifest.json' and...

Reactive Agents
21 Aug 2024 | original ↗

I've been pretty enamoured by Preact's Signals API and how it makes it easy to build applications that respond to state and environment changes, so following on from the reactive-prompt API that I built the other month, I've been exploring a higher-level Agents API that follows the same principles: Agents that can react to their environment using...

Reactive Prompts
7 Jun 2024 | original ↗

I've been doing a lot of work on Breadboard. Breadboard is great because it changes the way you think about data flow through an LLM application by focusing on thinking about graphs. One of the things it does well is reacting to inputs updating and chaining of prompts. I wanted to see if I can make a simple imperative way to react to changing...

transformerjs-breadboard-kit
23 Feb 2024 | original ↗

A lot of the tools that I build that interact with LLMs are built with Breadboard. I needed to be able to run a number of tasks on the device that I have the board without using an LLM in the cloud. TransformerJS is a great API for JS developers to work with a number of different models that are hosted on HuggingFace. To get this working with...

The Critic
20 Feb 2024 | original ↗

I'm broadly interested in Large Language Models and how they can help Developer Relations (my role). I spend a lot of time reading proposals for new APIs and initiatives and then providing feedback to the authors to help them make sure that they work well for the ecosystem. A lot of the feedback follows a pattern of "Have you thought about X?"...

tldr-site.vercel.app
20 Feb 2024 | original ↗

As part of my role in Developer Relations for Chrome I need to get a quick understanding of what's happening around web development broadly, and also for specific areas of interest for the team. In August 2023 I built this "tldr-site" as an experiment to see if I can get useful information out of the summaries provided by search and news feeds,...

Some clean-up
20 Feb 2024 | original ↗

There's not that many people who read this blog - but for those of you who do, I'm making some minor changes. Removed the journal - I stopped personal journalling in the middle of the year (I still do it for work) - I don't think there was a huge amount of value in the bulleted lists for everyone else, so I've removed it from the blog. Added...

Claude Breadboard Kit
20 Feb 2024 | original ↗

The Claude Breadboard Kit is a simple plugin that enables you to build Breadboards that interface directly with Claude. It offers just one node: generateCompletion. You can integrate it into your breadboard runtime by adding it as a kit using addRuntimeKit(Claude) and then reference the generateCompletion node.

tldr.rocks
20 Feb 2024 | original ↗

tldr.rocks [code] is a simple service that I created to summarize the Hacker News posts and the sentiment of the comments. I built this tool because as part of a DevRel team it's important to understand how the people that we work with (developers) feel about our work and the platform as a whole. It can take a lot of time to go through each of...

Chat GPT Code Interpreter and Browser Compat Data
11 Jul 2023 | original ↗

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,...

IndexedDB as a Vector Database
7 May 2023 | original ↗

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...

Bookmarklet: Eyedropper
2 May 2023 | original ↗

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...

Querying browser compat data with a LLM
11 Apr 2023 | original ↗

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...

Building Ask Paul
7 Apr 2023 | original ↗

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...

Talk: "Aiming for the future" at Bangor University
21 Mar 2023 | original ↗

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...

BCD - Experimental APIs
13 Feb 2023 | original ↗

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...

The local-only web
26 Jan 2023 | original ↗

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...

Support during layoffs
26 Jan 2023 | original ↗

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...

Using ML to Create a Simple Lighthouse Audit to Detect a Button
23 Jan 2023 | original ↗

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 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...

Creating a Lighthouse Gatherer to generate high-res screenshots for your Audit
16 Jan 2023 | original ↗

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.

Creating a web app with Deno, Fresh and TensorflowJS
12 Jan 2023 | original ↗

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.

Training the Button detector ML model
6 Jan 2023 | original ↗

A guide on how I trained an ML model that detects Buttons and Links in a web page.

Button and Link Scraping for ML training
31 Dec 2022 | original ↗

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

Adding ActivityPub to your static site
16 Dec 2022 | original ↗

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

Post Deploy Webhook for Vercel
13 Dec 2022 | original ↗

This custom integration was created because Vercel does not currently offer the ability to configure webhooks for project-related events such as Deploy Successful.

Thoughts on a "Web Follow" protocol
3 Dec 2022 | original ↗

Thinking about the follow action on the web.

Using ML to improve developer experience.
2 Dec 2022 | original ↗

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,...

Detecting if a URL scheme can be handled
21 Nov 2022 | original ↗

Can we detect if a url with a custom URL scheme can be handled? Why yes. Yes we can.

Twitter
4 Nov 2022 | original ↗

Sigh...

On Mastodon
4 Nov 2022 | original ↗

Some thoughts about why Mastodon

What is new on the web?
9 Sept 2022 | original ↗

When does an API become available to use on the web?

The off by default web
5 Jul 2022 | original ↗

Some musing on the model of API permissions on the web.

Goodbye HTML5Rocks
30 Jun 2022 | original ↗

Some additional thoughts on the end of HTML5 Rocks

Hiring for Chrome and Web Developer Relations
16 Mar 2022 | original ↗

We're hiring in 2022. Come and join us.

The Wordle Wide Web
7 Feb 2022 | original ↗

An affirmation of the power of the web

Missing the trajectory
4 Feb 2022 | original ↗

It turns out that I miss a lot of signals.

Top web developer pain points in 2021
15 Nov 2021 | original ↗

We survey a part of the ecosystem every quarter. Here are some of our findings.

Sorry Safari team
12 Nov 2021 | original ↗

We shared some incorrect data at Chrome Dev Summit. Here's my apology and what lead to the mistake.

Chrome 100 - Does it break user agent checking?
30 Jun 2021 | original ↗

Does the 100 in the User Agent break anything?

Browser Compat Data - developer gold
24 Jun 2021 | original ↗

MDN created Browser Compat Data and it's a goldmine. We should be using it a lot more

Building an NPM downloads dashboard with Google Sheets
13 Jun 2021 | original ↗

I'm in the lucky position that our team is very productive and we've built a lot of amazing tools on NPM that developers for the most part love to use. The manager in me likes to quickly get a picture of how the web is doing, and how the work that our team does is going, so I end up building a lot of dashboards. One area that was a frustration...

Getting Feedback in to Chrome: Web Developer Insights Community
7 Jun 2021 | original ↗

How do we get your feedback in to the Chrome Web Platform team?

↑ these items are from RSS. Visit the blog itself at https://paul.kinlan.me/ to find other articles and to appreciate the author's digital home.