Link: AI Focus I've launched a new blog. It's called AI Focus, and it's dedicated to exploring the intersection of artificial intelligence and web development. My goals of the blog is to cover a range of topics that I think are going to affect the web and web development in the coming years. Why? I think that the nature of the web has changed and it will change even more in the coming years.| Modern Web Development with Chrome
Link: Diving into the Data on Feature Availability and Adoption [BlinkOn 20] - YouTube This is a great talk from Annie Sullivan at BlinkOn 20 about the availability and adoption of web features. Annie discusses the importance of understanding how features are used in the wild, and how this can inform the development of new features. I took a few notes on the talk, which I thought were interesting and linked to them below:| Modern Web Development with Chrome
Link: From PyTorch to Browser: Creating a Web-Friendly AI Model I loved this post from Andre about running sentiment analysis in the browser using a model that he'd trained on embeddings generated from a YouTube comments data was great and shows that you don't have to run everything through the full language model and instead can use just the embedding APIs to get a decent result. The client side part of the code can be seen below:| Modern Web Development with Chrome
Link: How to Write Blog Posts that Developers Read · Refactoring English I think this post would be good for every developer to read. It's more about communication than just blogging. The biggest mistake software bloggers make is meandering. Often, the author has some valuable insight to share, but they squander their first seven paragraphs on the history of functional programming and a trip they took to Bell Labs in 1973.| Modern Web Development with Chrome
Link: Rainbow Shadow Button · 19 March 2025 background: linear-gradient(to right in oklch longer hue, oklch(95% var(--vibrance) 0) 0 100%); I know CSS pretty well, but I'm mind blown by what Adam produces. It's like when I draw, I know what I want, but translating it from the image in my brain into something that looks good on paper is a whole other story.| Modern Web Development with Chrome
Link: Real-world uses of TypeScript’s utility types - Piccalilli I have a bit of love-hate relationship with TypeScript, but there are parts of the typescript Type system that I really like. This article from Piccalilli is a great introduction to TypeScript's utility types (which is one of the areas I like, even though it is a bit complex) Utility types are types that modify other types. You can think of them as functions, but they operate on types instead of values.| Modern Web Development with Chrome
Link: Adactio: Journal—Command and control I’ve been banging on for a while now about how much I’d like a declarative option for the Web Share API. I was thinking that the type attribute on the button element would be a good candidate for this (there’s prior art in the way we extended the type attribute on the input element for HTML5). I'm fully aligned with Jeremey on this one, there's a heap of commands and actions that a user invokes in the browser that should be more accessible fr...| Modern Web Development with Chrome
Link: Browser adaptation Something that I've been thinking about a lot recently is that the medium that is the web. It enables a lot of things that only the web can so this post by Brad Woods really resonated with me and it talks about how the web can be used to adapt stories to different mediums. Different mediums convey information in unique ways and creators interpret the same story through unique perspectives.| Modern Web Development with Chrome
Link: Planet Igalia When I was preparing the Interop post yesterday, I found one of the agalia links didn't work and while I was hunting for the new link, I found Planet Igalia. :mind-blown: I've always wondered what's happening at Igalia and while I love the podcast, I do love a good Blog.... I'm really not sure how I missed this entire part of the site, but it's go so much good information and often frequent deep dives in to browsers.| Modern Web Development with Chrome
Link: ESLint now officially supports linting of CSS - ESLint - Pluggable JavaScript Linter We feel that validation and enforcing baseline features are the minimum that a linter needs to support in 2025, and so we spent a lot of time making the no-invalid-at-rules, no-invalid-properties, and require-baseline rules as comprehensive as possible. Love it!! Absolutely love it. One of the areas that we would love to see more of (and we hope to work) is more integration of Baseline in to developer w...| Modern Web Development with Chrome
Link: How Google Chrome’s autofill feature helps both shoppers and merchants One of Shopify’s key metrics is Checkout Conversion Rate (CCR), which measures the rate of successful checkouts completed over a period of time. Through testing, Shopify found that removing unnecessary steps led to more customers completing their checkouts. Guest checkouts using autofill had a 45% higher CCR than guest checkouts without autofill. Basically, the customers who didn’t have to spend time filling ou...| Modern Web Development with Chrome
Link: Interop 2025: another year of web platform improvements It's exciting to see the web platform continue to evolve and improve. Interop along with Baseline are aimed to solve some of the top challenges that developers have when building for the web. Ultimately we only make progress as a platform when the major user-agents make shared and consistent progress on the platform and this has been a huge effort from the teams at Google, Microsoft, Mozilla, and Apple, not to mention Igalia and Bo...| Modern Web Development with Chrome
Link: WikiTok This is such an amazing site and has become a bit of a daily habit for me. It's a brilliantly simple idea that means I'm browsing more of Wikipedia than I ever have before. I built a similar demo a while ago using the now-defunct Portals API because I want to explore what a Web Browser could be if it had a UI like TikTok. My hypothesis was that while links are amazing, what is behind them is hidden, and worse (imo) it's behind a banner image that is often not representative of t...| Modern Web Development with Chrome
It may come as no surprise to the people who get emails from me, but I failed GCSE English. I loved reading, but I struggled to articulate my thoughts clearly and I struggled with basic grammar. It wasn't until I was 20 that I could explain a verb and a noun.... A good friend read my final year dissertation about Fraud Detection and his main comment was: "Did you learn how to use a semi-colon?| Modern Web Development with Chrome
Link: Why I use Cline for AI Engineering - by Addy Osmani In this post Addy describes his use of Cline (Jan 30). It was the first time I'd heard of it. I was kinda surprised because I've been on top of tooling for a while now. For the longest time I'd been using Replit, it had a nice flow to it. I could ask it to help me solve a problem and it would just apply the code to the project.| paul.kinlan.me
I've been noodling on how we might lower the cost to create prototypes of sites for people who aren't technical. When I speak to a lot of people about websites, they kinda know what they want and can describe it, but it's a lot of work for them to get a functional skeleton of a site working, so ultimately they don't build that site or they just go and post something on facebook instead.| Modern Web Development with Chrome
This great post by Dion "English will become the most popular development language in 6 years" is worth a mull imho. There's obviously a lot of push back on LLM's be it what they were trained on and how much energy they use. However the technology is here, and Dion poses a great question: Will natural language become the way people control their computers? Two things resonated with me: The reason that we see so many applications pop up with a chat side bar is a signal that we are building bri...| Modern Web Development with Chrome
I fondly remember the early days of the web. I remember my first time on the Web in an Internet cafe with my friend Bob, patiently waiting for the only thing we knew to load (cnn.com). It was a time intertwined with a lot of other personal discoveries: ICQ, uh-oh and a/s/l; software modems that didn't work with my Cyrix P150+, Quake @ 2fps on the same computer; and a thing called email via hotmail.| Modern Web Development with Chrome
Link: https://webkit.org/blog/16413/the-success-of-interop-2024 I saw The success of Interop 2024! in Stefan Judis's Web Weekly Newsletter. Jen Simmons at Apple on WebKit pulled together this great post about the progress that has been made in 2024. In 2024, there were 17 such focus areas: Accessibility, CSS Nesting, Custom Properties, Declarative Shadow DOM, font-size-adjust, HTTPS URLs for WebSocket, IndexedDB, Layout, Pointer and Mouse Events, popover, Relative Color Syntax, requestVideoFr...| Modern Web Development with Chrome
Link: My approach to running a link blog I really like Simon's approach to running a link blog and his principles really resonate with me I always include the names of the people who created the content I am linking to, if I can figure that out. Credit is really important, and it’s also useful for myself because I can later search for someone’s name and find other interesting things they have created that I linked to in the past.| paul.kinlan.me
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 https://replit.com/'s that can scaffold out full working experience that have user account registration and deploy in minutes.| Modern Web Development with Chrome
Paul is a Developer Advocate for Chrome and the Open Web at Google and loves to help make web development easier.| paul.kinlan.me
Paul is a Developer Advocate for Chrome and the Open Web at Google and loves to help make web development easier.| paul.kinlan.me
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 of documenting what I do and helping other folks.| Modern Web Development with Chrome
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 would be good to highlight them)| Modern Web Development with Chrome
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 visceral memories of the smell of that comic, the paper, the cigarette smoke (the newsagent owners puffed like chimneys and would spend most of their ...| Modern Web Development with Chrome
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 unregistered domain).| Modern Web Development with Chrome
Paul is a Developer Advocate for Chrome and the Open Web at Google and loves to help make web development easier.| paul.kinlan.me
During the lockdown me and my partner got into crosswords and codewords, and with my partners first language not being English, and me mostly failing English in school I built this little web app to help us find potential solutions for crosswords. I built this simple app because 1) I didn't want to install an app, and 2) a lot of the sites on the Web are laden with junk adverts or complex syntax.| Projects on Modern Web Development with Chrome
I'm rather proud of the team - Jake, Surma, Mariko, Jason, Ewa and Mustafa - who created the squoosh.app project for Chrome Dev Summit. It's been great to see some of the press around it, and it's a testament to the team about how fluid and smooth the entire interface is - a lot of work went in to the interaction design and maintaining 60FPS everywhere (not to mention the codecs that they brought to the web).| Projects on Modern Web Development with Chrome
The worlds best jake.| Projects on Modern Web Development with Chrome
I believe that the Headless Web is the future. Being able to offer users experiences that are delivered via the web, but without actually ever seeing a traditional browser. There are a couple of manifestations of the headless web: Notification based experiences, such as those that delivered the news of Brexit; Deep media integration allowing you to control videos and audio through controls that extend on to connected devices such as watches and Media surfaces in the host operating sysetem; or...| Projects on Modern Web Development with Chrome
I love how TweetDeck presents and lets you organize multiple columns of feeds of data so that you can massively increase your information density. I also love RSS feeds and want to help increase their usage as much as possible. I created TopicDeck to help me organise and aggregate RSS feeds into an TweetDeck inspired layout. TopicDeck today is a npm module on GitHub that you can use to quickly host.| Projects on Modern Web Development with Chrome
More details can be found on my main blog. The concept is pretty simple, as developers move towards a web where they generate entire UI's and dynamically render content with JavaScript, the awesome cUrl tool won't be able to return the data users expect. I wanted the power of the command-line tool cUrl but with the ability to execute JavaScript on the page. domcurl https://paul.kinlan.me/| Projects on Modern Web Development with Chrome
One of the projects that I am most proud of is that with Robert Nyman we've managed to create and build up a program called 'Web GDE' or 'Web Google Developer Experts'. The GDE program is a collection of some of the worlds leading web developers who are out in the community building software and supporting the wider community to improve the quality of web experiences. We meet regularly, but I've found it hard to keep on top of all the great content that our GDE's create, so I wanted to solve ...| Projects on Modern Web Development with Chrome
I made the <air-horner> custom element to learn more about the web component ecosystem and how to deploy them at scale. I don't expect this to be used by anyone, but it helped me set a direction for my team in how we try and support and plan for a web component future. I learn't a couple of significant things: We don't know how to deploy these at scale yet. With HTML Imports going away, at the time of writing we don't have a good way of including templates that are anything but strings in Jav...| Projects on Modern Web Development with Chrome
Around 2014-15, I wanted to show that the web was an amazingly capable platform that was able to host experiences that were comparable to those of native platforms. An app that was touted as being impossible to do on the web was a QR code reader because it needed access to a camera and it needed to do it performantly and the only experiences on the web at the time were site that took the image via an <input type=file> element and uploaded it on the server.| Projects on Modern Web Development with Chrome
Airhorner was the first canonical 'Progressive Web App'. Whilst it is a toy, it served to show how you can build a simple Service Worker to make your experience work offline. Because of it's simple nature it was used by the Chrome team and many publications as a reference for the core components of PWA: Offline and installability. For example, it was the first application to use 'splash_screen' and was used to find issues with the way we generate icons.| Projects on Modern Web Development with Chrome
Web Fundamentals is one of the more visible projects that I have worked on. The premise was simple, in a world that is 'Going Mobile' there was no resource on the web that concerntrated on best practices of the migration from a desktop focused web to a multi-device focused web. In 2014, Google noticed that search was moving quickly to mobile, yet the web wasn't particularly mobile friendly. Google found that users who landed on corretly formatted sites that were optimized for the device, and ...| Projects on Modern Web Development with Chrome
HTML5Rocks was an incredibly fun project. Started in 2010 this project was designed to show and inspire developers with what is the web platform is capabable of. We created a lot of articles and samples that really pushed what users and developers thought the platform could do. We showed how to make simple offline experiences, how to use web rtc, how to implement drag and drop etc. It was a great project.| Projects on Modern Web Development with Chrome
Malte Ubl: 'Did you mean to do that?' Me: 'Yes, of course.' Malte: 'You meant to leak screenshots of Holo Android UI' Me: '........... Shit. No of course not.' Me: 10 hours of panicing and working with the PR team. I'm not sure Malte remembers this, but I do because it's the genesis of LeviRoutes as a project. Well not really, I had made it for a project at Google IO in 2011 with Mike Mahemoff, however just after that I attempted to post some photos of myself with a pack Levi Roots Reggae Reg...| Projects on Modern Web Development with Chrome
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?" (in many cases people have, but it's just not mentioned clearly in the text)| Modern Web Development with Chrome
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, with the goal of giving me a high-level overview so that I can then go and deep dive into the actual results.| Modern Web Development with Chrome
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 projects to the RSS feed.| Modern Web Development with Chrome
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.| Modern Web Development with Chrome
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 the comments to understand what the issues are, so I built this tool to help me find the most important comments.| Modern Web Development with Chrome
I'm so excited by the renewed interest in web development sparked by Wordle! It's a simple, fun game that highlights the power of the web. It's accessible, fast, user-friendly, and has inspired countless developers to create their own versions and variations. This post celebrates Wordle's impact, lists various Wordle-inspired projects (including different language versions, framework implementations, and even tools), and encourages readers to share their own discoveries.| Modern Web Development with Chrome
Paul is a Developer Advocate for Chrome and the Open Web at Google and loves to help make web development easier.| paul.kinlan.me
Custom URL schemes can enhance web app functionality by handling specific URLs, but detecting scheme support is tricky. Several methods exist, including click handlers, navigation handlers (Blink), and server-side redirects with meta refresh. While the server-side approach offers the most robust solution, it introduces complexity. A key challenge is the limited user understanding of custom schemes, leading to a preference for standard HTTPS URLs. This post explores a common pattern for custom...| Modern Web Development with Chrome
Paul is a Developer Advocate for Chrome and the Open Web at Google and loves to help make web development easier.| paul.kinlan.me
Paul is a Developer Advocate for Chrome and the Open Web at Google and loves to help make web development easier.| paul.kinlan.me
Paul is a Developer Advocate for Chrome and the Open Web at Google and loves to help make web development easier.| paul.kinlan.me
Paul is a Developer Advocate for Chrome and the Open Web at Google and loves to help make web development easier.| paul.kinlan.me
Paul is a Developer Advocate for Chrome and the Open Web at Google and loves to help make web development easier.| paul.kinlan.me
Paul is a Developer Advocate for Chrome and the Open Web at Google and loves to help make web development easier.| paul.kinlan.me
Paul is a Developer Advocate for Chrome and the Open Web at Google and loves to help make web development easier.| paul.kinlan.me
Paul is a Developer Advocate for Chrome and the Open Web at Google and loves to help make web development easier.| paul.kinlan.me
Paul is a Developer Advocate for Chrome and the Open Web at Google and loves to help make web development easier.| paul.kinlan.me
I built a web app using Deno, Fresh, and TensorFlowJS to classify images as links or buttons. The app uses a pre-trained ML model and allows users to drag and drop multiple images for classification. I encountered challenges with server-side rendering and islands, specifically with integrating a file-drop web component. I also documented the process of integrating the TensorFlowJS model, including model loading and prediction handling. The code is available on GitHub.| Modern Web Development with Chrome
In this project, I'm working on an accessibility tool to detect links styled as buttons, a common issue that can confuse users. My approach involves scraping websites to gather images of buttons and links, and then training a machine learning model to distinguish between them. This post focuses on the scraping process using Puppeteer. I encountered challenges like occluded elements and smooth scrolling, which I addressed by checking for occlusion and disabling smooth scrolling. The next step ...| paul.kinlan.me
I've created a tool called "Now Stable" using Browser Compat Data (BCD) to help developers determine when web APIs become stable across different browsers. This addresses the challenge of keeping up with browser updates and helps developers confidently choose APIs for their projects. The tool allows users to select their target browsers (e.g., Chrome, Safari, Firefox) and see a chronological list of when APIs became available across those browsers. I'm looking for feedback on how this tool ca...| Modern Web Development with Chrome
I added ActivityPub support to my static Hugo blog hosted on Vercel. It now automatically announces new posts to followers on the Fediverse. Key challenges included implementing the ActivityPub protocol for a static site, handling WebFinger discovery, managing Follow/Unfollow requests, and sending signed HTTP requests. I used Vercel Serverless Functions for dynamic request handling and Firebase Firestore for storing follower data. Check out the code and follow me @paul@paul.kinlan.me to see i...| Modern Web Development with Chrome