Kindarticle
Maturitybudding
Confidencehigh
Originai-drafted
Created
Tagsagentic-coding, meta
Related
Markdown/article/building-krowdev-with-agents.md
See what AI agents see
🤖 This content is AI-generated. What does this mean?
article 🪴 budding 🤖 ai-drafted

What I Learned Building krowdev with AI Agents

Honest retrospective on building a developer knowledge base entirely with AI coding agents — what worked, what didn't, and what I'd do differently.

I built this entire site — 21 entries, 99 end-to-end tests, search, mobile nav, breadcrumbs, reader mode, a live WebTerminal island, and a custom Catppuccin theme — in about a week. I had never built a website before. My background is physics and scientific computing: Python, Fortran, Makefiles, conda environments. HTML was something I avoided.

This is what I learned.

The Numbers

MetricValue
Calendar time~7 days, zero to deployed
Content entries21 (guides, snippets, articles, showcases)
Playwright tests99, all passing
Features shippedSearch (Pagefind), breadcrumbs, mobile hamburger menu, reader mode with .md endpoints, JSON-LD, theme toggle, series sidebar, WebTerminal island
Framework experience going inNone. Zero. I knew what HTML stood for.

Those numbers are real. They’re also misleading — I’ll explain why below.

What Worked

Research-First Prompting

The single highest-value pattern was making the agent research before building. Before writing any Astro code, I had Claude analyze 11 terminal emulator source repos, read the Astro 6 docs, and compare static site generators. This is the research-first pattern and it’s the closest thing to a cheat code I’ve found.

Tip

Don’t start with “build me X.” Start with “read the codebase and propose an approach for X.” The five minutes of research prevents hours of rework.

CLAUDE.md Evolution

The project rules file started as 10 lines — stack name, file paths, “use Svelte not React.” By day three it had boundary rules, build commands, test instructions, and file pointers. By day five it included the agent-browser review workflow.

Every addition came from a mistake. The agent installed a React dependency — I added “Svelte for all interactive islands.” It modified reference material — I added “research/corpus/ is READ-ONLY.” It broke the build command — I added “don’t change the build command in package.json.”

Key Insight CLAUDE.md is not documentation you write up front. It's a growing record of constraints discovered through failure. Each rule exists because the agent got it wrong at least once.

Parallel Agent Workflows

Once the project rules were solid, I could run multiple agent sessions in parallel — one writing content, one building components, one writing tests. They all read the same CLAUDE.md and produced consistent output. This is where the speed came from. Not from any single session being fast, but from multiple sessions being independent.

Agent-Browser for Visual Review

Reviewing generated HTML in a terminal is guessing. Reviewing it in a real browser through agent-browser is verification. I caught layout bugs, missing mobile styles, and broken breadcrumbs that looked fine in the code. Set this up on day one, not day five like I did.

What Didn’t Work

Agent Drift

Despite “Svelte 5 for interactive islands (NOT React)” in CLAUDE.md, the agent suggested React components at least three times. Despite “Astro 6,” it generated Astro 4 patterns (the content collections API changed significantly between versions). The agent’s training data is a strong prior — your project rules are fighting against it.

Warning

Agents are trained on millions of React examples and far fewer Svelte ones. If your stack is less common, expect to correct more often. Explicit “NOT X” rules in CLAUDE.md help but don’t eliminate the problem.

Stale Training Data

Astro 6 changed its content collections API from Astro 4. The agent confidently generated the old API. Every. Single. Time. Until I put the correct import syntax directly in CLAUDE.md. The agent doesn’t know what it doesn’t know — and it won’t tell you it’s using outdated patterns.

Over-Engineering Risk

Left unconstrained, the agent will add error handling for impossible states, create abstractions for things used once, and “improve” code you didn’t ask about. I lost at least half a day to a session where I asked for “a simple breadcrumb component” and got a full navigation framework with recursive route resolution.

The constraint pattern exists because of this.

What Surprised Me

Infrastructure Is Fast, Content Is Slow

The entire site infrastructure — layout system, routing, search, mobile nav, theme toggle, CI/CD — took maybe two days. The content took the rest. Agents are excellent at mechanical, well-specified tasks (build a layout component that does X). They’re mediocre at writing content that sounds like a real person with real opinions.

Analogy It's like the difference between setting up a lab and running experiments. The lab setup is procedural — follow the manual, connect the equipment, run calibration. The experiments require judgment, interpretation, and knowing what's interesting. Agents are lab technicians, not principal investigators.

How Much CLAUDE.md Matters

The difference between a session with no project rules and a session with good ones is not incremental. It’s categorical. Without CLAUDE.md, the agent produces generic, tutorial-quality code. With it, the agent produces code that fits your project. Ten minutes of writing rules saves hours per session, compounding across every future session.

The Memory System

Claude’s memory files — the ones that persist across conversations — turned out to be surprisingly valuable. Not for code details, but for project context: “the user has a physics background, explain via analogies” and “the blog uses Diataxis framework for content organization.” This kind of meta-context is invisible in the codebase but dramatically affects output quality.

What I’d Do Differently

Start with content, not infrastructure. I built the layout system, search, mobile nav, and theme toggle before writing a single real article. That’s backwards. Content-first forces you to discover what the infrastructure actually needs, instead of guessing. I built three grid layout modes before I knew which ones my content would actually use.

Write CLAUDE.md from line one. Not “I’ll add rules as I go” — write the initial stack, conventions, and boundaries before the first agent session. The cost of the first few unconstrained sessions was higher than the cost of writing 20 lines of rules.

Set up agent-browser immediately. I reviewed the first dozen generated pages by reading HTML in the terminal and imagining what they looked like. That’s not review, that’s hope. Visual review caught real bugs — and it’s the only way to verify responsive layout, theme switching, and interactive components.

Be more aggressive about saying no. Agents propose scope expansion constantly. “While I’m here, I could also…” is the start of every derailed session. The answer should be “no, just do what I asked” far more often than I said it.

Tip

The best prompt for preventing scope creep: “Do exactly this. Nothing more.” Agents respect explicit boundaries better than implicit ones.

The Honest Summary

Building krowdev with AI agents was genuinely faster than building it without them would have been — probably by an order of magnitude, given my zero web development experience. But “faster” doesn’t mean “easy.” The skill isn’t prompting. The skill is reviewing, constraining, and knowing when the agent is confidently wrong.

The site works. The tests pass. The content is growing. And I understand what every piece does, because I reviewed every line the agent wrote.

That last part is the thing nobody tells you about agentic coding: you still have to understand all of it. The agent writes the code, but you own it.