RSSAmplifier

Blog

keith.is

Keith Kurson's personal blog

keith.isRSS feed ↗45 posts

Latest posts

Claude is not a compiler, and neither am I

The way I actually write code now, and the piece that finally described it back to me.

Making my blog feel like other people are here

I wired my homepage up with playhtml so dragging a sticker, waving the hand, or starting a song all happen for everyone who's on the page at the same time. Notes on what I built and why I keep chasing this "we're all here together" feeling.

How did we end up here?

The Graham Platner campaign didn't collapse out of nowhere. It collapsed on schedule.

The screenshot loop

A small workflow that turned UI work with Claude from a slog into something that actually converges. Take a screenshot, compare to the brief, fix the biggest gap, repeat, and let the agent run the loop.

Pulling Leaflet posts into Astro as a content source

A custom content-layer loader that fetches Leaflet documents from the ATProto PDS and renders them as first-class blog posts

Peaches

A ginger cat showed up shivering against my fence. I named him Peaches like two minutes after meeting him. I knew that was dangerous. And yet.

Yahoo Scout is... actually good?

Yahoo launched an AI search tool that does something different: inline links that flow with the text like actual hyperlinks. It feels like what search would look like if it was built around AI from the start, but still cared about sending you places.

You Are The Driver (The AI Is Just Typing)

I've been using AI coding agents daily for a few months, and the thing that shifted my thinking was a simple reframe: LLMs automate typing, not thinking. The craft is still yours.

Tufte-Style Sidenotes in Astro

Adding Tufte-style margin notes to Astro without JavaScript.

Things That Shaped Me: HeadBone Zone

Before Subeta, before I knew I wanted to build communities, there was HeadBone Zone, a browser-based kids site that taught me everything about what the internet could be.

It's Shameful That Apple Has X on the App Store

Apple could change the world overnight by removing X from the App Store. They won't.

Building My 2025 Year in Review Page with Astro

How I built an interactive year-in-review page using Astro's content collections, pulling together blog posts, movies, books, music, and more into a single retrospective. Plus: polaroid selfies, goals for 2026, and lessons about actually tracking things throughout the year.

space data centers: a rite of passage in tech

every few months someone proposes putting data centers in space. it sounds futuristic, the renderings look cool, and then you run the numbers. google just did it again with project suncatcher, so let's talk about why physics keeps winning.

CSS @scope: Scoped Styles Without Shadow DOM

How to use the new @scope at-rule for targeted, proximity-aware CSS styling

Browser-Native HTML Sanitization

How to use the new HTML Sanitizer API for secure, library-free HTML injection

Building Tools for the Safety Net: My Year in Propel's AI Residency

After discovering I'm definitely not a "growth team" person and watching Glitch wind down, I'm back in civic tech where I belong, this time in an AI Residency at Propel. We're building tools to help states and SNAP beneficiaries navigate HR1's massive changes, including new penalties that charge states more money for higher error rates. During the recent shutdown, I built crawlers to get real-time…

Using the AIL (AI Influence Level) on the blog

Adding a level to pages and posts for how much they've been touched by AI.

How Democrats lost the 40-day shutdown

After 40 days (the longest government shutdown in U.S. history) eight Democratic senators broke ranks on November 9, 2025, voting with Republicans to advance a continuing resolution that provided Democrats virtually nothing they had fought for.

scraping record.club reviews w/ playwright

automating my music ratings import into my blog using browser automation

Three Months at Handshake!

After three months at Handshake, I made great friends, worked with talented early career engineers, and discovered that being on a growth team wasn't for me. I'm a thoughtful, document-everything kind of engineer, not a move-fast type, and the fit wasn't there. This post reflects on what worked, what didn't, and the lessons I'm taking forward about vetting opportunities and knowing your own work…

Pride 2025

A personal reflection on a month that tested us all, in a year that feels like it will never end

Podcast Recommendation: Mike Duncan's Revolutions Season 12

Mike Duncan's latest season of *Revolutions* takes a wild turn into science fiction with a fictional Martian revolution, and it's surprisingly compelling.

The End of Glitch (Even Though They Say It Isn't)

Glitch is shutting down, and it's a bummer. Here's what I think about it.

Letterboxd to Markdown

A small node script to create a markdown file for each movie review in a Letterboxd RSS feed

Using @property for Custom CSS Properties

How to use @property to define and type your CSS custom properties

Blog CLI tool: my secret weapon

My small typescript CLI I use to automatically scaffold blog posts

JoCo Cruise 2025

A week-long cruise with a bunch of nerds!

Using :has() for parent selectors

How to use the new :has() selector in CSS for parent element selection

CSS Grid Techniques

A growing collection of CSS grid techniques and examples

Advent of Code: Day 3

Had to break out the old friend regexr

Advent of Code 2024 Day 2

Another day of Advent of Code, this time writing safety checking for some kind of schema system

Advent of Code 2024: Day 1!

It's December, somehow, and Advent of Code has started!

Building a resume website with eleventy

i share how i built a fully customizable resume website with eleventy, complete with seo-friendly features and pdf generation.

Host a Slideshow Party

Hosting a slideshow party etc etc

Deploying this site+and many others easily

EasyPanel gives you a cPanel/Heroku (retro!) way of managing sites, but self hosted. Click to deploy a template, which is thousands of self-hosted services.

Eurovision 2024 Microsite

Trying to take the time to build more websites, even for small things. Wanted to do more with this one, but, Eurovision was a mess lol

Building with Eleventy

Re(re-re) building my personal site with Eleventy and web components

Writing a CLI tool for fun

Removing one of many excuses I usually have for starting a blog post

Souring on Arc Browser

In a world saturated with information, the ability to discern credible sources and retain control over our online experiences is more crucial than ever.

You should blog

I miss the internet where everything wasn't fed to me in an 'for you' page. I hope you'll all join me on being a little less self conscious about what I put on the internet in 2024.

new year, new site... part 24

Well, I've done it all over again. Read for the new tech stack (not react).

Adding a RSS feed to a RemixJS 1.x blog

While working on my blog, I needed to create a rss feed from my posts, and here is how I did it.

How to Information at Work

How to listen and process information at work, leading to stronger relationships and less checkins

New year, new site part 23

Creating a new site for 2023, focused on writing more and simplifying the process of getting content up. and bigger emojis.

Paving the way for Micro Transactions

Part one in a series of posts on building Subeta, an early virtual pet game I made as a teenager. Subeta was also one of the first pioneers of what is now called micro-transactions, but to me it was just getting quarters in the mail to pay for something I loved making.