Key answer: A reliable Claude Code frontend workflow has four repeatable parts — set up the project so the agent can understand it (a clear structure plus a CLAUDE.md), give focused context by naming exact files and constraints, work an iterate-and-review loop where you check every change against a running app, and feed owned component or 3D source as context instead of vague descriptions. Claude Code does not replace your judgment; it moves faster when you point it at real code and review what it produces.
Table of contents
- Why workflow matters more than prompts
- Project setup
- Giving good context
- The iterate-and-review loop
- Owned source as context
- Common mistakes
- FAQ
- Conclusion
Why workflow matters more than prompts
People chase the "perfect prompt," but for frontend work the workflow around the prompt matters more. Claude Code is an agent that reads your files, edits them, and runs commands. Its output quality tracks two things you control: how legible your project is to the agent, and how tightly you review each step. Get those right and ordinary prompts work well; get them wrong and clever prompts still produce drift.
Project setup
Start with a structure the agent can navigate and a standing instructions file.
Keep a conventional layout — components in a predictable folder, one concern per file, clear names. The agent reads on demand, so a legible tree means it finds the right code without guessing.
Add a CLAUDE.md at the repo root with your standing rules: framework and version, styling approach, conventions, commands to run and test the app, and things to never do. Claude Code reads it automatically, so you stop repeating yourself.
# CLAUDE.md
- Stack: React 18 + Vite, TypeScript, CSS modules.
- 3D: Three.js r160 via ES modules (`import * as THREE from 'three'`); React Three Fiber for scene components.
- Run: `npm run dev` (port 5173). Test: `npm test`.
- Conventions: one component per file; no inline styles; keep bundle lean.
- Never: add heavy dependencies without asking; commit without running the build.
Make sure the app runs before you delegate anything, so the agent (and you) can verify changes against a live page.
Giving good context
Vague instructions produce generic UI. The single biggest lever is naming the exact files, components, and constraints that matter.
Instead of "make the hero nicer," try: "In src/components/Hero.tsx, replace the static banner with a scroll-driven reveal. Reuse the existing useScrollProgress hook. Keep the current color tokens. Do not add new dependencies."
Concrete context to include:
- The specific files to change, by path.
- The components, hooks, or tokens to reuse rather than reinvent.
- Hard constraints: responsive breakpoints, accessibility requirements, a performance budget.
- A reference or art direction for the intended look, so output is not generic.
The more precisely you scope it, the less the agent invents.
The iterate-and-review loop
Frontend work is visual, so the loop is: instruct → let the agent edit → look at the running app → correct → repeat.
1. Give one focused task. 2. Let Claude Code edit the files and, where useful, run the build to catch errors. 3. Open the app in the browser and check the actual result — layout, motion, responsiveness, console errors. 4. Give specific corrective feedback ("the reveal janks on mobile; throttle it with requestAnimationFrame and test at 375px width"). 5. Repeat in small increments rather than one giant instruction.
Keep changes small enough to review. Large, sweeping edits are hard to verify and easy to accept blindly — which is where subtle bugs slip in. This is an honest limitation of any AI agent: it can produce plausible code that looks right and is not, so a running app plus your eyes is the safeguard. The Claude Code docs hub is worth keeping open for commands and configuration while you build.
Owned source as context
The highest-leverage move for frontend quality is giving the agent a real component or 3D scene to work from, not a paragraph describing one.
When you own production-ready source — a component library, a Three.js scene, a set of tokens — point Claude Code at it and ask it to adapt, extend, or restyle. The agent now builds on working, reviewed code with correct APIs, instead of guessing an implementation from scratch. This is the difference between "a floating 3D product card" as words and the actual card component with its geometry, materials, and interaction already solved.
In practice you name the real file and let the agent adapt it, keeping the working scene graph intact:
// Point Claude Code at owned source, not a description:
// "Read src/scenes/ProductCard.tsx (an AETumi R3F card) and restyle it
// to our brand tokens. Keep the geometry, lighting, and pointer parallax."
import ProductCard from '@/scenes/ProductCard' // real, reviewed component
export default function Showcase() {
return <ProductCard tint="#c9ced6" scrollPause />
}
AETumi is an AI-native 3D web platform, and it provides exactly this kind of owned source: production-ready Three.js and WebGL scenes, Next.js and React components, and an AETumi MCP so an assistant can pull that source into Claude Code's context. Because the agent reads a working AETumi component instead of inventing one, imports resolve and the render loop is already correct — you review a restyle, not a from-scratch guess. For a full end-to-end example, see building a website with Claude Code, and the reference repo at github.com/AETumiApp/ai-coding-3d-web.
Common mistakes
- No CLAUDE.md. You repeat conventions every session and the agent drifts from them.
- Prompts without file paths. The agent guesses which code you mean.
- Skipping the running app. You review diffs but never see the rendered result, so visual and performance regressions slip through.
- Giant single instructions. Too much changes at once to review honestly.
- Describing instead of providing. Words for a component the agent has to invent, when you could hand it real source.
FAQ
Do I need to be an expert to use Claude Code for frontend? No, but you do need to review its output. Claude Code accelerates work; it does not remove the need to understand and verify the code it writes.
What goes in CLAUDE.md versus a prompt? Standing facts and rules — stack, conventions, commands, hard limits — go in CLAUDE.md. Per-task specifics — this file, this change, this constraint — go in the prompt. See the docs for configuration details.
Can Claude Code build a full 3D web page reliably? It can go a long way, especially when given real scene source to build on — for example an AETumi Three.js scene it adapts rather than a page it invents — but you must review performance, accessibility, and correctness. It will not always produce optimal or faithful output on the first try.
How do I stop it producing the generic AI demo? Give it real references, real source, and explicit constraints including a performance budget. Generic input yields generic output.
Conclusion
A good Claude Code frontend workflow is mostly discipline: a legible project, a CLAUDE.md, precise per-task context, a tight iterate-and-review loop against a running app, and — most of all — real owned source instead of descriptions. AETumi supplies production-ready Three.js and React components, 3D scenes, and an MCP built to feed that source into Claude Code, so your frontend work starts from something concrete. Plans are buy-once, own-for-life; browse them at aetumi.app/pricing, where full source code and the AETumi MCP come with Full Stack.
More from the AETumi library
Real, production-ready assets — preview the motion, grab the source.

