Asking Cursor to Review My Blog for Performance

Last week I decided to try something interesting. I opened my blog up in Cursor and asked for a basic performance review. That seems like a no-brainer, but keep in mind, my blog’s source code clocks in at near seven thousand files (ignoring node_modules of course), so this wasn’t some small request. My blog is built with the Eleventy static site generator. It’s a mix of JavaScript and Markdown primarily, with a huge portion of the codebase being Markdown and not ‘code’ per se, but me rambling on about cats and Star Wars. There’s also Liquid templates which are parsed into HTML by a JavaScript library. But that doesn’t quite tell the whole story. In Eleventy,... more →
Posted in: JavaScript

Links For You (7/5/26)

In my last links post, I hinted that I may have some good news on the job front, and if you follow me on LinkedIn you already know that I’ve signed on to my next gig. Tomorrow morning I’ll share on here (and on LI) details about the new gig, but I am beyond excited about this new job. With that out of the way, how about some happy links for what’s going to be a really dang good week? JavaScript in the Shadows As one of the new proposals for JavaScript, the ShadowRealm API is pretty interesting. It allows for the creation of a realm, or in my mind, an environment, with JavaScript that is 100% disconnected from the main environment of your browser window. Mat Marquis gives a great... more →
Posted in: JavaScript

Building Custom Form Selection Boxes – Working on Accessibility

Whenever I find myself needing to update a previous blog post, I either correct it inline and add a small note on top, for small tweaks, or write a whole new piece for larger changes. My last blog post talked about how to use CSS to style a "block" such that it acted like a form radio button. When I worked on that demo, I was a bit worried about accessibility. I did one quick check with an online tool, and thought I was ok. I was not. When I shared my post on LinkedIn, Kevin Bonett shared this feedback with me: I would argue that, despite using correct semantic HTML, the “custom” radio buttons are inaccessible. If you’re a sighted keyboard user, how will you know... more →
Posted in: JavaScript

Building Custom Form Selection Blocks – no JS, all CSS

I apologize for what may be a slightly misleading title. The topic for this post is something I’ve had on my list of things to explore for some time now, and while I wait for the new job to start, I’ve found myself with time to kill. Let me explain what I’m talking about and hopefully it will make a bit more sense. You are, dear reader, familiar with form controls and how to build forms both big and small. One type of user interface I’ve seen from time to time is the ability to select an item where the "item" is an arbitrary block of code. What do I mean by that? Typically a choice element in a form is either a select, checkbox, or radio set. But I’ve seen... more →
Posted in: JavaScript

Use AI to not use AI (as much)

This squarely falls into the "everyone probably knows this but it didn’t click with me right away" category so please feel free to laugh at my ignorance, but it’s something I realized over the past few months, and as I just used this technique this morning, I figured I’d share it on the blog. The idea is simple – it’s trivial to ask a Gen AI tool to do something for you – and depending on the ask, may work great. But what I realized a few months back, especially in regards to having AI parse data, is that you can also use the opportunity to generate a tool (like a Python or Node script) so you don’t need to return to the AI tool again. This... more →
Posted in: JavaScript

Decoding VINs with an API

Today’s post took a bit of a pivot. I decided to work on a demo idea I had created way back in March. As I worked on it, I ran into multiple roadblocks, and while that original idea for a demo may still see the light of the day, I figured I’d at least share something that did work. What’s a VIN? A VIN is a vehicle identification number. It’s a standard that dates back to 1954 and identifies a particular car by manufacturer, make, model, year, and a heck of a lot more. A VIN is 17 characters avoiding the letters O, I, U, and Q to avoid confusion with some numbers. You can break down a VIN into various components if you want – but would still need to know various lookup... more →
Posted in: JavaScript

Parsing Arbitrary Dates in Strings with Chrono and a Web Component

Yesterday I had an idea for a possible experiment using Chrome’s built-in AI support – looking for "date" references in strings. So for example: "I will have my new job in 12 days". Could the AI model recognize "12 days" as a date and determine what the actual date is, assuming a reference date of now? I was about to start working on a simple POC when I thought… wait… is there already a JavaScript library for this? Of course there is. The aptly named Chrono library does just that. It can parse a string with one assumed date and return the date, so for example: import * as chrono from 'chrono-node'; chrono.parseDate('An appointment on Sep... more →
Posted in: JavaScript

Links For You (6/21/26)

Greetings and salutations, readers. It’s been a few weeks since I shared one of these, mostly due to the job search being somewhat exhausting, but I’ve got a backup of links so it’s time to get back in the habit. And of course, it’s Father’s Day and I want to wish all the dads out there (myself included) a very happy father’s day. This weekend I got to officiate my first wedding (for my brother-in-law and his fiance) so my plan today is to do… nothing. Enjoy your links! Mastodon and Translation with Chrome AI First up is a presentation by Thomas Steiner demonstrating Chrome built-in AI APIs doing language detection and translation for Mastodon. I’m... more →
Posted in: JavaScript
1 2 3 4 114