I threw thousands of files at Astro and you won’t believe what happened next… / / No Comments Ok, forgive me for the incredibly over the top title there. Yes, it’s clickbait, but I’m also tired after a very long week and feeling a little crazy, so just go with me here a bit, I promise it will be worth it. I was curious how well Astro could handle a large amount of data and I thought – what happens if I threw this blog (well, the Markdown files) at it and tried to render out a site? Here’s what I did wrong and what eventually worked (better than I expected). Round One I began by creating a soft link locally from my blog’s repo of posts to the src/pages/posts of a new Astro site. My blog currently has 6742 posts (all high quality I assure you). Each one looks... more → Posted in: JavaScript Tagged with: Astro, believe, files, happened, Next, thousands, threw, Won't
Links For You (2/8/26) / / No Comments Happy Superb Owl Day! As my team didn’t even get close to the playoffs, I’ll be rooting for the Seahawks, but even more so, hoping for a fun game. Tomorrow I head out to Vegas for my first offsite with Webflow, and the first in-person company event I’ve been too since Auth0 nearly a decade ago. I’m looking forward to meeting my teammates in person and meeting new people. Now – to the links! Adding Touch to PowerShell A few months back, I traded in my Windows laptop (it was having horrible hardware issues) and moved back to Mac. I’ve gone back and forth over the years, and even when I was on Windows for my personal machine, my work laptop was usually a Mac,... more → Posted in: JavaScript Tagged with: 2/8/26, links
Creating Reddit Summaries with URL Context and Gemini / / No Comments A while ago, the Gemini API added a feature to help work with URL content, URL Context. Previously you had to fetch and download the HTML of the page and pass it to the API. This feature allows Gemini to request content (with limits) from public web pages. I thought it would be interesting to test this against Reddit. In the past I’ve made use of Reddit’s APIs, but as they’ve pretty much destroyed access to those APIs, I thought this could be a good work around. Here’s a simple demo I built. My demo parses the Astro subreddit, specifically the new feed, and asks for a summary of items that seem to require a developer’s help, as well as items that may be critical... more → Posted in: JavaScript Tagged with: Context, creating, Gemini, Reddit, Summaries
Building a Bluesky Sentiment Dashboard with Alpine and Chrome AI / / No Comments Good morning, programs! Today I’m sharing yet another example of Chrome’s on-device AI features, this time to demonstrate a "Bluesky Sentiment Dashboard". In other words, a tool that lets you enter terms and then get a report on the average sentiment for posts using that word. I actually did this before (and yes, I forgot until about a minute ago) last year using Transformers.js: Building a Bluesky AI Sentiment Analysis Dashboard. I also built this for Twitter, before it went down the toilet, killed off API access, etc. etc., but I can’t seem to find it in my archives so maybe I’m hallucinating. That being said, earlier this week I thought I’d try building... more → Posted in: JavaScript Tagged with: Alpine, Bluesky, building, Chrome, dashboard, Sentiment
Building an RSS Aggregator with Astro / / No Comments This weekend I had some fun building a little Astro site for RSS aggregation. It works by the individual user defining a set of feeds they care about and works with a server-side Astro route to handle getting and parsing the feeds. Here’s a quick example. On hitting the site, it notices you haven’t defined any feeds and prompts you to do so: Clicking "Manage Feeds" opens up a dialog (my first time using one with native web platform tech!) where you can add and delete RSS feeds: After you have some specified, the app then calls server-side to fetch and parse the feeds. Items are mixed together and returned sorted by date: Not too shabby looking, either. That’s... more → Posted in: JavaScript Tagged with: Aggregator, Astro, building
Links For You (1/25/26) / / No Comments I write this in the midst of a huge ice event – which thankfully isn’t so bad here in south Louisiana. We’re very cold and rainy, but no real ice yet, which is good. The worst is coming in later tonight and the schools have already shut down, but thankfully I work at home so there’s no need to get on the roads. Today is also the 26th birthday of my eldest child, which makes the age ranges of my little army (8 kids total) go from 10 to 26. Wow. Temporal is Coming… Ok, most likely you’ve seen this across your feeds already, I swear I saw it at least ten times, but "Date is out, Temporal is in" is a great introduction to the new date hotness in JavaScript,... more → Posted in: JavaScript Tagged with: 1/25/26, links
Interrogate Your PDFs with Chrome AI / / No Comments Yesterday I blogged about using PDF.js and Chrome’s on-device AI to create summaries of PDF documents, all within the browser, for free. In that post I mentioned it would be possible to build a Q and A system so users could ask questions about the document, and like a dog with a bone, I couldn’t let it go. Last I built not one, but two demos of this. Check it out. Version One Before I begin, note that this version makes use of the Prompt API, which is still behind a flag in Chrome. For this demo to work for you, you would need the latest Chrome and the right flags enabled. The Prompt API is available in extensions without the flag and it wouldn’t surprise me if this requirement... more → Posted in: JavaScript Tagged with: Chrome, Interrogate, PDFs
Summarizing PDFs with On-Device AI / / No Comments You can take the man out of the PDFs, but you can’t take the PDFs out of the man. Ok, I’m not sure that exactly makes sense, but with a couple years in me of working with PDFs, I find myself using them quite often with my AI demos. For today, I’m going to demonstrate something that’s been on my mind in a while – doing summarizing of PDFs completely in the browser, with Chrome’s on-device AI. Unlike the Prompt API, summarization has been released since Chrome 138, so most likely those of you on Chrome can run these demos without problem. (You can see more about the AI API statuses if you’re curious.) Getting PDF Text – Client-Side There’s plenty... more → Posted in: JavaScript Tagged with: OnDevice, PDFs, Summarizing