My Claude Code Setup
After several months working with Claude Code daily, here are the tips and configuration choices that made the biggest difference in my development workflow as a full stack engineer.
The setup is what makes it feel like it knows your project, respects your conventions, and works the way you think. Below are the things I've settled on after a lot of trial and error — the configuration choices, tools, and habits that made the biggest difference.
/init
When you run /init, Claude Code analyzes your entire project and generates a CLAUDE.md file. This file acts as persistent context — every time you start a conversation, Claude reads it first to understand your project's overview, architecture, conventions, commands, and setup.
- Keep it updated. You can ask the same Claude Code agent to update it after important changes.
- Customize it to your needs. Add conventions, restrictions, and preferred patterns — include examples whenever you can.
Plan Mode
Before jumping into implementation, I almost always start with Plan Mode (shift+tab to toggle). It tells Claude to think through the problem first — analyze the codebase, outline the approach, and surface potential issues — without writing or modifying any code.
- Use it for anything non-trivial: new features, refactors, migrations, or debugging something you don't fully understand yet.
- It's especially useful when a task touches multiple files or systems. Plan Mode will map out the changes before committing to an approach, which saves you from going down the wrong path.
- I often iterate on the plan two or three times before switching back to implementation mode. The result is cleaner code and fewer wasted cycles.
- It also works well as a second opinion. Describe what you're thinking and ask Claude to poke holes in it — you'll catch edge cases early.
MCPs
Model Context Protocol, in simple words, gives your agent the ability to connect to external tools like GitHub, Gmail, or Slack and interact with their APIs directly from the conversation.
- Browse available MCPs here: mcpmarket.com.
- I recommend sticking to official MCP servers supported by Claude Code — they're tested and trusted by the Anthropic team. ⚠️ Community MCPs are written by third-party developers, which exposes you to prompt injection risk. That means a malicious server could include hidden instructions that extract credentials or sensitive information from your tools.
- Here are my favorite MCPs right now:
- Context7 — Fetches up-to-date documentation for any library or framework and injects it directly into the conversation. Instead of Claude hallucinating an outdated API, it pulls the real docs. This alone has saved me hours of debugging wrong suggestions.
- Chrome DevTools — Gives Claude direct access to inspect the browser — read console errors, check network requests, and examine the DOM. When something breaks in the UI, I just tell Claude to look at the page instead of copy-pasting errors manually.
- Postgres — Connects Claude to your database so it can run queries, inspect schemas, and understand your data model. Incredibly useful when writing migrations or debugging data-related bugs — Claude can check the actual state of the data instead of guessing.
- GitHub — Lets Claude interact with GitHub directly: create branches, open pull requests, review diffs, and manage issues. I use it to push changes and create PRs without leaving the terminal.
- Supabase — Goes beyond raw Postgres access. Claude can manage storage buckets, edge functions, auth policies, and RLS rules through the Supabase API. If your backend runs on Supabase, this turns Claude into a full-stack collaborator.
- Figma — Reads your Figma designs and translates them into code. I point Claude at a frame and it generates the component with the right layout, spacing, and styles. Not pixel-perfect every time, but it gets you 80% there in seconds.
Agent Skills
Skills are markdown files that tell Claude Code how to handle specific types of tasks. Think of them as reusable instructions you write once and apply automatically.
- Skills are loaded dynamically at runtime, so they don't bloat your context window. Check this article for more details on how it works.
- Look for skills here:
- skills.sh — ⚠️ This site doesn't filter submissions. Anyone can publish, so always check the developer and their repository before installing.
- awesome-claude-skills
- Here are my favorite Skills right now:
- Design — Web Design Guidelines + Interface Design
- Frontend Development — Vercel React Best Practices
- SEO & Positioning — SEO Audit
- Planning — Brainstorming
Plugins
Plugins are bundled sets of MCPs + Skills, ready to install. You can run /plugins to discover and install them.
- Personally I don't use them. I prefer to hand-pick my own set of MCPs and Skills for each project — it keeps things lean and predictable.
Sonnet vs Opus Models
Claude Code lets you switch between Sonnet and Opus mid-conversation. I use both, but for very different things.
- Opus is my go-to for planning, architecture decisions, and complex reasoning. When I need to think through a tricky TypeScript pattern, evaluate trade-offs between approaches, or debug something subtle, Opus gets it right more often. The quality difference is noticeable on hard problems.
- Sonnet is what I switch to once the direction is clear. It's faster, cheaper, and more than capable for well-defined implementation tasks — writing components, adding endpoints, refactoring code that already has a clear structure.
- My general rule: Opus to think, Sonnet to build. Start a task with Opus to get the plan and architecture right, then switch to Sonnet for execution. You'll save time and tokens without sacrificing quality where it matters.
- Use
/modelto switch models on the fly. It takes a second and the context carries over.
