It’s pretty easy to see that more and more of what we read online was written, at least in part, by AI. Most of the time, nobody says so.
I’d rather say so. Some of what you read here was written with help from AI.
This blog is AI-assisted, not AI-written. The ideas are mine, and so are the opinions. I review every post before it goes up, and I’m adding guardrails so that step can’t get skipped, even by accident.
So, why use it at all? Mostly, it comes down to time. In 2019, I relaunched this blog with a post called Let’s try this again, with Hugo and ended it hoping it wouldn’t be another nine years until my next post. I managed three more that year, then went quiet for six and a half. Technically, still better than nine ๐.
The reason for the gap hasn’t changed. I’m raising a family, working a full-time job, and splitting whatever’s left between hobbies, side projects, and a house that always has another project waiting. Most weekends, you’ll find us at a cold hockey rink. There just aren’t many long, quiet stretches to sit down and write.
What I do have is a lot of ideas and perspectives, plus a few problems I’ve solved that I wish someone had written up for me. Writing them out is a form of therapy for me, when I get around to it. Most of the time I don’t, because getting from “I have a thought” to “I have a post” takes more time than I have. That’s where AI helps.
The gist of it is that I bring the idea and the opinion, and AI helps me shape it into something readable, faster than I could on my own. Usually that’s some mix of:
- Talking an idea through to find out whether there’s really a post in it
- Pushing back on an argument, or pointing out the objection I haven’t answered yet
- Turning a messy pile of notes into a first draft
- Tightening a draft that’s running long (mine usually are)
This post is a good example. It started as a few paragraphs I typed to Claude: I’m busy, I have more ideas than time, and I want readers to know where AI fits. Claude turned that into a draft and pulled a couple of details from my older posts. Then I went through it, changed what didn’t sound like me, and cut anything I didn’t believe.
What AI doesn’t do is decide what I think. If a post says I believe something, I believe it. If it’s published, I’ve read it and I stand by it.
Now, the obvious pushback: if a machine helped write it, is it really yours? And why should anyone bother reading it?
That’s fair. We’re all reading more AI-generated filler than we’d like, and most of it is easy to spot because there’s nobody behind it. Nobody had an opinion, and nobody would notice if it were wrong. I don’t want to add to that pile.
My answer is that what makes a post worth reading was never the typing. It’s the idea, the experience it came from, and a person willing to put their name on it. AI isn’t raising two daughters, and it has no feelings about the tax code. I am, and I do.
A book is still the author’s even when an editor helped shape it. The difference here is that my editor also helps with the first draft, which is exactly why I’m telling you about it.
So, back to those guardrails. Most of them are still a plan. Today, this site publishes from the main branch of a GitHub repo, and my CMS commits straight to main. That’s convenient. It also means nothing technically stops a post from going live before I’ve reviewed it.
I’m changing three things:
- Every post, and every edit to a post, goes through a pull request. Nothing reaches
main(and nothing gets published) unless I merge it myself. - Before I merge, AI agents review and validate the post. They check facts and links, and flag anything that doesn’t sound like me.
- Whatever they flag comes back to me. That means another round of human review, on top of the one I already did while writing it.
It’s a step in the right direction, not a guarantee. I’ll still get things wrong sometimes, and when I do, the fix goes through a pull request too.
My intent is not to hand this blog over to AI. My intent is to finally get some of these ideas out of my head and in front of someone they might help. The words that end up here are still mine, and I’m still the one who clicks merge.
Cover photo by Lauren Mancke on Unsplash.
Update: October 6, 2026
The first guardrail didn’t stay a plan for very long. A few hours after this post went up, it was in place.
Nothing goes live now unless I merge it. The CMS is gone, and main only accepts pull requests, including mine. (I tested that by pushing straight to main. GitHub said no.)
The other two are still a plan: AI agents reviewing each post before I merge, then another round of my own review on whatever they flag. I’ll update this again when they’re real.
And yes, this update went through a pull request too.
Another update: October 7, 2026
The other two guardrails are real now, too. That was quicker than I expected.
When I open a pull request for a post, or mark a draft as ready, it now gets an AI review. A link checker tests the links (a few sites, like Instagram, turn away automated checks, so it skips those). Claude checks the facts, both on the web and against my older posts, and reads the post against the same writing style guide I use when I draft with it. For an edit to an older post, the review only looks at what changed.
Everything they find lands in one comment on the pull request, and I read it before I merge. The review doesn’t re-run every time I push a fix, so when I change something, I ask for another pass. It can’t block anything, either. I still decide what to fix, and I’m still the one who clicks merge.
To test it, I opened a pull request with two mistakes planted on purpose. I changed the 2019 relaunch in this post to 2018, and pointed the link to this site’s repo (it used to be linked above) at one that doesn’t exist. It caught both. It also pointed out that “three more that year” only works if the year is 2019. I’m not sure I would have caught that one.
The catch is that Claude is reviewing posts that Claude helped me draft. That’s a bit like grading your own homework: whatever Claude misses while drafting, it could miss again while reviewing. So I’d like to add a second reviewer from a different AI company.
And yes, this update went through a pull request too, and the agents got their turn with it.
P.S. I’ve since made this site’s GitHub repo private, so the pull requests mentioned here aren’t public anymore.
