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...
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
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...
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...
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...
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...
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 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...
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...
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...
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...
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...
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?"...
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,...
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...
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 [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...
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,...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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.
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.
A guide on how I trained an ML model that detects Buttons and Links in a web page.
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
This is a short post about I how I added ActivityPub to my Hugo static blog
This custom integration was created because Vercel does not currently offer the ability to configure webhooks for project-related events such as Deploy Successful.
Thinking about the follow action on the web.
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,...
Can we detect if a url with a custom URL scheme can be handled? Why yes. Yes we can.
When does an API become available to use on the web?
Some musing on the model of API permissions on the web.
We're hiring in 2022. Come and join us.
We survey a part of the ecosystem every quarter. Here are some of our findings.
We shared some incorrect data at Chrome Dev Summit. Here's my apology and what lead to the mistake.
Does the 100 in the User Agent break anything?
MDN created Browser Compat Data and it's a goldmine. We should be using it a lot more
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...
How do we get your feedback in to the Chrome Web Platform team?