JM

Justin McKelvey

Fractional CTO · 15 years, 50+ products shipped

Vibe Code Rescue 7 min read Apr 15, 2026

Vibe Coding with Claude: How I Build Real Apps with Claude Code

TL;DR: Why Claude Code Is My Daily Driver

Claude Code is the best vibe coding tool for complex backend work, multi-file refactors, and any project where you need the AI to understand your entire codebase. I use it every day as a fractional CTO — building client projects in Rails, architecting APIs, writing test suites, and managing deployments. Unlike browser-based tools that generate apps from prompts, Claude Code works in your terminal alongside your actual codebase. It reads your files, runs your commands, and iterates on errors. As of April 2026, "claude vibe coding" gets 590 searches per month, and the tool has become essential infrastructure for professional developers.

This site you're reading right now was built with Claude Code. The blog posts, the content strategy, the SEO infrastructure, the admin interface — all developed using Claude Code as my primary tool, with Cursor for frontend work. Here's how I actually use it.

What Makes Claude Code Different from Every Other Tool

Most vibe coding tools work through a chat interface or browser IDE. You describe what you want, the tool generates code, and you copy it into your project. Claude Code eliminates the copy-paste entirely. It runs in your terminal, has direct access to your file system, and can execute commands — including running your tests, starting your dev server, and reading error output.

This means the feedback loop is fundamentally faster. Instead of "generate code → copy to file → run → see error → paste error back → get fix → copy to file," the loop is "describe what you want → Claude Code writes it, runs it, sees the error, and fixes it." The AI handles the iteration cycle that developers normally do manually.

The other critical difference is codebase awareness. Claude Code reads your existing files, understands your project structure, and generates code that matches your patterns. When I tell it "add a new model like the Contact model but for bookings," it reads my Contact model, sees my conventions (how I name scopes, how I structure validations, which test patterns I use), and produces code that looks like I wrote it.

My Daily Claude Code Workflows

Workflow 1: Feature Development in Rails

This is my most common workflow. I describe a feature in plain language, and Claude Code scaffolds the entire thing — model, migration, controller, views, routes, and tests. A typical prompt:

"Create a BookingType model with name, slug, duration_minutes, description, and active fields. Add a controller with CRUD actions under the admin namespace. Generate the admin views with the same Tailwind styling as the contacts views. Add model validations and tests."

Claude Code reads my existing admin controllers to match the pattern, generates everything, runs the migration, and verifies the tests pass. What would take 60-90 minutes manually takes 10-15 minutes. I review every file, accept 85-90% as-is, and tweak the rest.

Workflow 2: Complex Refactors

Refactoring across 20+ files is where Claude Code saves the most time relative to any other approach. "Extract the email sending logic from the Contact model, BookingConfirmation job, and FormSubmission handler into a unified Mailer service. Update all callers and their tests." Claude Code reads all the files involved, understands the dependencies, and makes coordinated changes across the entire codebase.

The key is being specific about what you want. Vague prompts like "clean up the mailer code" produce vague results. Specific prompts with clear before/after expectations produce exactly what you need.

Workflow 3: Test Writing

I have a rule: no feature ships without tests. Claude Code makes this rule practically free to follow. After building a feature, I say "write tests for the BookingsController. Test all CRUD actions, authentication requirements, validation errors, and edge cases like booking in the past or double-booking the same slot."

Claude Code reads the controller, understands the business logic, and generates comprehensive tests. The tests usually catch 2-3 edge cases I hadn't considered — which is the whole point of testing. I review the tests to make sure they're testing behavior, not implementation, then run them.

Workflow 4: Debugging from Error Messages

When a production error occurs, I paste the full stack trace into Claude Code. "This error is happening in production when users try to book a time slot. Here's the stack trace." Claude Code reads the relevant files, identifies the issue, and proposes a fix. For routine bugs (nil errors, missing validations, incorrect query logic), this works 80-90% of the time on the first attempt.

For complex bugs, Claude Code serves as a pair debugger. "I think the issue is a race condition in the booking availability check. Can you trace the flow from the controller action through the availability service and identify where concurrent requests could produce incorrect results?" Having an AI that can read your entire codebase and trace execution paths is like having a senior developer available 24/7 for rubber ducking.

Workflow 5: Database Architecture

Claude Code is exceptional at database design. "Design the schema for a lead nurture sequence system. Sequences have steps, steps can be email sends, waits, or conditions. Contacts can be enrolled in sequences and tracked through completion. Include the models, migrations, and associations."

The output is consistently well-normalized, properly indexed, and includes the associations and scopes that make the models usable. I've found that Claude's database design is better than what most mid-level developers produce — it naturally includes indexes on foreign keys, proper constraint definitions, and sensible default values.

When to Use Claude Code vs. Cursor

I use both tools daily. Here's how I divide the work:

Use Claude Code for: Multi-file refactors. Backend architecture. Database design. Test writing. Deployment configuration. Debugging from stack traces. Any task that requires reading 5+ files to understand context. Complex business logic. Infrastructure and DevOps.

