Tag: Claude Code

  • The CLAUDE.md Playbook: How to Actually Guide Claude Code Across a Real Project (2026)

    The CLAUDE.md Playbook: How to Actually Guide Claude Code Across a Real Project (2026)

    Most writing about CLAUDE.md gets one thing wrong in the first paragraph, and once you notice it, you can’t unsee it. People describe it as configuration. A “project constitution.” Rules Claude has to follow.

    It isn’t any of those things, and Anthropic is explicit about it.

    CLAUDE.md content is delivered as a user message after the system prompt, not as part of the system prompt itself. Claude reads it and tries to follow it, but there’s no guarantee of strict compliance, especially for vague or conflicting instructions. — Anthropic, Claude Code memory docs

    That one sentence is the whole game. If you write a CLAUDE.md as if you’re programming a machine, you’ll get frustrated when the machine doesn’t comply. If you write it as context — the thing a thoughtful new teammate would want to read on day one — you’ll get something that works.

    This is the playbook I wish someone had handed me the first time I set one up across a real codebase. It’s grounded in Anthropic’s current documentation (linked throughout), layered with patterns I’ve used across a network of production repos, and honest about where community practice has outrun official guidance.

    If any of this ages out, the docs are the source of truth. Start there, come back here for the operator layer.


    The memory stack in 2026 (what CLAUDE.md actually is, and isn’t)

    Claude Code’s memory system has three parts. Most people know one of them, and the other two change how you use the first.

    CLAUDE.md files are markdown files you write by hand. Claude reads them at the start of every session. They contain instructions you want Claude to carry across conversations — build commands, coding standards, architectural decisions, “always do X” rules. This is the part people know.

    Auto memory is something Claude writes for itself. Introduced in Claude Code v2.1.59, it lets Claude save notes across sessions based on your corrections — build commands it discovered, debugging insights, preferences you kept restating. It lives at ~/.claude/projects/<project>/memory/ with a MEMORY.md entrypoint. You can audit it with /memory, edit it, or delete it. It’s on by default. (Anthropic docs.)

    .claude/rules/ is a directory of smaller, topic-scoped markdown files — code-style.md, testing.md, security.md — that can optionally be scoped to specific file paths via YAML frontmatter. A rule with paths: ["src/api/**/*.ts"] only loads when Claude is working with files matching that pattern. (Anthropic docs.)

    The reason this matters for how you write CLAUDE.md: once you understand what the other two are for, you stop stuffing CLAUDE.md with things that belong somewhere else. A 600-line CLAUDE.md isn’t a sign of thoroughness. It’s usually a sign the rules directory doesn’t exist yet and auto memory is disabled.

    Anthropic’s own guidance is explicit: target under 200 lines per CLAUDE.md file. Longer files consume more context and reduce adherence.

    Hold that number. We’ll come back to it.


    Where CLAUDE.md lives (and why scope matters)

    CLAUDE.md files can live in four different scopes, each with a different purpose. More specific scopes take precedence over broader ones. (Full precedence table in Anthropic docs.)

    Managed policy CLAUDE.md lives at the OS level — /Library/Application Support/ClaudeCode/CLAUDE.md on macOS, /etc/claude-code/CLAUDE.md on Linux and WSL, C:\Program Files\ClaudeCode\CLAUDE.md on Windows. Organizations deploy it via MDM, Group Policy, or Ansible. It applies to every user on every machine it’s pushed to, and individual settings cannot exclude it. Use it for company-wide coding standards, security posture, and compliance reminders.

    Project CLAUDE.md lives at ./CLAUDE.md or ./.claude/CLAUDE.md. It’s checked into source control and shared with the team. This is the one you’re writing when someone says “set up CLAUDE.md for this repo.”

    User CLAUDE.md lives at ~/.claude/CLAUDE.md. It’s your personal preferences across every project on your machine — favorite tooling shortcuts, how you like code styled, patterns you want applied everywhere.

    Local CLAUDE.md lives at ./CLAUDE.local.md in the project root. It’s personal-to-this-project and gitignored. Your sandbox URLs, preferred test data, notes Claude should know that your teammates shouldn’t see.

    Claude walks up the directory tree from wherever you launched it, concatenating every CLAUDE.md and CLAUDE.local.md it finds. Subdirectories load on demand — they don’t hit context at launch, but get pulled in when Claude reads files in those subdirectories. (Anthropic docs.)

    A practical consequence most teams miss: in a monorepo, your parent CLAUDE.md gets loaded when a teammate runs Claude Code from inside a nested package. If that parent file contains instructions that don’t apply to their work, Claude will still try to follow them. That’s what the claudeMdExcludes setting is for — it lets individuals skip CLAUDE.md files by glob pattern at the local settings layer.

    If you’re running Claude Code across more than one repo, decide now whether your standards belong in project CLAUDE.md (team-shared) or user CLAUDE.md (just you). Writing the same thing in both is how you get drift.


    The 200-line discipline

    This is the rule I see broken most often, and it’s the rule Anthropic is most explicit about. From the docs: “target under 200 lines per CLAUDE.md file. Longer files consume more context and reduce adherence.”

    Two things are happening in that sentence. One, CLAUDE.md eats tokens — every session, every time, whether Claude needed those tokens or not. Two, longer files don’t actually produce better compliance. The opposite. When instructions are dense and undifferentiated, Claude can’t tell which ones matter.

    The 200-line ceiling isn’t a hard cap. You can write a 400-line CLAUDE.md and Claude will load the whole thing. It just won’t follow it as well as a 180-line file would.

    Three moves to stay under:

    1. Use @imports to pull in specific files when they’re relevant. CLAUDE.md supports @path/to/file syntax (relative or absolute). Imported files expand inline at session launch, up to five hops deep. This is how you reference your README, your package.json, or a standalone workflow guide without pasting them into CLAUDE.md.

    See @README.md for architecture and @package.json for available scripts.
    
    # Git Workflow
    - @docs/git-workflow.md

    2. Move path-scoped rules into .claude/rules/. Anything that only matters when working with a specific part of the codebase — API patterns, testing conventions, frontend style — belongs in .claude/rules/api.md or .claude/rules/testing.md with a paths: frontmatter. They only load into context when Claude touches matching files.

    ---
    paths:
      - "src/api/**/*.ts"
    ---
    # API Development Rules
    
    - All API endpoints must include input validation
    - Use the standard error response format
    - Include OpenAPI documentation comments

    3. Move task-specific procedures into skills. If an instruction is really a multi-step workflow — “when you’re asked to ship a release, do these eight things” — it belongs in a skill, which only loads when invoked. CLAUDE.md is for the facts Claude should always hold in context; skills are for procedures Claude should run when the moment calls for them.

    If you follow these three moves, a CLAUDE.md rarely needs to exceed 150 lines. At that size, Claude actually reads it.


    What belongs in CLAUDE.md (the signal test)

    Anthropic’s own framing for when to add something is excellent, and it’s worth quoting directly because it captures the whole philosophy in four lines:

    Add to it when:

    • Claude makes the same mistake a second time
    • A code review catches something Claude should have known about this codebase
    • You type the same correction or clarification into chat that you typed last session
    • A new teammate would need the same context to be productive — Anthropic docs

    The operator version of the same principle: CLAUDE.md is the place you write down what you’d otherwise re-explain. It’s not the place you write down everything you know. If you find yourself writing “the frontend is built in React and uses Tailwind,” ask whether Claude would figure that out by reading package.json (it would). If you find yourself writing “when a user asks for a new endpoint, always add input validation and write a test,” that’s the kind of thing Claude won’t figure out on its own — it’s a team convention, not an inference from the code.

    The categories I’ve found actually earn their place in a project CLAUDE.md:

    Build and test commands. The exact string to run the dev server, the test suite, the linter, the type checker. Every one of these saves Claude a round of “let me look for a package.json script.”

    Architectural non-obvious. The thing a new teammate would need someone to explain. “This repo uses event sourcing — don’t write direct database mutations, emit events instead.” “We have two API surfaces, /public/* and /internal/*, and they have different auth requirements.”

    Naming conventions and file layout. “API handlers live in src/api/handlers/.” “Test files go next to the code they test, named *.test.ts.” Specific enough to verify.

    Coding standards that matter. Not “write good code” — “use 2-space indentation,” “prefer const over let,” “always export types separately from values.”

    Recurring corrections. The single most valuable category. Every time you find yourself re-correcting Claude about the same thing, that correction belongs in CLAUDE.md.

    What usually doesn’t belong:

    • Long lists of library choices (Claude can read package.json)
    • Full architecture diagrams (link to them instead)
    • Step-by-step procedures (skills)
    • Path-specific rules that only matter in one part of the repo (.claude/rules/ with a paths: field)
    • Anything that would be true of any project (that goes in user CLAUDE.md)

    Writing instructions Claude will actually follow

    Anthropic’s own guidance on effective instructions comes down to three principles, and every one of them is worth taking seriously:

    Specificity. “Use 2-space indentation” works better than “format code nicely.” “Run npm test before committing” works better than “test your changes.” “API handlers live in src/api/handlers/” works better than “keep files organized.” If the instruction can’t be verified, it can’t be followed reliably.

    Consistency. If two rules contradict each other, Claude may pick one arbitrarily. This is especially common in projects that have accumulated CLAUDE.md files across multiple contributors over time — one file says to prefer async/await, another says to use .then() for performance reasons, and nobody remembers which was right. Do a periodic sweep.

    Structure. Use markdown headers and bullets. Group related instructions. Dense paragraphs are harder to scan, and Claude scans the same way you do. A CLAUDE.md with clear section headers — ## Build Commands, ## Coding Style, ## Testing — outperforms the same content run together as prose.

    One pattern I’ve found useful that isn’t in the docs: write CLAUDE.md in the voice of a teammate briefing another teammate. Not “use 2-space indentation” but “we use 2-space indentation.” Not “always include input validation” but “every endpoint needs input validation — we had a security incident last year and this is how we prevent the next one.” The “why” is optional but it improves adherence because Claude treats the rule as something with a reason behind it, not an arbitrary preference.


    Community patterns worth knowing (flagged as community, not official)

    The following are patterns I’ve seen in operator circles and at industry events like AI Engineer Europe 2026, where practitioners share how they’re running Claude Code in production. None of these are in Anthropic’s documentation as official guidance. I’ve included them because they’re useful; I’m flagging them because they’re community-origin, not doctrine. Your mileage may vary, and Anthropic’s official behavior could change in ways that affect these patterns.

    The “project constitution” framing. Community shorthand for treating CLAUDE.md as the living document of architectural decisions — the thing new contributors read to understand how the project thinks. The framing is useful even though Anthropic doesn’t use the word. It captures the right posture: CLAUDE.md is the place for the decisions you want to outlast any individual conversation.

    Prompt-injecting your own codebase via custom linter errors. Reported at AI Engineer Europe 2026: some teams embed agent-facing prompts directly into their linter error messages, so when an automated tool catches a mistake, the error text itself tells the agent how to fix it. Example: instead of a test failing with “type mismatch,” the error reads “You shouldn’t have an unknown type here because we parse at the edge — use the parsed type from src/schemas/.” This is not documented Anthropic practice; it’s a community pattern that works because Claude Code reads tool output and tool output flows into context. Use with judgment.

    File-size lint rules as context-efficiency guards. Some teams enforce file-size limits (commonly cited: 350 lines max) via their linters, with the explicit goal of keeping files small enough that Claude can hold meaningful ones in context without waste. Again, community practice. The number isn’t magic; the discipline is.

    Token Leverage as a team metric. The idea that teams should track token spend ÷ human labor spend as a ratio and try to scale it. This is business-strategy content, not engineering guidance, and it’s emerging community discourse rather than settled practice. Take it as a thought experiment, not a KPI to implement by Monday.

    I’d rather flag these honestly than pretend they’re settled. If something here graduates from community practice to official recommendation, I’ll update.


    Enterprise: managed-policy CLAUDE.md (and when to use settings instead)

    For organizations deploying Claude Code across teams, there’s a managed-policy CLAUDE.md that applies to every user on a machine and cannot be excluded by individual settings. It lives at /Library/Application Support/ClaudeCode/CLAUDE.md (macOS), /etc/claude-code/CLAUDE.md (Linux and WSL), or C:\Program Files\ClaudeCode\CLAUDE.md (Windows), and is deployed via MDM, Group Policy, Ansible, or similar.

    The distinction that matters most for enterprise: managed CLAUDE.md is guidance, managed settings are enforcement. Anthropic is clear about this. From the docs:

    Settings rules are enforced by the client regardless of what Claude decides to do. CLAUDE.md instructions shape Claude’s behavior but are not a hard enforcement layer. — Anthropic docs

    If you need to guarantee that Claude Code can’t read .env files or write to /etc, that’s a managed settings concern (permissions.deny). If you want Claude to be reminded of your company’s code review standards, that’s managed CLAUDE.md. If you confuse the two and put your security policy in CLAUDE.md, you have a strongly-worded suggestion where you needed a hard wall.

    Building With Claude?

    I’ll send you the CLAUDE.md cheat sheet personally.

    If you’re in the middle of a real project and this playbook is helping — or raising more questions — just email me. I read every message.

    Email Will → will@tygartmedia.com

    The right mental model:

    Concern Configure in
    Block specific tools, commands, or file paths Managed settings (permissions.deny)
    Enforce sandbox isolation Managed settings (sandbox.enabled)
    Authentication method, organization lock Managed settings
    Environment variables, API provider routing Managed settings
    Code style and quality guidelines Managed CLAUDE.md
    Data handling and compliance reminders Managed CLAUDE.md
    Behavioral instructions for Claude Managed CLAUDE.md

    (Full table in Anthropic docs.)

    One practical note: managed CLAUDE.md ships to developer machines once, so it has to be right. Review it, version it, and treat changes to it the way you’d treat changes to a managed IDE configuration — because that’s what it is.


    The living document problem: auto memory, CLAUDE.md, and drift

    The thing that changed most in 2026 is that Claude now writes memory for itself when auto memory is enabled (on by default since Claude Code v2.1.59). It saves build commands it discovered, debugging insights, preferences you expressed repeatedly — and loads the first 200 lines (or 25KB) of its MEMORY.md at every session start. (Anthropic docs.)

    This changes how you think about CLAUDE.md in two ways.

    First, you don’t need to write CLAUDE.md entries for everything Claude could figure out on its own. If you tell Claude once that the build command is pnpm run build --filter=web, auto memory might save that, and you won’t need to codify it in CLAUDE.md. The role of CLAUDE.md becomes more specifically about what the team has decided, rather than what the tool needs to know to function.

    Second, there’s a new audit surface. Run /memory in a session and you can see every CLAUDE.md, CLAUDE.local.md, and rules file being loaded, plus a link to open the auto memory folder. The auto memory files are plain markdown. You can read, edit, or delete them.

    A practical auto-memory hygiene pattern I’ve landed on:

    • Once a month, open /memory and skim the auto memory folder. Anything stale or wrong gets deleted.
    • Quarterly, review the CLAUDE.md itself. Has anything changed in how the team works? Are there rules that used to matter but don’t anymore? Conflicting instructions accumulate faster than you think.
    • Whenever a rule keeps getting restated in conversation, move it from conversation to CLAUDE.md. That’s the signal Anthropic’s own docs describe, and it’s the right one.

    CLAUDE.md files are living documents or they’re lies. A CLAUDE.md from six months ago that references libraries you’ve since replaced will actively hurt you — Claude will try to follow instructions that no longer apply.


    A representative CLAUDE.md template

    What follows is a synthetic example, clearly not any specific project. It demonstrates the shape, scope, and discipline of a good project CLAUDE.md. Adapt it to your codebase. Keep it under 200 lines.

    # Project: [Name]
    
    ## Overview
    Brief one-paragraph description of what this project is and who uses it.
    Link to deeper architecture docs rather than duplicating them here.
    
    See @README.md for full architecture.
    
    ## Build and Test Commands
    - Install: `pnpm install`
    - Dev server: `pnpm run dev`
    - Build: `pnpm run build`
    - Test: `pnpm test`
    - Type check: `pnpm run typecheck`
    - Lint: `pnpm run lint`
    
    Run `pnpm run typecheck` and `pnpm test` before committing. Both must pass.
    
    ## Tech Stack
    (Only list the non-obvious choices. Claude can read package.json.)
    - We use tRPC, not REST, for internal APIs.
    - Styling is Tailwind with a custom token file at `src/styles/tokens.ts`.
    - Database migrations via Drizzle, not Prisma (migrated in Q1 2026).
    
    ## Directory Layout
    - `src/api/` — tRPC routers, grouped by domain
    - `src/components/` — React components, one directory per component
    - `src/lib/` — shared utilities, no React imports allowed here
    - `src/server/` — server-only code, never imported from client
    - `tests/` — integration tests (unit tests live next to source)
    
    ## Coding Conventions
    - TypeScript strict mode. No `any` without a comment explaining why.
    - Functional components only. No class components.
    - Imports ordered: external, internal absolute, relative.
    - 2-space indentation. Prettier config in `.prettierrc`.
    
    ## Conventions That Aren't Obvious
    - Every API endpoint validates input with Zod. No exceptions.
    - Database queries go through the repository layer in `src/server/repos/`. 
      Never import Drizzle directly from route handlers.
    - Errors surfaced to the UI use the `AppError` class from `src/lib/errors.ts`.
      This preserves error codes for the frontend to branch on.
    
    ## Common Corrections
    - Don't add new top-level dependencies without discussing first.
    - Don't create new files in `src/lib/` without checking if a similar 
      utility already exists.
    - Don't write tests that hit the real database. Use the test fixtures 
      in `tests/fixtures/`.
    
    ## Further Reading
    - API design rules: @.claude/rules/api.md
    - Testing conventions: @.claude/rules/testing.md
    - Security: @.claude/rules/security.md

    That’s roughly 70 lines. Notice what it doesn’t include: no multi-step procedures, no duplicated information from package.json, no universal-best-practice lectures. Every line is either a command you’d otherwise re-type, a convention a new teammate would need briefed, or a pointer to a more specific document.


    When CLAUDE.md still isn’t being followed

    This happens to everyone eventually. Three debugging steps, in order:

    1. Run /memory and confirm your file is actually loaded. If CLAUDE.md isn’t in the list, Claude isn’t reading it. Check the path — project CLAUDE.md can live at ./CLAUDE.md or ./.claude/CLAUDE.md, not both, not a subdirectory (unless Claude happens to be reading files in that subdirectory).

    2. Make the instruction more specific. “Write clean code” is not an instruction Claude can verify. “Use 2-space indentation” is. “Handle errors properly” is not an instruction. “All errors surfaced to the UI must use the AppError class from src/lib/errors.ts” is.

    3. Look for conflicting instructions. A project CLAUDE.md saying “prefer async/await” and a .claude/rules/performance.md saying “use raw promises for hot paths” will cause Claude to pick one arbitrarily. In monorepos this is especially common — an ancestor CLAUDE.md from a different team can contradict yours. Use claudeMdExcludes to skip irrelevant ancestors.

    If you need guarantees rather than guidance — “Claude cannot, under any circumstances, delete this directory” — that’s a settings-level permissions concern, not a CLAUDE.md concern. Write the rule in settings.json under permissions.deny and the client enforces it regardless of what Claude decides.


    FAQ

    What is CLAUDE.md? A markdown file Claude Code reads at the start of every session to get persistent instructions for a project. It lives in a project’s source tree (usually at ./CLAUDE.md or ./.claude/CLAUDE.md), gets loaded into the context window as a user message after the system prompt, and contains coding standards, build commands, architectural decisions, and other team-level context. Anthropic is explicit that it’s guidance, not enforcement. (Source.)

    How long should a CLAUDE.md be? Under 200 lines. Anthropic’s own guidance is that longer files consume more context and reduce adherence. If you’re over that, split with @imports or move topic-specific rules into .claude/rules/.

    Where should CLAUDE.md live? Project-level: ./CLAUDE.md or ./.claude/CLAUDE.md, checked into source control. Personal-global: ~/.claude/CLAUDE.md. Personal-project (gitignored): ./CLAUDE.local.md. Organization-wide (enterprise): /Library/Application Support/ClaudeCode/CLAUDE.md (macOS), /etc/claude-code/CLAUDE.md (Linux/WSL), or C:\Program Files\ClaudeCode\CLAUDE.md (Windows).

    What’s the difference between CLAUDE.md and auto memory? CLAUDE.md is instructions you write for Claude. Auto memory is notes Claude writes for itself across sessions, stored at ~/.claude/projects/<project>/memory/. Both load at session start. CLAUDE.md is for team standards; auto memory is for build commands and preferences Claude picks up from your corrections. Auto memory requires Claude Code v2.1.59 or later.

    Can Claude ignore my CLAUDE.md? Yes. CLAUDE.md is loaded as a user message and Claude “reads it and tries to follow it, but there’s no guarantee of strict compliance.” For hard enforcement (blocking file access, sandbox isolation, etc.) use settings, not CLAUDE.md.

    Does AGENTS.md work for Claude Code? Claude Code reads CLAUDE.md, not AGENTS.md. If your repo already uses AGENTS.md for other coding agents, create a CLAUDE.md that imports it with @AGENTS.md at the top, then append Claude-specific instructions below.

    What’s .claude/rules/ and when should I use it? A directory of smaller, topic-scoped markdown files that can optionally be scoped to specific file paths via YAML frontmatter. Use it when your CLAUDE.md is getting long or when instructions only matter in part of the codebase. Rules without a paths: field load at session start with the same priority as .claude/CLAUDE.md; rules with a paths: field only load when Claude works with matching files.

    How do I generate a starter CLAUDE.md? Run /init inside Claude Code. It analyzes your codebase and produces a starting file with build commands, test instructions, and conventions it discovers. Refine from there with instructions Claude wouldn’t discover on its own.


    A closing note

    The biggest mistake I see people make with CLAUDE.md isn’t writing it wrong — it’s writing it once and forgetting it exists. Six months later it references libraries they’ve since replaced, conventions that have since shifted, and a team structure that has since reorganized. Claude dutifully tries to follow instructions that no longer apply, and the team wonders why the tool seems to have gotten worse.

    CLAUDE.md is a living document or it’s a liability. Treat it the way you’d treat a critical piece of onboarding documentation, because functionally that’s exactly what it is — onboarding for the teammate who shows up every session and starts from zero.

    Write it for that teammate. Keep it short. Update it when reality shifts. And remember the part nobody likes to admit: it’s guidance, not enforcement. For anything that has to be guaranteed, reach for settings instead.


    Sources and further reading

    Community patterns referenced in this piece were reported at AI Engineer Europe 2026 and captured in a session recap. They represent emerging practice, not Anthropic doctrine.

  • Knowledge Cluster VM Setup — 5-Site WordPress Network on GCP Compute Engine

    Knowledge Cluster VM Setup — 5-Site WordPress Network on GCP Compute Engine

    The Lab · Tygart Media
    Experiment Nº 707 · Methodology Notes
    METHODS · OBSERVATIONS · RESULTS

    What Is a Knowledge Cluster VM?
    A Knowledge Cluster VM is a single GCP Compute Engine instance running five WordPress sites on a shared LAMP stack — each site with its own domain, SSL certificate, and WordPress installation, all managed from one server with Claude Code deployed for AI-assisted content operations. Five sites, one VM, unified content architecture, fraction of the cost of five separate hosting accounts.

    Running five WordPress sites on five separate managed hosting accounts costs $200–$500/month and gives you five completely isolated environments with no shared infrastructure, no shared AI tooling, and no economies of scale. A dedicated GCP VM changes the math: one e2-standard-2 instance runs all five sites for around $30–$50/month, with Claude Code deployed directly on the server for zero-latency AI content operations.

    We run our own 5-site knowledge cluster this way — restorationintel.com, riskcoveragehub.com, continuityhub.org, bcesg.org, and healthcarefacilityhub.org are all on one VM. The hub-and-spoke content architecture connects them intentionally: each site covers a different facet of a shared knowledge domain, and internal cross-linking amplifies authority across all five.

    Who This Is For

    Operators building a network of related WordPress sites — knowledge hubs, geo-local networks, topic clusters across related domains — who want shared infrastructure, lower hosting costs, and a unified AI content operation rather than five separate managed accounts.

    What We Build

    • GCP Compute Engine VM — e2-standard-2 (2 vCPU, 8GB RAM) or larger depending on traffic requirements, configured in us-west1 or your preferred region
    • Shared LAMP stack — Apache with virtual hosts, MySQL with separate databases per site, PHP 8.x configured for WordPress
    • Five WordPress installations — Each in its own directory, individual wp-config, separate database credentials
    • SSL certificates — Certbot/Let’s Encrypt for all five domains with auto-renewal configured
    • Claude Code deployment — Anthropic API key stored in GCP Secret Manager, Claude Code installed and configured for WP-CLI integration
    • Hub-and-spoke content map — Architecture document defining which site is the hub, which are spokes, and the interlinking strategy
    • WP-CLI batch scripts — Common operations (plugin updates, bulk post operations, taxonomy management) scripted for all five sites

    What We Deliver

    Item Included
    GCP VM provisioning and configuration
    5 WordPress installations with SSL
    Shared LAMP stack with Apache virtual hosts
    Claude Code deployment + GCP Secret Manager integration
    Hub-and-spoke content architecture document
    WP-CLI batch operation scripts
    Monitoring + auto-restart configuration
    Technical handoff documentation

    Ready to Consolidate 5 Sites onto One Smart Server?

    Share the 5 domains you want to host and your current monthly hosting cost. We’ll scope the VM build and show you the cost reduction.

    will@tygartmedia.com

    Email only. No commitment to reply.

    Frequently Asked Questions

    What happens if the VM goes down?

    GCP Compute Engine has 99.9% uptime SLA. We configure automatic restart policies and GCP’s built-in monitoring with alerting. For production sites with stricter uptime requirements, we can add a load balancer with health checks.

    How is this different from WordPress Multisite?

    WordPress Multisite shares a single WordPress installation across all sites — changes to plugins or core affect all sites simultaneously and customization is limited. The cluster uses five independent WordPress installations that share only the server hardware. Each site is fully independent.

    Can more than 5 sites run on one VM?

    Yes — an e2-standard-2 instance comfortably handles 8–10 low-to-medium traffic WordPress sites. We scale the VM size based on your traffic requirements. The architecture pattern works for 3–15 sites.


    Last updated: April 2026

  • Claude Code vs Cursor: Which AI Coding Tool Is Better in 2026?

    Claude Code vs Cursor: Which AI Coding Tool Is Better in 2026?

    Claude AI · Fitted Claude

    Claude Code and Cursor are both AI coding tools with serious developer followings — but they’re built on fundamentally different models. Cursor is an AI-powered IDE fork. Claude Code is a terminal-native agent. The right choice depends on how you work.

    Short answer: Cursor wins for in-editor experience — autocomplete, inline suggestions, and staying inside VS Code’s familiar interface. Claude Code wins for autonomous multi-step tasks — it operates at the system level, can run commands, manage files across the whole project, and doesn’t require you to be watching. Most serious developers end up using both.

    Claude Code vs Cursor: Head-to-Head

    Capability Claude Code Cursor Edge
    In-editor autocomplete Limited ✅ Native Cursor
    Autonomous multi-file tasks ✅ Strong ✅ Good Claude Code
    Terminal / shell command execution ✅ Yes Limited Claude Code
    Remote / cloud sessions ✅ Yes Claude Code
    VS Code compatibility Via MCP ✅ Built on VS Code Cursor
    Model choice Claude only Multi-model Cursor (flexibility)
    Instruction-following precision ✅ Strong Good Claude Code
    Price Included in Pro ($20/mo)+ ~$20/mo (Pro) Tie
    Setup complexity Moderate Easy Cursor
    Not sure which to use?

    We’ll help you pick the right stack — and set it up.

    Tygart Media evaluates your workflow and configures the right AI tools for your team. No guesswork, no wasted subscriptions.

    What Cursor Does Better

    In-editor experience. Cursor is a fork of VS Code with AI baked in — autocomplete, inline suggestions, cmd+K to edit code in place, and the full VS Code extension ecosystem. If you live in an editor and want AI suggestions as you type, Cursor is the more polished experience.

    Familiar interface. If your team already uses VS Code, Cursor requires almost no adjustment. Claude Code requires getting comfortable with an agentic workflow that’s fundamentally different from autocomplete.

    Multi-model flexibility. Cursor lets you choose between Claude, GPT-4o, and other models depending on the task. Claude Code is Claude-only.

    What Claude Code Does Better

    System-level autonomy. Claude Code runs commands, manages files across the entire project, executes tests, and operates at the OS level — not just inside an editor window. It can do things Cursor can’t, like run a test suite, see the results, fix the failures, and re-run without you touching anything.

    Remote and background sessions. Claude Code supports remote sessions that continue on Anthropic’s infrastructure even after you close the app. Cursor requires you to be present.

    Complex multi-step tasks. Agentic tasks that span many files, require running code, and iterate based on output are where Claude Code’s architecture shines. Cursor handles this through its Composer feature, but Claude Code’s terminal-native approach gives it more flexibility.

    Instruction precision. On multi-constraint tasks — “refactor this to match our conventions, add error handling, keep it backward compatible, and don’t use async” — Claude Code holds all the constraints more reliably through a long operation.

    Price Comparison

    Claude Code is included (at limited levels) with a Claude Pro subscription at $20/month. Claude Code Pro at $100/month gives full access for developers using it as a primary tool. Cursor Pro is approximately $20/month. Both are in the same price tier for comparable usage levels.

    The Practical Setup

    Most developers using both tools run Cursor for in-editor work — autocomplete, inline edits, quick questions about code — and Claude Code for larger autonomous tasks: refactors, test generation across a codebase, debugging sessions that require running code. They’re complementary, not mutually exclusive.

    For a broader comparison, see Claude vs GitHub Copilot and Claude Code vs Windsurf. For Claude Code pricing specifically, see Claude Code Pricing: Pro vs Max.

    Frequently Asked Questions

    Is Claude Code better than Cursor?

    They’re different tools. Claude Code is better for autonomous multi-step tasks, system-level operations, and complex refactors that require running code and iterating. Cursor is better for in-editor autocomplete and inline suggestions within the VS Code interface. Most serious developers use both.

    Can I use Claude Code inside VS Code or Cursor?

    Claude Code primarily runs as a terminal agent or through Claude Desktop’s Code tab. You can connect it to VS Code via MCP integration. Cursor has its own Claude integration built in — you can use Claude models inside Cursor without Claude Code.

    How much does Cursor cost vs Claude Code?

    Cursor Pro is approximately $20/month. Claude Code is included at limited levels with Claude Pro ($20/month) or at full access with Claude Code Pro ($100/month). For occasional use, Claude Pro gives you both a full Claude subscription and limited Claude Code access for the same $20.

    Need this set up for your team?
    Talk to Will →

  • How to Use Claude Code: Getting Started, Workflows, and Best Practices

    How to Use Claude Code: Getting Started, Workflows, and Best Practices

    Claude AI · Fitted Claude

    Claude Code is an agentic coding tool that works directly inside your codebase — reading files, writing code, running tests, and making changes with your approval. It’s fundamentally different from asking Claude questions about code in chat. Here’s how to use it effectively from your first session.

    Access: Claude Code is in the Code tab of Claude Desktop, or via the CLI (claude command). Both require a Pro, Max, Team, or Enterprise subscription. For installation, see How to Install Claude Code.

    Starting a Session

    Open the Code tab in Claude Desktop (or run claude in your terminal), then select your session type:

    • Local — Claude works on your machine with direct file access. Changes happen locally. Best for everyday development.
    • Remote — Claude runs on Anthropic’s infrastructure. The session continues even if you close the app. Best for long autonomous tasks.
    • SSH — Claude connects to a remote server over SSH. Best for server-side or cloud VM development.

    Select your project folder and choose a model — Sonnet 4.6 for most work, Opus 4.6 for the most complex tasks. You can’t change the model after the session starts.

    Free — no pitch

    Get the Claude workflow that actually sticks.

    Practical Claude setup tips from someone running it across 27 client sites daily — not marketing, not theory. Email Will directly and he’ll share what’s working.

    Get the tips →

    What to Ask Claude Code to Do

    Claude Code works best with clear, specific tasks. Unlike chat, it has your full codebase as context — so you can refer to actual files, functions, and patterns without explaining them.

    Strong prompts:

    • “Fix the bug in auth.py where users aren’t logged out after session expiry”
    • “Add input validation to all API endpoints in routes/ — check for SQL injection”
    • “Refactor UserService to use dependency injection”
    • “Write tests for all public methods in utils/parser.js
    • “Explain the data flow from the API call in main.py to the database”

    How Claude Code Makes Changes

    Claude Code doesn’t modify your files silently. When it wants to make a change, it shows you a diff — the exact lines it plans to add, remove, or edit — and waits for your approval before writing anything. You can accept the change, reject it, or ask Claude to revise its approach.

    This review-before-write pattern means Claude Code is safe to use even on code you’re not fully familiar with. You see every change before it happens.

    CLAUDE.md: Persistent Project Instructions

    Create a CLAUDE.md file in your project root to give Claude Code persistent context about your codebase — coding conventions, architecture decisions, testing patterns, libraries to prefer or avoid. Claude Code reads this file at the start of every session, so you don’t re-explain your project each time.

    # CLAUDE.md example
    
    ## Stack
    - Python 3.11, FastAPI, PostgreSQL, SQLAlchemy
    - Tests use pytest with fixtures in conftest.py
    
    ## Conventions
    - Functions should have type hints
    - No bare except clauses — always catch specific exceptions
    - Use Pydantic models for all request/response schemas
    
    ## Do not modify
    - legacy/ directory — kept for backward compatibility

    Common Workflows

    Debugging: Paste the error message and stack trace, ask Claude to find and fix the root cause. It reads the relevant files and proposes a fix.

    Refactoring: Describe the refactor goal — “extract this into a separate service,” “replace all these conditionals with a strategy pattern” — and Claude Code walks through the changes systematically.

    Test writing: “Write unit tests for all functions in this file” or “add edge case tests for the payment processing flow.” Claude reads your existing test patterns and matches them.

    Code review: “Review this PR for security issues, missing error handling, and anything that violates our conventions.” Claude reads the changed files and gives structured feedback.

    Documentation: “Add docstrings to all public functions” or “generate a README that explains this project’s architecture.”

    Tips for Getting the Most Out of It

    • Start small. First session, give it a small, contained task in a file you know well. Calibrate your trust before handing it larger work.
    • Be specific about constraints. “Don’t use async/await,” “keep changes backward compatible,” “match the style of the existing tests.” Claude Code holds these throughout the session.
    • Use CLAUDE.md. Any convention you find yourself re-explaining belongs in this file.
    • Review every diff. Claude Code is capable but not infallible. Read each proposed change before approving — especially on production code.
    • Use Remote for long tasks. Autonomous multi-file refactors or test generation across a large codebase work better in a Remote session that won’t be interrupted.

    For pricing details, see Claude Code Pricing: Pro vs Max. For how it compares to other tools, see Claude vs GitHub Copilot and Claude Code vs Windsurf.

    Tygart Media

    Getting Claude set up is one thing.
    Getting it working for your team is another.

    We configure Claude Code, system prompts, integrations, and team workflows end-to-end. You get a working setup — not more documentation to read.

    See what we set up →

    Frequently Asked Questions

    How does Claude Code work?

    Claude Code reads your project files, executes tasks like debugging, refactoring, and test writing, and shows you a diff of every proposed change before modifying anything. You approve or reject each change. It operates in your actual development environment, not in a chat window.

    Can Claude Code modify my files without permission?

    No. Claude Code shows you a diff of every proposed change and waits for your approval before writing to any file. You remain in full control of what gets modified.

    What languages does Claude Code support?

    Claude Code works with any programming language. It’s particularly strong on Python, JavaScript, TypeScript, and Go, but handles most modern languages and frameworks well. It reads and writes whatever files are in your project directory.

    Need this set up for your team?
    Talk to Will →

  • How to Install Claude Code: Desktop App and CLI Setup Guide

    How to Install Claude Code: Desktop App and CLI Setup Guide

    Claude AI · Fitted Claude

    Claude Code is available two ways: as the Code tab inside Claude Desktop (with a graphical interface), or as a CLI tool you install and run from your terminal. Here’s how to get either one set up from scratch.

    Requirement: Claude Code requires a Pro, Max, Team, or Enterprise subscription. It is not available on the free plan. The Claude Desktop app (which includes a graphical Claude Code interface) is free to download but the Code tab requires a paid subscription.

    Option 1: Claude Desktop (Recommended for Most Users)

    The easiest way to get Claude Code is through Claude Desktop — no terminal required.

      Installing Claude?

      If you run into setup issues or want to know how to get the most out of it from day one, just email me.

      Email Will → will@tygartmedia.com

    1. Download Claude Desktop from claude.ai/download — available for macOS and Windows (x64 or ARM64). Linux is not supported.
    2. Install — on Mac, open the PKG and drag to Applications; on Windows, run the installer.
    3. Sign in with your Anthropic account (Pro, Max, Team, or Enterprise).
    4. Click the Code tab in the top navigation.
    5. Select Local to work with files on your machine, or Remote to run on Anthropic’s cloud infrastructure.
    6. Click “Select folder” and choose your project directory. You’re ready.

    On Windows, Git must be installed for local sessions to work. Most Macs include Git by default — check by running git --version in Terminal.

    Free — no pitch

    Get the Claude workflow that actually sticks.

    Practical Claude setup tips from someone running it across 27 client sites daily — not marketing, not theory. Email Will directly and he’ll share what’s working.

    Get the tips →

    Option 2: Claude Code CLI

    For developers who prefer working in the terminal, Claude Code is also available as a command-line tool.

    # Install via npm
    npm install -g @anthropic-ai/claude-code
    
    # Authenticate
    claude login
    
    # Start in your project directory
    cd your-project
    claude

    The CLI requires Node.js. After running claude login, you’ll authenticate with your Anthropic account in a browser window. The session starts automatically in the current directory.

    Local vs. Remote Sessions

    Session type What it does Best for
    Local Runs on your machine, accesses your files directly Everyday development work
    Remote Runs on Anthropic’s cloud, continues if you close the app Long-running tasks, autonomous work
    SSH Connects to a remote machine over SSH Server or cloud VM development

    Common Setup Issues

    Code tab not appearing in Desktop: Confirm your account is on a paid plan. Claude Code requires Pro, Max, Team, or Enterprise — it’s not available on the free tier.

    Windows Git error: Claude Code needs Git for local sessions on Windows. Download Git from git-scm.com, install with default settings, then restart the desktop app.

    CLI authentication failing: Run claude logout then claude login again. Make sure your Anthropic account has an active paid subscription.

    Permission errors on first run: Claude Code will ask permission to access your files when you first select a folder. Click Allow — it needs read/write access to work with your project.

    First Session: What to Expect

    When you start your first Claude Code session, Anthropic recommends starting with a small, familiar project. Ask Claude to explain the codebase, fix a specific bug, or add a small feature. This gives you a calibrated sense of how it works before tackling larger tasks. Claude will read relevant files, propose changes, and ask for your approval before modifying anything.

    For an overview of what Claude Code can do once you’re set up, see How to Use Claude Code. For pricing details, see Claude Code Pricing: Pro vs Max.

    Tygart Media

    Getting Claude set up is one thing.
    Getting it working for your team is another.

    We configure Claude Code, system prompts, integrations, and team workflows end-to-end. You get a working setup — not more documentation to read.

    See what we set up →

    Frequently Asked Questions

    How do I install Claude Code?

    Download Claude Desktop from claude.ai/download and use the Code tab — no terminal required. Or install the CLI with npm install -g @anthropic-ai/claude-code and run claude login to authenticate.

    Is Claude Code free to install?

    Claude Desktop (which includes Claude Code) is free to download. Using Claude Code requires a paid subscription — Pro ($20/month), Max ($100/month), Team, or Enterprise. It is not available on the free plan.

    Does Claude Code work on Linux?

    The Claude Desktop app does not support Linux. The Claude Code CLI does run on Linux — install via npm and use it from your terminal.

    What’s the difference between Claude Code Desktop and the CLI?

    Claude Code Desktop (the Code tab in the Claude Desktop app) gives you a graphical interface with visual file diffs, a built-in preview panel, and no terminal required. The CLI runs in your terminal and supports the same core operations. Both share configuration files and can run simultaneously on the same project.

    Need this set up for your team?
    Talk to Will →

  • Claude Desktop: Download, Features, and What It Does That the Web Can’t

    Claude Desktop: Download, Features, and What It Does That the Web Can’t

    Claude AI · Fitted Claude

    Installing Claude?

    If you run into setup issues or want to know how to get the most out of it from day one, just email me.

    Email Will → will@tygartmedia.com

    Claude Desktop is Anthropic’s native app for Mac and Windows — a dedicated application that brings Claude out of the browser and into your system, with features that aren’t available in the web interface. It’s free to download for all plan types, including the free tier.

    Download: claude.ai/download — available for macOS and Windows. Linux is not currently supported. The app is free to download; some features require a paid plan.

    What Claude Desktop Includes

    Feature What it does Plan required
    Chat tab Full Claude conversation, same as claude.ai Free+
    Quick access hotkey Bring Claude up from any app without switching windows Free+
    Screenshot capture Snap your screen and have Claude analyze what it sees Free+
    Desktop extensions Connect Claude to local files, calendars, email, and native apps Free+
    Claude in Chrome Claude navigates, clicks, and fills forms in your browser Free+
    Cowork tab Autonomous background agent that runs tasks in a cloud VM Pro, Max, Team, Enterprise
    Code tab (Claude Code) Interactive coding with direct access to your local files Pro, Max, Team, Enterprise
    Free — no pitch

    Get the Claude workflow that actually sticks.

    Practical Claude setup tips from someone running it across 27 client sites daily — not marketing, not theory. Email Will directly and he’ll share what’s working.

    Get the tips →

    The Three Tabs: Chat, Cowork, and Code

    Claude Desktop is organized around three modes. Chat is general conversation — identical to claude.ai but accessible from your dock without opening a browser. Cowork is an autonomous background agent that works on tasks in a cloud VM while you do other things — research synthesis, file organization, document generation, spreadsheets. Code is Claude Code with a graphical interface — an interactive coding assistant with direct access to your local project files, where you review and approve each change in real time.

    What Makes Desktop Different From the Web

    The practical differences over using claude.ai in a browser:

    • Always accessible — lives in your dock, reachable from any app via hotkey without switching contexts
    • Screenshot capture — take a screenshot and immediately ask Claude about what’s on screen
    • Desktop extensions — connect to local files, your filesystem, calendars, email, and native Mac/Windows apps that web connectors can’t reach
    • Claude in Chrome — let Claude control your browser directly from the desktop app
    • Cowork background tasks — long-running autonomous tasks that continue while you work on something else
    • Claude Code integration — work directly with your local codebase without copying files

    How to Download and Install

    1. Go to claude.ai/download
    2. Download the appropriate installer — macOS PKG, Windows x64, or Windows ARM64
    3. Run the installer — on Mac, drag to Applications; on Windows, run the setup file
    4. Launch from your Applications folder (Mac) or Start menu (Windows)
    5. Sign in with your Anthropic account

    Linux is not currently supported. The app requires macOS or Windows.

    Desktop Extensions

    Desktop extensions are installable packages that connect Claude to your local tools — similar to browser extensions but for native applications. They give Claude access to your local file system, calendars, email, messaging apps, and other native applications that web-based connectors can’t reach. Browse and install extensions in Settings → Extensions after installing the app.

    Syncing Across Devices

    Your conversations, projects, memory, and preferences sync across Claude Desktop, the web interface, and the mobile app when you’re signed in with the same account. Start a session in the desktop app, continue on your phone, pick it back up on the web — the context travels with you.

    For the Claude Code-specific features in the desktop app, see How to Use Claude Code. For a comparison of Desktop vs. the web interface for everyday use, see Claude AI Login: All Platforms and Apps.

    Tygart Media

    Getting Claude set up is one thing.
    Getting it working for your team is another.

    We configure Claude Code, system prompts, integrations, and team workflows end-to-end. You get a working setup — not more documentation to read.

    See what we set up →

    Frequently Asked Questions

    Is Claude Desktop free?

    Yes. Claude Desktop is free to download and use with a free Claude account. Some features — Cowork, Claude Code, and some extensions — require a paid plan (Pro, Max, Team, or Enterprise). The core chat functionality is available on the free tier.

    What’s the difference between Claude Desktop and claude.ai?

    Claude Desktop is a native app that lives in your dock and adds features not available in the browser — quick access hotkey, screenshot capture, desktop extensions, Cowork for background tasks, and Claude Code for local development. The core conversation experience is the same; the desktop app adds system-level integration.

    Is Claude Desktop available on Linux?

    No. Claude Desktop currently supports macOS and Windows only. Linux users can access Claude through the web interface at claude.ai or via the API.

    Does Claude Desktop work with Claude Code?

    Yes. Claude Desktop includes a Code tab that gives you Claude Code with a graphical interface — direct access to your local files, code review, and interactive development without needing the terminal. The desktop app and the Claude Code CLI share configuration and can run simultaneously on the same project.

    Need this set up for your team?
    Talk to Will →

  • Claude vs GitHub Copilot: Different Tools for Different Jobs

    Claude vs GitHub Copilot: Different Tools for Different Jobs

    Claude AI · Fitted Claude

    Claude and GitHub Copilot both help developers write code — but they’re solving different problems. Copilot lives inside your editor as an autocomplete and inline suggestion tool. Claude is a conversational AI you bring complex problems to. Understanding what each does determines which belongs in your workflow, and whether you need both.

    Short answer: They’re not direct substitutes. Copilot is better for in-editor autocomplete and inline code completion as you type. Claude is better for complex problem-solving, code review, architecture discussion, debugging, and agentic development via Claude Code. Most serious developers benefit from both.

    Claude vs GitHub Copilot: Head-to-Head

    Capability Claude GitHub Copilot Edge
    In-editor autocomplete Copilot — purpose-built for this
    Complex problem-solving Limited Claude — conversational depth
    Code review Basic Claude — more thorough
    Architecture discussion Claude — requires reasoning
    Debugging complex errors Basic Claude — root cause analysis
    Agentic coding (autonomous) ✅ Claude Code ✅ Copilot Workspace Claude Code — terminal-native
    GitHub integration Via MCP ✅ Native Copilot — built into the platform
    Multi-language support Tie
    Price $20/mo (Pro) $10–19/mo Copilot — cheaper at base
    Not sure which to use?

    We’ll help you pick the right stack — and set it up.

    Tygart Media evaluates your workflow and configures the right AI tools for your team. No guesswork, no wasted subscriptions.

    What GitHub Copilot Does Better

    In-editor autocomplete. Copilot is purpose-built for this — it sits inside VS Code, JetBrains, Neovim, or your editor of choice and suggests completions as you type. It reads your current file and neighboring context to generate inline suggestions. Claude doesn’t do this. There’s no Claude autocomplete inside your editor in the same way.

    GitHub native integration. Copilot is an extension of the GitHub ecosystem — it understands your repository context, integrates with pull requests (Copilot PR summaries), and connects directly to GitHub Actions. If you’re deeply embedded in the GitHub workflow, Copilot’s native integration has genuine advantages.

    What Claude Does Better

    Complex reasoning about code. When you have a hard problem — a non-obvious bug, an architectural decision, a security vulnerability to trace — Claude’s conversational depth is more valuable than autocomplete. You can describe the problem, paste relevant code, explain your constraints, and get substantive analysis rather than a completion suggestion.

    Code review quality. Claude’s code review is more thorough than Copilot’s, particularly for security issues, error handling gaps, and logic errors. It explains why something is a problem, not just that it is — and it holds all your review criteria through long responses.

    Claude Code for agentic work. Claude Code is a terminal-native agent that operates in your actual development environment — reading files, running tests, making commits, refactoring across multiple files. It’s a more autonomous capability than either chat-based Claude or Copilot’s editor integration. For multi-file, multi-step development tasks, Claude Code is the stronger tool.

    Using Both: The Practical Setup

    The most effective developer setup uses both: GitHub Copilot for in-editor autocomplete and inline suggestions as you write, Claude (via web, desktop, or API) for complex problem-solving, code review, debugging, and architecture. Claude Code for autonomous development sessions on larger tasks.

    At $10–19/month for Copilot and $20/month for Claude Pro, running both costs $30–40/month — meaningful but justified for developers whose output directly depends on these tools.

    For a broader Claude coding comparison, see Claude vs ChatGPT for Coding, Claude Code vs Windsurf, and Claude Code vs Aider.

    Frequently Asked Questions

    Is Claude better than GitHub Copilot?

    They do different things well. Copilot is better for in-editor autocomplete. Claude is better for complex problem-solving, code review, and debugging. Claude Code is better for autonomous development sessions. Most developers benefit from both rather than choosing one.

    Can Claude replace GitHub Copilot?

    Not for in-editor autocomplete — that’s Copilot’s core strength and Claude doesn’t have a direct equivalent in your editor as you type. Claude Code handles autonomous development tasks at a higher level, but for the instant inline suggestion experience, Copilot remains the dedicated tool.

    Should I use Claude Code or GitHub Copilot?

    For autonomous multi-file development tasks, Claude Code is the stronger tool — it operates in your actual environment, reads your full codebase, runs tests, and works without constant guidance. For in-editor suggestions as you write, Copilot’s integration is purpose-built for that workflow. The two address different parts of the development process.

    Need this set up for your team?
    Talk to Will →

  • Is Claude Good at Coding? An Honest Assessment From Daily Use

    Is Claude Good at Coding? An Honest Assessment From Daily Use

    Claude AI · Fitted Claude

    Claude is genuinely good at coding — and for specific types of development work, it’s the strongest AI coding assistant available. But the honest answer requires separating what it does well from where it has real limits. Here’s the actual assessment from someone running Claude across real production systems daily.

    Short answer: Yes — Claude is strong at coding, particularly for instruction-following on complex requirements, debugging non-obvious errors, and agentic development via Claude Code. It’s competitive with or better than GPT-4o on most coding benchmarks. The gap over alternatives is clearest on tasks requiring sustained context and precise constraint adherence.

    Where Claude Excels at Coding

    Complex, multi-constraint code generation

    Give Claude a detailed spec — specific patterns, error handling requirements, naming conventions, library preferences — and it holds all of them through a long response better than alternatives. Other models tend to drift from earlier constraints partway through. For production code where the specifics matter, Claude’s instruction adherence is a real advantage.

    Debugging non-obvious errors

    On tricky bugs where the error message points somewhere unhelpful, Claude is more likely to trace the actual root cause rather than addressing the symptom. It’s willing to say “this is probably caused by X upstream” and follow the logic chain. That kind of reasoning saves hours on complex debugging sessions.

    Working across large codebases

    Claude’s 200K token context window means it can hold significant portions of a codebase in context simultaneously. Understanding how a change in one file affects another, tracking architectural patterns across multiple files, maintaining awareness of project-wide conventions — Claude handles this better than models with shorter context windows.

    Code review and security analysis

    Claude is strong at finding security vulnerabilities, missing error handling, and logic errors. Give it the code and ask it to review specifically for security issues — SQL injection, authentication gaps, hardcoded credentials — and the findings are reliable and specific. See the full code review guide for prompts and examples.

    Claude Code: Agentic development

    Claude Code — Anthropic’s terminal-native coding agent — operates autonomously inside your actual codebase. Reading files, writing code, running tests, managing git. For autonomous development work, this is a qualitatively different capability from chat-based code assistance. See Claude Code pricing for tier details.

    Claude’s Coding Benchmarks

    On SWE-bench — the industry benchmark for real-world software engineering tasks — Claude has performed strongly relative to competing models. Claude 3.5 Sonnet’s performance on this benchmark in 2024 attracted significant developer attention. The current Claude Sonnet 4.6 continues that trajectory.

    Benchmarks don’t capture everything — real-world tasks have context, requirements, and edge cases that synthetic benchmarks miss. But they’re a useful signal, and Claude’s performance on coding-specific benchmarks is consistently competitive.

    Where Claude Has Coding Limits

    Interactive code execution: Claude doesn’t run code interactively in the web interface by default. ChatGPT’s code interpreter lets you upload a CSV and get Python-generated charts in the same window. Claude can reason about data and write code that would do the same, but won’t execute it in-chat. Claude Code handles actual execution in a development environment.

    Very specialized frameworks: For niche or rapidly evolving frameworks where training data is sparse, Claude may have less confident knowledge than it does for established technologies. Always verify generated code for less common libraries.

    Business logic without context: Claude can generate technically correct code but can’t know your business domain’s rules without you providing them. The more context you give about what the code needs to do and why, the better the output.

    How to Get the Best Coding Results From Claude

    Be specific about requirements: Language, framework version, error handling approach, logging requirements, style preferences. Claude holds more constraints than most models — use that.

    Give it the context: What does this function do? What calls it? What does it return? More domain context = better output.

    Ask for complete, working code: Explicitly request production-ready code with error handling, not pseudocode or skeletons.

    Use Claude Code for agentic work: For anything more than a single function or file, Claude Code operating inside your actual environment beats chat-based coding significantly.

    Frequently Asked Questions

    Is Claude good at coding?

    Yes. Claude is one of the strongest AI coding assistants available, particularly for complex instruction-following, debugging non-obvious errors, and working across large codebases. Claude Code adds agentic development capability for autonomous work inside real codebases.

    Is Claude better than ChatGPT for coding?

    For most coding tasks — complex specs, debugging, large codebase work, and agentic development — Claude is stronger. ChatGPT wins for interactive data analysis via its code interpreter. For a full comparison, see Claude vs ChatGPT for Coding.

    Can Claude write production-ready code?

    Yes, with the right prompting. Specify that you want production-ready code with error handling, logging, and your style requirements. Claude follows detailed coding specifications more reliably than most alternatives. Always review and test generated code before deploying.

    Want this for your workflow?

    We set Claude up for teams in your industry — end-to-end, fully configured, documented, and ready to use.

    Tygart Media has run Claude across 27+ client sites. We know what works and what wastes your time.

    See the implementation service →

    Need this set up for your team?
    Talk to Will →

  • Claude for Code Review: What It Catches, How to Use It, and Its Limits

    Claude for Code Review: What It Catches, How to Use It, and Its Limits

    Claude AI · Fitted Claude

    Claude is a strong code review tool — capable of identifying bugs, security vulnerabilities, logic errors, and style issues across most languages and frameworks. Here’s how to use Claude for code review effectively, what it catches reliably, and where you still need a human reviewer.

    Bottom line: Claude is excellent for catching obvious bugs, security antipatterns, and code clarity issues — and fast enough to be part of your pre-PR workflow. It doesn’t replace review from someone who knows your system’s business logic, architectural constraints, or team conventions that aren’t visible in the code itself.

    What Claude Catches in Code Reviews

    Issue Type Claude’s reliability Notes
    Syntax errors and typos ✅ High Catches what linters miss
    Security vulnerabilities ✅ High SQL injection, XSS, hardcoded credentials, SSRF
    Logic errors in simple functions ✅ High Off-by-one errors, wrong comparisons, null handling
    Missing error handling ✅ High Uncaught exceptions, unhandled promise rejections
    Code clarity and readability ✅ High Naming, structure, comment quality
    Performance antipatterns ✅ Good N+1 queries, unnecessary loops, memory leaks
    Business logic correctness ⚠️ Limited Needs context Claude doesn’t have
    Architectural decisions ⚠️ Limited Requires system-wide context

    How to Run a Code Review With Claude

    The most effective approach is to give Claude both the code and the context it needs to review it well. A bare code dump produces generic feedback; a structured prompt produces actionable findings.

    Review this [language] code for: (1) security vulnerabilities, (2) bugs or logic errors, (3) missing error handling, (4) performance issues, (5) clarity problems.

    Context: This function [does X]. It receives [input type] and should return [output type]. It runs [frequency/context].

    Flag each issue with: severity (critical/high/medium/low), what’s wrong, and the fix.

    [paste code]

    Claude for Security Code Review

    Security review is one of Claude’s strongest code review use cases. It reliably identifies:

    • Injection vulnerabilities — SQL, command, LDAP injection patterns
    • Authentication issues — weak password handling, JWT misuse, session management problems
    • Hardcoded secrets — API keys, credentials in source code
    • Insecure dependencies — when you tell it what packages you’re using
    • Input validation gaps — missing sanitization, trust boundary violations

    For security review, explicitly tell Claude to “focus on security vulnerabilities” — the findings are more targeted and specific when it knows that’s the priority.

    Claude Code Review vs. Claude Code

    Code review via the chat interface is for analyzing code you paste in. Claude Code is the agentic tool that operates autonomously inside your actual development environment — reading files, running tests, and making changes. For code review as part of a larger development workflow, Claude Code can do it in-situ on your actual codebase rather than requiring you to paste code into a chat window.

    Frequently Asked Questions

    Can Claude review code?

    Yes. Claude is effective at catching bugs, security vulnerabilities, missing error handling, and clarity issues across most programming languages. Give it context about what the code is supposed to do for the most actionable feedback.

    Is Claude good for security code review?

    Yes, security review is one of Claude’s strongest code review use cases. It reliably identifies SQL injection, XSS, authentication issues, hardcoded credentials, and input validation gaps. Tell it explicitly to focus on security vulnerabilities for the most targeted output.

    What does Claude miss in code reviews?

    Claude can’t evaluate business logic correctness without context about your domain, architectural decisions without knowing your system design, or team conventions not visible in the code. It also can’t catch runtime behavior issues that only appear under specific conditions or load.

    Need this set up for your team?
    Talk to Will →

  • Claude Artifacts: What They Are and How to Use Them

    Claude Artifacts: What They Are and How to Use Them

    Claude AI · Fitted Claude

    Claude Artifacts are a feature in Claude.ai that lets Claude generate standalone, interactive content — code, HTML pages, documents, diagrams, and more — directly in the chat interface as a separate panel you can view, copy, or iterate on without it cluttering the conversation. Here’s what Artifacts are, what they’re useful for, and how to use them effectively.

    Short version: When you ask Claude to write code, build a component, or create a document, it can output that content as an Artifact — a dedicated panel next to the conversation where the content renders and can be worked on separately. It’s the difference between Claude pasting code into the chat and Claude opening a mini IDE alongside it.

    What Claude Can Create as Artifacts

    Artifact Type What it is Example use
    Code Any programming language Python scripts, SQL queries, bash commands
    React components Interactive UI that renders live Calculators, dashboards, forms, games
    HTML pages Full web pages with CSS/JS Landing pages, reports, email templates
    SVG Scalable vector graphics Diagrams, icons, charts
    Markdown documents Formatted text documents Reports, READMEs, documentation
    Mermaid diagrams Flowcharts, sequence diagrams Architecture diagrams, process flows

    How Artifacts Work in Practice

    When you ask Claude to build something — “create a React component for a login form” or “write a Python script that processes this CSV” — Claude creates the content in a panel that appears to the right of the conversation. The chat continues on the left; the Artifact lives on the right.

    From the Artifact panel you can: copy the content to your clipboard, download it as a file, preview rendered output (for HTML and React), and ask Claude follow-up questions that update the Artifact without starting over. “Make the button blue” or “add error handling to that function” updates the Artifact in place.

    Why Artifacts Are Useful

    The core problem they solve: when Claude outputs long code or a full document directly into chat, it buries the conversation and makes iteration awkward. You’re scrolling up to find what Claude wrote, copying it out, asking for changes, and scrolling up again. Artifacts keep the output in a fixed, workable location while the conversation continues normally.

    For longer sessions — building a multi-function script, iterating on a UI component, refining a report — Artifacts make the back-and-forth substantially cleaner.

    Enabling and Using Artifacts

    Artifacts are available in Claude.ai on Pro, Max, Team, and Enterprise plans. They may need to be enabled in Settings → Feature Preview depending on your account. Once enabled, Claude will automatically create Artifacts for appropriate content — you can also explicitly request one: “Create this as an Artifact” or “Put that in an Artifact panel.”

    Artifacts vs. Claude Code

    Artifacts are in-chat content generation — Claude produces something, it appears in a panel, you iterate via conversation. Claude Code is a terminal agent that operates autonomously inside your actual development environment — reading files, running tests, making commits. They serve different purposes: Artifacts are for in-session creation and prototyping; Claude Code is for real development work inside a codebase. See Claude Code pricing for details on that tier.

    Frequently Asked Questions

    What are Claude Artifacts?

    Claude Artifacts are a Claude.ai feature that displays generated content — code, HTML, React components, documents, diagrams — in a dedicated panel alongside the chat. They make it easier to view, iterate on, and copy longer outputs without cluttering the conversation.

    Are Claude Artifacts available on the free plan?

    Artifacts are primarily a feature of paid plans (Pro, Max, Team, Enterprise). Availability on the free tier may be limited or subject to change. Check Settings → Feature Preview in your account for current status.

    Can I download content from Claude Artifacts?

    Yes. From the Artifact panel you can copy the content to your clipboard or download it as a file, depending on the content type.

    Need this set up for your team?
    Talk to Will →