Maybe the Worst Thing I've Created
devdotdev.dev is a blog that runs itself. Every three days, it generates a piece of code, reviews it like a senior developer hypothetically would, and publishes the result. No human involvement after the initial setup. The whole thing is powered by WordPress, Pressable, and a single mu-plugin.
The concept is simple. AI writes code. AI reviews that code. The review gets published. What you end up with is the AI calling out its own worst habits. Hallucinated APIs that don't exist. Unnecessary abstractions. Comments that restate the obvious. Error handling for things that can't go wrong. If you've ever reviewed a pull request from an AI tool, these patterns will probably feel familiar!
How it started
The engine is a WordPress mu-plugin, about 250 lines of PHP. It runs on wp-cron every three days and does the following. Picks a task. It selects a task (FizzBuzz, palindrome checker, deploy-on-Friday risk calculator) or asks the AI to invent one. Language rotates between Python, JavaScript, TypeScript, Go, and Rust. Generates the code. The prompt tells the AI to write 20-60 lines in a way that lets its natural instincts run. Over-abstract. Add unnecessary type safety. Use design patterns where a function would do. The simpler the task, the more likely the AI overengineers it. Reviews the code. A second prompt asks the AI to review that code as a tired, experienced senior developer. Be specific. Reference line numbers. Call out what's wrong. Publishes. The plugin formats the response into WordPress block editor HTML (with Prism.js syntax highlighting and line numbers), assigns a category and language tag, and publishes via .
The AI returns structured JSON, so the plugin can reliably parse the title, intro, code, language, and review observations into separate blocks. If parsing fails, it logs the error and skips the post.
How it's going
I wasn't sure if the reviews would be any good. They're more specific than I expected. In one post, the AI flags itself for importing from a package that doesn't exist in any real registry. In another, it catches an exception import that doesn't exist at that path.
The reviews aren't perfect. Sometimes the line numbers are off. Sometimes the humor is flat. But the patterns it surfaces are real, and they're the same patterns that show up when AI tools generate code in production contexts. Overengineering, confident wrongness, comments that add no information. Seeing them catalogued post after post is a useful (if slightly unsettling) mirror.
The code
The mu-plugin is straightforward. A task picker with a recent-task tracker to avoid repeats. A prompt builder that handles both list-based and AI-invented tasks. A function that calls the Claude API, parses the JSON response, formats block HTML, and publishes. An admin page under Tools with a "Generate Now" button and a display of upcoming scheduled runs and recent tasks.
See it in action at devdotdev.dev
Discussion in the ATmosphere