December 28, 20243 min read

AI isn't for lazy people

#ai

Why do I say that?

Well, as I wrote here, I've built this website almost exclusively with AI. And it was amazing! I got so much done so quickly, that I've launched this site in just 5 hours1. I was moving so fast! I was adding features left and right! I... was the king of code! 🦍

So... What's the problem?

Well, the king of code wants to write code! Wants to add new features! Wants to see things changing! Wants to have fun!

Reviewing code that AI wrote? That's on the ape's blacklist! That's no fun! That's no feature added! That's no shiny!

AI isn't perfect, we know this. And even if it was perfect, our prompting probably won't ever be. So, needless to say, this codebase started to have a few quirks, to put it mildly. Pretty fast, actually. So I added a task to my todo list to deal with this later, when the "hon-AI-moon" of adding features was over.

Bro, what did u do?

TL;DR don't let AI off the leash2.

I'm just going to say this: I had 3 different functions for fetching the list of blog posts, defined throughout the app. They were returning objects with a slightly different structure, but they were nevertheless doing the exact same thing.

Also, all colors were referenced via their hex code. Who doesn't love 5 different shades of purple, am I right?

Things like that.

Let's do some engineering

I dutifully went through the code and cleaned it up. And since I'm lazy and don't want to have to clean the code again, I've decided on the following guardrails:

I know, it's not exactly rocket science. However, it's the first time when I've ever felt the need to have such mechanisms in place for a personal project. It's just a little blog, after all. I didn't think I'd need to be this professional about it.

It's just me who's working on it, after all.

...

Only that's not so true in this day and age, is it? After all, Claude-the-intern is doing most of the work here. I'm just the product manager, in a sense. We're a team. And we all know that when you work in a team, you need to be more mindful about engineering practices.

Otherwise, Claude might go and change your bio from Software Engineer to Software Engineer at Cursor when asked to do a CSS change, just because it felt like doing it.

  1. 5 hours to launch a basic version of this site. For the current version it's about 18 hours, as reported by the same script I used for estimating the time worked, for that blogpost.

  2. ... for now?