datly.eu, foldly.eu and incomly.eu get built in the evening with an AI assistant, specifically Claude Code in the command line. The AI does the busywork, while the decisions and the responsibility for the result stay with me. How that split feels in practice is the actual point.
What the AI handles
The AI is most valuable exactly where a side project otherwise stalls: the busywork. A few concrete examples from my projects:
- The second language. Every page and every blog post on hirse.eu exists in German and English. Producing the English version with the same structure is a task no one enjoys doing by hand, and one an AI does reliably.
- Test scaffolding. incomly’s income-tax calculation sits behind 76 automated tests. Writing those tests is important and dull at the same time, an ideal job to delegate.
- Refactors and first drafts. For the datly redesign, moving from Bootstrap to a custom design system was a lot of mechanical rewriting. The AI does the first pass, I correct it.
The common thread: the AI is fastest at what I find boring. And boredom is exactly where evening projects otherwise die.
Where I decide
What the AI does not take over are the decisions that make the project. I choose the stack (PHP on shared hosting for datly, Next.js as a static export for foldly and incomly). That every calculation runs locally in the browser and no salary leaves the machine is an architecture decision, not a suggestion in a list. What belongs in a release and what has to wait is mine to call. And on design I say no a lot, until it feels right.
The AI proposes plenty. The value lies in discarding most of it and implementing the rest cleanly. Without that stance you quickly build something that works but belongs to no one.
What makes it work: a frame
An AI without guidance drifts. So the real work sits in the frame I give it:
- The project contains a
CLAUDE.md, a kind of brief the assistant reads first: the rule that every page is mirrored in both languages, where the truth for URLs and translations lives, and one quirk of this repo, namely that the build has to run outside the folder because of file-read throttling. - For the blog there is a
BLOG-GUIDELINES.mdand a small writing skill, so title lengths, internal links and the tone are right even from a fresh context. - And there are checks I trust more than the model’s confidence. For the datly redesign, three separate security reviews ran (access control, injection and output, configuration) before anything went live.
One detail says a lot about this collaboration: the blog rules forbid em dashes in prose. The reason is that this exact dash, together with a handful of stock phrases, is the most recognizable pattern of AI text. I let the AI write and then grind its typical sound back out, so the text reads like me and not like a machine. This post was made that way.
What I have learned
- AI removes the friction, not the decision. Between “I know what I want” and “it runs” used to sit the whole evening. That is the part that now shrinks.
- Without a written frame it drifts.
CLAUDE.md, guidelines and skills are not decoration, they are the reason the results stay consistent. - Verifying stays mandatory. I trust tests and audits, not the confident tone of an answer.
- Taste stays human. What gets left out and how something sounds is the work I do not hand over.
More on the working method behind this is in the post on how I build my side projects. All the tools are on the projects page, and if you build with AI yourself and want to share your experience, I would be glad to hear from you via the contact form.