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.
Keith Kurson's personal blog
The way I actually write code now, and the piece that finally described it back to me.
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.
The Graham Platner campaign didn't collapse out of nowhere. It collapsed on schedule.
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.
A custom content-layer loader that fetches Leaflet documents from the ATProto PDS and renders them as first-class blog posts
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 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.
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.
Adding Tufte-style margin notes to Astro without JavaScript.
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.
Apple could change the world overnight by removing X from the App Store. They won't.
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.
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.
How to use the new @scope at-rule for targeted, proximity-aware CSS styling
How to use the new HTML Sanitizer API for secure, library-free HTML injection
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…
Adding a level to pages and posts for how much they've been touched by AI.
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.
automating my music ratings import into my blog using browser automation
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…
A personal reflection on a month that tested us all, in a year that feels like it will never end
Mike Duncan's latest season of *Revolutions* takes a wild turn into science fiction with a fictional Martian revolution, and it's surprisingly compelling.
Glitch is shutting down, and it's a bummer. Here's what I think about it.
A small node script to create a markdown file for each movie review in a Letterboxd RSS feed
How to use @property to define and type your CSS custom properties
My small typescript CLI I use to automatically scaffold blog posts
A week-long cruise with a bunch of nerds!
How to use the new :has() selector in CSS for parent element selection
A growing collection of CSS grid techniques and examples
Had to break out the old friend regexr
Another day of Advent of Code, this time writing safety checking for some kind of schema system
It's December, somehow, and Advent of Code has started!
i share how i built a fully customizable resume website with eleventy, complete with seo-friendly features and pdf generation.
Hosting a slideshow party etc etc
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.
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
Re(re-re) building my personal site with Eleventy and web components
Removing one of many excuses I usually have for starting a blog post
In a world saturated with information, the ability to discern credible sources and retain control over our online experiences is more crucial than ever.
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.
Well, I've done it all over again. Read for the new tech stack (not react).
While working on my blog, I needed to create a rss feed from my posts, and here is how I did it.
How to listen and process information at work, leading to stronger relationships and less checkins
Creating a new site for 2023, focused on writing more and simplifying the process of getting content up. and bigger emojis.
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.