Use Cursor for: Frontend development (seeing visual output matters). Single-file edits. Tab completions while typing. Quick inline changes. CSS and styling work. Any task where you want to see a visual diff before accepting.

Use both for: Full-stack feature development. Claude Code builds the backend (model, controller, service, tests); Cursor builds the frontend (views, Stimulus controllers, styling). This is my default workflow for client projects and it's the most productive combination I've found.

Claude Code Tips That Took Me Months to Learn

Use CLAUDE.md files. A CLAUDE.md file in your project root tells Claude Code about your project's conventions, tech stack, and preferences. This is the equivalent of Cursor's .cursorrules file. I include my tech stack, coding conventions, testing patterns, and common gotchas. The difference in output quality between a project with CLAUDE.md and without is dramatic.

Be specific about what you don't want. "Build a contact form" gives you a generic contact form. "Build a contact form using Turbo Frames, Stimulus for validation, Tailwind for styling, and NO JavaScript frameworks" gives you exactly what fits your project.

Use it for code review. "Review this pull request for security vulnerabilities, performance issues, and deviations from our coding conventions." Claude Code reads the diff, understands the context of the changes, and provides feedback that catches real issues — not just style nits.

Chain commands. "Run the tests, fix any failures, run the tests again, and repeat until they all pass." Claude Code will iterate autonomously through the test-fix cycle. I use this after large refactors where I expect some tests to break — it handles the mechanical fix-and-verify loop while I focus on reviewing the changes.

Don't use it for security-critical code. Same rule as every other AI tool: authentication, authorization, payment processing, and encryption should be written with full human attention. Use Claude Code to draft these sections, then review every line yourself. The cost of a security vulnerability in these areas is orders of magnitude higher than the time saved.

What Claude Code Costs in Practice

Claude Code uses your Anthropic API account with usage-based pricing. Here's what I actually spend across different usage patterns:

Light day (1-2 hours of coding): $1-3 in API usage. Quick edits, small features, test writing.

Heavy day (4-6 hours of intensive coding): $5-15 in API usage. Large refactors, new features, debugging sessions.

Monthly total for professional daily use: $30-50/month. This varies significantly based on how much context Claude Code needs to read (larger codebases cost more per interaction) and how many iterations a task requires.

Anthropic also offers Max subscription plans at $100/month and $200/month that include API credits and additional features. For heavy professional use, the Max plan can be more cost-effective than pure API usage.

At $30-50/month, Claude Code saves me 15-25 hours of development time per month. At my billing rate, that's a 50-100x ROI. Even for a developer billing at $50/hour, the time savings make it one of the most cost-effective professional tools available.

The Bottom Line

Claude Code isn't the flashiest vibe coding tool. It doesn't generate apps from a single prompt like Bolt. It doesn't have a visual editor like Cursor. It runs in a terminal and it requires you to know what you're doing. But for professional developers who want to ship faster without sacrificing code quality, it's the most powerful tool available in 2026.

The combination of Claude Code (backend) + Cursor (frontend) is my stack for every client project. If you're curious about the broader vibe coding landscape, start with our Best Vibe Coding Tools comparison or What Is Vibe Coding? guide.

If you're building with AI tools and need help getting to production, book a strategy call. I'll review your codebase and tell you what's ready to ship and what needs work.

Frequently Asked Questions

Can you vibe code with Claude?

Yes. Claude Code is Anthropic's terminal-based coding agent that can create files, run commands, execute tests, and iterate on errors autonomously. It's one of the best vibe coding tools for developers, especially for backend work, complex refactors, and multi-file changes. It costs $5-50/month based on API usage.

Is Claude Code better than Cursor for vibe coding?

They're complementary, not competing. Claude Code excels at backend architecture, complex refactors, and terminal-based workflows. Cursor excels at frontend development, visual editing, and IDE-integrated coding. Many developers use both — Claude Code for backend, Cursor for frontend.

How much does Claude Code cost?

Claude Code uses your Anthropic API account with usage-based pricing. Light use costs $5-10/month. Moderate daily use costs $15-30/month. Heavy professional use can reach $30-50/month. There's also a Max subscription plan at $100/month or $200/month for heavier usage with included credits.

What programming languages does Claude Code support?

Claude Code works with any programming language since it operates through the terminal and file system. It's particularly strong with Python, JavaScript/TypeScript, Ruby, Go, and Rust. It understands frameworks like Rails, Django, Next.js, FastAPI, and Express deeply enough to generate idiomatic, production-quality code.

Can non-developers use Claude Code?

Claude Code requires comfort with the terminal and basic understanding of file systems and code structure. It's not designed for non-developers — use Bolt or Lovable instead. Claude Code is for developers who want to work faster, not for non-technical users who want to avoid code entirely.

What can you build with Claude Code?

Claude Code can build APIs, backend services, CLI tools, database schemas, test suites, deployment configurations, and full-stack web applications. It excels at complex, multi-file changes that require understanding how different parts of a codebase interact. I use it daily for client projects ranging from Rails apps to Python data pipelines.

If this was useful, here are two ways I can help: