Skip to main content
Craft / AI

How I build with AI

I work with AI tools daily, and I don't outsource thinking. This page is the receipts version of that sentence: what actually gets delegated, what gets verified by hand, and where the line sits on real, shipped work — not a demo built for a blog post.

Claude CodeCodexGemini CLICursorOllamaLangGraphMCP servers

AI accelerates. Judgment is not delegatable.

The loop is always the same: plan first — the model gets a spec, not a vibe. Scaffold fast — generation is where AI genuinely multiplies pace. Review like it's a stranger's PR — because functionally, it is. Writing code stopped being the bottleneck; deciding what code should exist, and whether this code is that code, is the job now.

Tools change. Standards don't. The verification bar — spec-checked accessibility, tested edge cases, honest metrics — is identical whether the first draft came from my hands or a model.

Receipts, not vibes

Four examples from shipped work. Each one names what the AI did, what I did, and which artifact you can inspect.

  • RAG pipeline scaffolding
    Waco3.io · production

    Claude Code scaffolded the retrieval-augmented generation pipeline; the scaffold reached a working pipeline in hours. Then the real work: output quality was validated through user testing and real proposal scenarios, and the tuning took weeks. Hours to working, weeks to right — that ratio is the honest shape of AI leverage. Case study →

  • Prompt architecture
    Waco3.io · 20+ iterations

    The tone-matching prompt architecture went through more than twenty iterations. AI made exploring alternatives fast; the evaluation stayed manual — reading generated proposals against real-world examples, because "sounds plausible" and "a freelancer would send this" are different bars. Case study →

  • Combo state machine
    @reactzero/combo · npm

    Claude Code scaffolded the combobox state machine. Every ARIA attribute was then verified by hand against the WAI-ARIA 1.2 specification. The machine runs correctly because a model drafted it; the accessibility is correct because a human read the spec. Case study →

  • Bundle strategy
    ReactZero · all four libraries

    AI assistance surfaced tree-shakeable entry points and subpath export patterns early in the architecture. But the constraint isn't held by a model's good intentions — size-limit budgets in CI enforce it on every commit. AI proposes; tooling holds the line. Case study →

Where the line sits

Delegated, gladly

  • Scaffolding: pipelines, state machines, component shells, test harnesses
  • Exploring alternatives fast — twenty prompt variants, three layout directions, parallel prototypes
  • Mechanical refactors and repetitive transformations
  • First-draft documentation that a human then makes true

Never delegated

  • Accessibility: every ARIA role, every keyboard path, verified against the spec and with real screen readers
  • Interaction edge cases and state transitions — the places users actually get hurt
  • Design fidelity and taste calls: spacing, motion, hierarchy
  • Money paths: Stripe webhooks and billing logic get human eyes, every time
  • The decision of what to build at all

I also build for AI

Using AI well and designing for it are the same literacy. Every ReactZero library ships an ai-reference.md — structured documentation written for AI coding assistants, so when someone integrates a component through Claude Code or Cursor, the model generates correct, accessible code instead of a plausible guess. And Waco3.io is an AI product whose interface work — streaming as a design material, edit-in-place trust patterns, human-in-the-loop by default — is documented in its case study.

I think about this in public

A selection from the writing section — the workflow above, argued one piece at a time.