you know what to do! It’s safe to say that I have certainly read AI-generated blog posts, and that it’s likely that I’ve linked to some in this newsletter.
Peter’s post made me think more about how I feel about this topic.
I don’t use an LLM to write this newsletter. However, for the last 14 years I’ve used some kind of tool to improve my writing. I started with a spell checker, which I am sure even the most LLM-opposed people would forgive. Then I moved to using Grammarly, which did not use AI at the time I used it. Finally, I now use Lex to write almost everything from email replies to this newsletter. I always ask it to critique and point out problems¹ with my writing rather than rewrite, partly because whenever I see writing produced by an LLM I don’t enjoy reading it and it doesn’t “sound like me”.
So, is it true that “I don’t use an LLM to write this newsletter”? When Lex points out a spelling mistake, I let it replace it automatically. When it suggests an improvement to my grammar, I do the same. When it shortens what I took twenty words to write into ten, I sometimes accept those, too. At what point does something become “written by an LLM”?
I also said I didn’t use it because it doesn’t “sound like me”. Would I use one if it wrote text that did? If I were able to type in the ideas I had for one of my “comment” pieces and an LLM could generate, well, for the sake of argument, the exact text that you’re reading right now². Would that be “using an LLM”? The idea is still mine, isn’t it?
This idea has parallels in AI-assisted coding, too. How different is what I just talked about from typing in a spec into Claude Code and letting it write the entire app? I am fine working alongside Claude Code in that way, letting it write but then asking for tweaks and changes. Why am I not OK with it writing this comment like that? Do I care more about words than I do about code? I think I do, and maybe that’s why the line I draw keeps getting fuzzier as I write about blog posts rather than code.
In his post, Peter freely admits to using an LLM to help him write blog posts. He works on posts anywhere between prompting an LLM to generate a post and writing every word himself. He also makes the excellent point that:
Other posts are things I learn, but given the 1000 things I do, I would likely not have cared enough to take my notes and put them online.
Is an AI-assisted blog post better than no blog post at all? Everyone will draw their line in a slightly different place, but I think most people would land somewhere in the middle rather than at the extremes. Peter sums it up nicely at the end of his post:
You can create slop with or without agents, as you can create great work with or without. Agents are just another tool.
Now that I’ve written it, I think this comment may be more about letting myself think through how I think about this when it comes to community blog posts that I link to. I hope it helped you think about the issue, too. In my opinion it’s definitely more complex than “LLM writing bad, human writing good”.
As for what I’ll link to, my position is the same as it has been for fourteen years. I link to posts I find interesting. It’s that simple. If someone manages to cross that line by using an agent to assist or write with them, I’m fine with that.
– Dave Verwer
¹ I can even share the primary prompt I use inside Lex, if you’re interested.
² No, this isn’t one of those posts where I reveal at the end that it was written by an LLM. This was “written by me” in the same way as every other comment I have ever written here, whatever that means.
Join some of the App Store’s biggest apps—from brands like Mojo and Citizen to thriving indies. Test pricing, run paywall experiments, update locked features, and use AI to localize your paywalls—all without updates. Superwall is your complete growth toolkit.
I liked Christian Tietze’s latest article on adding unidirectional flow techniques to your app without needing a third party library or deep changes to the way your app works. The example he uses is especially clear and understandable, and it’s definitely worth a read to get you interested in the subject.
I received more feedback than usual on my recent comment on Apple’s Foundation Model. So, if you want to take the next step and start writing code with it, then you’ll want to read Luca Palmese‘s latest article. You’ll be up and running in no time.
Max Roche on how Apple make their SwiftUI components customisable:
At a high level, SwiftUI components have a separation between what is required (data) and what is _optional (customization_s).
The idea to replace initialiser parameters with view modifiers isn’t particularly new, but a macro that cuts all the boilerplate code is a great idea.
It took me a little while to get around to reading Niko Kitsakis’ latest post. At around 5,000 words, it’s something you need to set aside some time for. So, I’d recommend pouring yourself a nice cup of tea or beverage of your choice, finding your comfiest chair and spending 20 minutes learning from this wonderful article. If your teapot is still warm after finishing it, I’d also recommend his previous The Basics of Legibility article.
I am a disgrace to all possible and impossible universes. 😬😂