I’ve recently been cranking on improvements to this site and a personal blog with Claude Code, and boy howdy, developing with AI is fun. I write this as a followup to my last post about building with AI. Once again, I can’t promise any brilliant tips or tricks, and once again, this will be laughable 6-12 months from now when the state of the art has changed once again.

My adventures this time concerned this very website, mttsptz.ai (now with EVEN MORE AI!), and a personal blog site, also statically generated and hosted on Cloudfront. I’ve been writing the latter for many years, and there are 800+ posts with 5700+ images.

mttsptz.ai

My main gripe with this site was the design. The posts felt cramped, and there were way too many fonts. Now, we have two fonts with clear jobs, one type-scale, and consistent spacing among text/images/headers/etc. Ahhhhhh…

My name on the left now properly highlights A and I, as the Lord intended.

Claude and I also identified and implemented a ton of performance improvements, from upgrading and trimming external libraries down to what I’m actually using to properly minifying HTML on deploy. All images also now load on first paint, which makes it feel ✨snappy✨.

Personal blog

This is a much heavier site, and since I’m using Jekyll (Ruby) to build it, the performance was starting to lag. A cold build would take 20+ seconds and an incremental build would take 9+ seconds, which isn’t a great edit-feedback loop. Claude found some optimizations, and it’s now 4x faster. Holy smokes.

The performance improvements were insane, too. Previously, I had naively encoded and thumbnailed GIF images, and some of them were unnecessarily enormous. Now, my hand-rolled asset pipeline encodes the thumbnails as WebP, which is way faster.

I did a similar treatment as with mttsptz.ai, upgrading libraries and trimming them to only what I’m using. I’m now properly lazy-loading images, and all images above the fold load on the first paint, which makes the site feel… you guessed it. ✨Snappy✨

While I was at it, I implemented a keyword search. It might have been a fun project to build an index, implement debouncing, etc, but I clearly didn’tmake the time to do that before I had Claude Code to do almost all the work.

And yeah, I recently did a half Ironman. It was my first triathlon and a lot of fun!

Reflections

I hate writing CSS, and I’m not good at it – perhaps these are correlated. But with Claude, my webapps look clean and consistent (to me, anyway), so I think I’ll never have to learn CSS properly. HOORAY!

Software development execution is essentially free. In minutes, I could prompt my way to a redesign and iterate on the real app to get to what I wanted. Performance improvements and chores I’d put off for years were suddenly well worth the (reduced) time to build. The search functionality, something I’ve been eyeing for a while, took less than an hour end-to-end. This is insane, and it totally changes the ROI calculation on product development. That crazy feature you always wanted but it’d take an engineer a few days to put together? Go for it. That prototype of a new idea? Sure!

Just because so much more software can exist doesn’t mean that it should, though. I still believe that there’s going to be SO MUCH BAD SOFTWARE™. When software development is free, why not include all the bells and whistles and bloat that comes with it? In this world where functionality can be duplicated trivially, software will be even further differentiated on taste. And those with the ability to design opinionated, simple user experiences and elegant software architecture underlying them will be in even greater demand.