<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ethan</title>
    <description>The latest articles on DEV Community by Ethan (@ethan0506).</description>
    <link>https://dev.to/ethan0506</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3993780%2Ff91e7e83-1fab-44f9-b1a9-d777a5ff6d86.png</url>
      <title>DEV Community: Ethan</title>
      <link>https://dev.to/ethan0506</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ethan0506"/>
    <language>en</language>
    <item>
      <title>I Spent $8,857 Using Claude Code to Build 6 Projects. Here's What I Learned.</title>
      <dc:creator>Ethan</dc:creator>
      <pubDate>Sat, 20 Jun 2026 08:30:37 +0000</pubDate>
      <link>https://dev.to/ethan0506/i-spent-8857-using-claude-code-to-build-6-projects-heres-what-i-learned-2hoj</link>
      <guid>https://dev.to/ethan0506/i-spent-8857-using-claude-code-to-build-6-projects-heres-what-i-learned-2hoj</guid>
      <description>&lt;h1&gt;
  
  
  I Spent $8,857 Using Claude Code to Build 6 Projects. Here's What I Learned.
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;Not a sales pitch. I just noticed there's almost no deep-use experience with Claude Code on Dev.to or Reddit — mostly "look I built a todo app" posts. After burning through nearly nine grand, I have some real data to share.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  The Numbers
&lt;/h2&gt;

&lt;p&gt;14 days. &lt;strong&gt;$8,857.62&lt;/strong&gt;. &lt;strong&gt;3.884 billion tokens&lt;/strong&gt;. &lt;strong&gt;47,235 API requests&lt;/strong&gt;. All on Claude Opus 4.8 (1M context window).&lt;/p&gt;

&lt;p&gt;You probably think I'm insane. Honestly, when I saw the bill after week one, I panicked a little too. But here's the math: I was pushing 6 projects simultaneously, 2 of which were full-stack production apps. At freelance rates of $150/hr, these projects represent 4-5 weeks of work.&lt;/p&gt;

&lt;p&gt;The spending wasn't linear. First 3 days cost about $800 — still figuring out how to use the tool effectively. Two peak days hit $800+ each — June 18 alone was &lt;strong&gt;$828.74&lt;/strong&gt;, running security hardening on a SaaS app and debugging a video pipeline in parallel. The last few days dropped to ~$300/day, because once the configuration was dialed in, back-and-forth conversations dropped dramatically.&lt;/p&gt;

&lt;p&gt;Here's the rough breakdown by project:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Project&lt;/th&gt;
&lt;th&gt;Approx. Cost&lt;/th&gt;
&lt;th&gt;Complexity&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;LightCraft V2 (image-to-video SaaS)&lt;/td&gt;
&lt;td&gt;~$4,200&lt;/td&gt;
&lt;td&gt;Full-stack + payments + security&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI news video pipeline&lt;/td&gt;
&lt;td&gt;~$1,800&lt;/td&gt;
&lt;td&gt;Multi-API orchestration + automation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NZ WHV visa slot grabber&lt;/td&gt;
&lt;td&gt;~$1,100&lt;/td&gt;
&lt;td&gt;Playwright + anti-detection&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Psychology quiz app (sbti2)&lt;/td&gt;
&lt;td&gt;~$600&lt;/td&gt;
&lt;td&gt;Frontend + animations + charts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Developer tutorial/guide&lt;/td&gt;
&lt;td&gt;~$500&lt;/td&gt;
&lt;td&gt;Documentation + scripts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;img2video-demo&lt;/td&gt;
&lt;td&gt;~$400&lt;/td&gt;
&lt;td&gt;Simple API wrapper&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;A counterintuitive truth: caching is where all the tokens go.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Most people assume tokens are split between "input + output." Wrong. Look at my actual billing structure:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;Tokens&lt;/th&gt;
&lt;th&gt;What It Is&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;New input&lt;/td&gt;
&lt;td&gt;29.01M&lt;/td&gt;
&lt;td&gt;Content actually read for the first time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Output&lt;/td&gt;
&lt;td&gt;34.57M&lt;/td&gt;
&lt;td&gt;Content Claude generated&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cache writes&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;1.322B&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;First-time reads of large files / long context&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cache hits&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;2.499B&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Reusing cached context (10x cheaper)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Cache hit rate: &lt;strong&gt;86.4%&lt;/strong&gt;. This means the vast majority of my 3.8B tokens were repeatedly reading the same context — project files, CLAUDE.md, conversation history. &lt;strong&gt;Cache hit tokens cost 1/10th of new input tokens.&lt;/strong&gt; Without caching, this bill would be several times higher.&lt;/p&gt;

&lt;p&gt;This is why the gap between "knows what they're doing" and "winging it" can be 5x in cost — skilled users keep cache hit rates high, while careless users thrash the context and invalidate the cache every few turns. (How to maximize cache hits is covered in depth in Module 2 of the manual.)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What does a single request actually cost?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I pulled some line items from my billing detail. Same model, Opus 4.8:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;212 input tokens, 1,397 output tokens = &lt;strong&gt;$1.91&lt;/strong&gt;, took 104 seconds&lt;/li&gt;
&lt;li&gt;514 input tokens, 7 output tokens (a simple confirmation) = &lt;strong&gt;$0.45&lt;/strong&gt;, took 2 seconds&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;See the pattern? &lt;strong&gt;Output tokens cost 5x more than input&lt;/strong&gt; (Opus 4.8: $15/M input, $75/M output). So getting Claude to skip the explanations and just write code saves real money — a 2,000-line response with verbose commentary costs several times more than 500 lines of clean code. That's why my CLAUDE.md explicitly says "be concise, don't explain things you weren't asked about."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Opus 4.8 instead of Sonnet?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Simple rule: if the task would take me more than 2 hours of thinking time to do myself, use Opus. If it's grunt work (batch file changes, adding comments, writing tests), Sonnet is fine.&lt;/p&gt;

&lt;p&gt;Opus is noticeably better at architectural decisions. For example, LightCraft's multi-engine failover — when Runway's API times out, automatically switch to Kling while ensuring credits are only deducted once — that kind of design involving state management and edge cases, Opus nails it on the first try. Sonnet might need 2-3 rounds of corrections.&lt;/p&gt;

&lt;p&gt;But Sonnet has better cost-efficiency on simple tasks. My workflow now is to configure two profiles in &lt;code&gt;settings.json&lt;/code&gt; and switch based on task complexity.&lt;/p&gt;




&lt;h2&gt;
  
  
  6 Projects: What Was Worth It, What Wasn't
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. LightCraft V2 (Image-to-Video SaaS) — Worth It
&lt;/h3&gt;

&lt;p&gt;The most expensive project, and the highest ROI. A complete Next.js full-stack app: user auth, credit top-ups, video generation, security hardening.&lt;/p&gt;

&lt;p&gt;Several areas where Claude's output was better than what I'd write myself:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OWASP security hardening (CSRF tokens, rate limiting, input sanitization)&lt;/li&gt;
&lt;li&gt;Credit system transaction consistency (deducting credits and creating tasks must be atomic)&lt;/li&gt;
&lt;li&gt;Multi-engine failover logic (Runway → Kling → Veo fallback chain)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Conservative estimate: saved 3 weeks of development time. The concurrent credit deduction problem alone would've taken me days to get right.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Psychology Quiz App (sbti2) — Worth It
&lt;/h3&gt;

&lt;p&gt;4 hours from zero to deployed. Includes Framer Motion page transitions, radar chart visualization, QR code sharing. This kind of "small but polished" project is Claude Code's sweet spot — clear requirements, well-defined scope, done in an afternoon. My entire prompt was one sentence: "Build a psychology assessment app where users answer questions and see a radar chart with detailed analysis, with screenshot sharing support." It chose the tech stack, scaffolded the project, and wrote all the code. I only changed the color scheme twice.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. AI News Video Pipeline — Worth It
&lt;/h3&gt;

&lt;p&gt;This project has the most lasting ROI. Claude helped me build an automation pipeline: RSS news scraping → LLM rewrites into voiceover scripts → TTS audio generation → auto-matched visuals → FFmpeg video assembly. Now producing a daily tech news brief takes 30 minutes of human involvement, mostly spent reviewing content quality rather than technical operations.&lt;/p&gt;

&lt;p&gt;One detail worth mentioning: if a video covers a specific product, it must include real product footage — no faking it with text cards. Claude wrote the YouTube video download + clip extraction logic, and if the download fails, it stops production on that video entirely instead of quietly substituting a placeholder image. This "nothing rather than something fake" logic was explicitly specified in my CLAUDE.md.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. NZ WHV Visa Slot Grabber — Half Worth It, Half Not
&lt;/h3&gt;

&lt;p&gt;The Playwright automation was clean: auto-filling forms, CAPTCHA wait logic, retry mechanisms, even network timeout recovery with checkpoint resumption. But New Zealand Immigration uses ASP.NET Web Forms with &lt;code&gt;__VIEWSTATE&lt;/code&gt; and &lt;code&gt;__EVENTVALIDATION&lt;/code&gt; hidden fields that change on every form submission. Claude's first version hardcoded these values — instant 500 errors. After I pointed this out, it switched to dynamic parsing, but then stumbled on multi-step form state management. Took 5-6 rounds to stabilize.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lesson: the older and more obscure the tech stack, the more mistakes Claude makes.&lt;/strong&gt; Its training data has far more React docs than ASP.NET Web Forms. If your project involves legacy tech, expect 30-50% more debugging time.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Developer Tutorial — Worth It, With Caveats
&lt;/h3&gt;

&lt;p&gt;Claude has a habit of over-explaining when writing documentation. A simple &lt;code&gt;export https_proxy=http://127.0.0.1:7890&lt;/code&gt; command gets 200 words of background context. I had to repeatedly emphasize "be concise" in CLAUDE.md to keep the word count under control.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. img2video-demo — Not Really Worth It
&lt;/h3&gt;

&lt;p&gt;Just calling an API, displaying results, handling errors. For this level of complexity, writing it yourself is probably faster — the time spent describing requirements to Claude is already enough to write the code yourself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bottom line: Claude Code's sweet spot is "medium complexity + clear requirements." Too simple and it's not worth the overhead. Too complex and it loses control.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What Free Tutorials All Miss
&lt;/h2&gt;

&lt;p&gt;90% of Claude Code tutorials online cover installation and basic usage. "How to install," "how to chat," "how to make it edit code" — you can pick this up in 5 minutes without a tutorial.&lt;/p&gt;

&lt;p&gt;What actually separates productive users from the rest is &lt;strong&gt;configuration&lt;/strong&gt;, and almost nobody covers this properly.&lt;/p&gt;

&lt;h3&gt;
  
  
  settings.json Accounts for 80% of the Productivity Gap
&lt;/h3&gt;

&lt;p&gt;For example, most people don't know you can set &lt;code&gt;effortLevel&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;~/.claude/settings.json&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"preferences"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"effortLevel"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"xhigh"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then there's permission configuration. By default, Claude asks for confirmation every time it runs a shell command. If you're on your own dev machine, you can allowlist common commands:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"permissions"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"allow"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="s2"&gt;"Bash(npm run *)"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="s2"&gt;"Bash(git status)"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="s2"&gt;"Bash(git diff *)"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="s2"&gt;"Bash(ls *)"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This one config change alone cuts interaction interruptions by 50%+.&lt;/p&gt;

&lt;h3&gt;
  
  
  CLAUDE.md Isn't Just "Please Use TypeScript"
&lt;/h3&gt;

&lt;p&gt;My CLAUDE.md is nearly 80 lines. The most important part isn't the tech stack declaration — it's the &lt;strong&gt;behavioral constraints&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gu"&gt;## Coding Principles&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; If 200 lines of code can be written in 50, rewrite it
&lt;span class="p"&gt;-&lt;/span&gt; Don't add features beyond what was requested
&lt;span class="p"&gt;-&lt;/span&gt; Don't create abstractions for one-off code
&lt;span class="p"&gt;-&lt;/span&gt; Read related code before modifying — understand context first
&lt;span class="p"&gt;-&lt;/span&gt; Every line changed must trace directly to the user's request
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Without these constraints, Claude will bolt on things you never asked for: config file managers, custom exception hierarchies, over-abstracted factory patterns...&lt;/p&gt;

&lt;h3&gt;
  
  
  The Hooks System Is Almost Never Discussed
&lt;/h3&gt;

&lt;p&gt;Claude Code has a hooks mechanism (&lt;code&gt;PreToolUse&lt;/code&gt;, &lt;code&gt;PostToolUse&lt;/code&gt;, &lt;code&gt;Notification&lt;/code&gt;, etc.) that runs scripts automatically before or after specific operations. For example, I configured a &lt;code&gt;PostToolUse&lt;/code&gt; hook that auto-runs &lt;code&gt;eslint --fix&lt;/code&gt; after Claude edits a frontend component file — saves me from repeatedly reminding it to fix formatting. You can also use &lt;code&gt;PreToolUse&lt;/code&gt; to intercept dangerous operations, like blocking it from deleting directories outside &lt;code&gt;node_modules&lt;/code&gt;. Once this system is configured, a lot of repetitive checking and formatting happens automatically. But the official docs cover it in just a few paragraphs — most configuration patterns you have to figure out by reading source code or trial and error.&lt;/p&gt;




&lt;h2&gt;
  
  
  5 Hard-Won Lessons
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Lesson 1: Setting effortLevel to xhigh Changes Everything
&lt;/h3&gt;

&lt;p&gt;At the default effort level, Claude tends toward "it compiles, ship it" code. Set it to &lt;code&gt;xhigh&lt;/code&gt; and it proactively considers edge cases, writes more complete error handling, and even adds comments explaining design decisions.&lt;/p&gt;

&lt;p&gt;Yes, each request costs more. But code that's right on the first try vs. code that needs 5 rounds of fixes — &lt;code&gt;xhigh&lt;/code&gt; is actually cheaper in total. I had an API route that took 4 rounds at default effort, each round a half-baked fix. After switching to &lt;code&gt;xhigh&lt;/code&gt;, similar tasks were consistently done in one round.&lt;/p&gt;

&lt;h3&gt;
  
  
  Lesson 2: "Don't Over-Engineer" in CLAUDE.md Is Worth More Than Anything
&lt;/h3&gt;

&lt;p&gt;Claude has over-engineering in its DNA. Whatever you ask for, it wants to add abstraction layers. You want a simple API call, it gives you a strategy pattern + dependency injection + custom exception hierarchy.&lt;/p&gt;

&lt;p&gt;After adding this to CLAUDE.md:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Don't add features beyond what was requested
Don't create abstractions for one-off code
Don't add "flexibility" or "configurability" that wasn't asked for
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Code quality went up a level. Not by becoming more complex — by becoming simpler.&lt;/p&gt;

&lt;h3&gt;
  
  
  Lesson 3: Honeypot Anti-Bot Fields Will Block Real Users
&lt;/h3&gt;

&lt;p&gt;When building login security for LightCraft, Claude suggested adding a honeypot field — a CSS-hidden form field that humans can't see and won't fill in, but bots will auto-fill, flagging them as bots.&lt;/p&gt;

&lt;p&gt;Logically perfect.&lt;/p&gt;

&lt;p&gt;But after deploying, I discovered that 1Password, Bitwarden, and other password managers also auto-fill hidden fields. Real users were getting blocked as bots.&lt;/p&gt;

&lt;p&gt;Claude won't warn you about this, because it doesn't know your users use password managers. &lt;strong&gt;AI-generated code can be logically correct but fail in real user scenarios.&lt;/strong&gt; You must do your own scenario testing.&lt;/p&gt;

&lt;h3&gt;
  
  
  Lesson 4: Don't Be Too Generous With Daily Rewards
&lt;/h3&gt;

&lt;p&gt;This one isn't about code — it's about product design.&lt;/p&gt;

&lt;p&gt;When designing the credit system, I had Claude implement "10 credits per daily check-in." That's 300 credits per month. But the paid Pro plan only gave 200 credits/month.&lt;/p&gt;

&lt;p&gt;Free users were getting more than paying customers.&lt;/p&gt;

&lt;p&gt;Claude won't question your business logic. You say daily reward is 10, it writes &lt;code&gt;dailyReward: 10&lt;/code&gt;. It won't speak up and say "why would anyone pay then?"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Product design is your job. Claude just implements.&lt;/strong&gt; I later adjusted check-in to 3 credits/day and Pro to 400/month. Then the model worked.&lt;/p&gt;

&lt;h3&gt;
  
  
  Lesson 5: Platform Rules Are AI's Blind Spot
&lt;/h3&gt;

&lt;p&gt;Here's a very specific gotcha: when integrating a cloud SMS service, Claude used the standard SMS API. Code was textbook. But my account type couldn't send marketing SMS — that's a platform policy restriction, not a technical issue.&lt;/p&gt;

&lt;p&gt;Claude doesn't know about these restrictions. It only knows how to call APIs, not whether your account is authorized to call them. &lt;strong&gt;Platform policies, terms of service, and account-level restrictions are blind spots for AI — especially third-party service APIs with tiered access.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Always verify your account permissions and service quotas before letting Claude write integration code. A perfectly-written API call that your account can't execute is wasted work.&lt;/p&gt;




&lt;h2&gt;
  
  
  Was It Worth $8,857?
&lt;/h2&gt;

&lt;p&gt;Honestly, the answer depends on where you are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;If you're just curious&lt;/strong&gt;: No. Use the free tier, or run Sonnet for small tasks. Don't start with Opus — that's pure money burn.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;If you're seriously building something with a ship date&lt;/strong&gt;: Yes. $8,857 bought back at least 4 weeks of full-stack development time. The security hardening, transaction consistency, and failover code Claude wrote is better quality than what I'd produce under deadline pressure.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;If you know how to configure it&lt;/strong&gt;: ROI doubles. Same model, same Opus — a configured user vs. an unconfigured user, productivity gap is 2-3x. Someone with a properly tuned CLAUDE.md and settings.json could probably hit my $8,857 output level for ~$3,000 — because a big chunk of my first $2,000+ was burned during the "teaching Claude how to work with me" phase.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The limiting factor isn't the model's capability. Opus 4.8 is genuinely powerful. But if you don't configure &lt;code&gt;settings.json&lt;/code&gt;, don't write a real CLAUDE.md, don't know when to switch to Sonnet, and don't understand how hooks can eliminate repetitive manual checks — you're just burning money. The tool's ceiling is determined by the user's configuration skill, and nowhere is this more obvious than with Claude Code.&lt;/p&gt;




&lt;h2&gt;
  
  
  A Free Gift
&lt;/h2&gt;

&lt;p&gt;Here's the core CLAUDE.md template I actually use, copy-paste ready:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# Project Name&lt;/span&gt;

&lt;span class="gu"&gt;## Coding Principles&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; If 200 lines of code can be written in 50, rewrite it
&lt;span class="p"&gt;-&lt;/span&gt; Don't add features beyond what was requested
&lt;span class="p"&gt;-&lt;/span&gt; Don't create abstractions for one-off code
&lt;span class="p"&gt;-&lt;/span&gt; Every line changed must trace directly to the user's request
&lt;span class="p"&gt;-&lt;/span&gt; After making changes, explain what changed and why

&lt;span class="gu"&gt;## Tech Stack&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Next.js 16 + React 19 + TypeScript
&lt;span class="p"&gt;-&lt;/span&gt; Tailwind CSS 4
&lt;span class="p"&gt;-&lt;/span&gt; Prisma + SQLite
&lt;span class="p"&gt;-&lt;/span&gt; Deploy: Vercel

&lt;span class="gu"&gt;## Don'ts&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Don't "improve" adjacent code, comments, or formatting
&lt;span class="p"&gt;-&lt;/span&gt; Don't refactor things that aren't broken
&lt;span class="p"&gt;-&lt;/span&gt; Don't add error handling for scenarios that can't happen
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And a starter &lt;code&gt;settings.json&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"preferences"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"effortLevel"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"xhigh"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"permissions"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"allow"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="s2"&gt;"Bash(npm run *)"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="s2"&gt;"Bash(git status)"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="s2"&gt;"Bash(git diff *)"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="s2"&gt;"Bash(ls *)"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="s2"&gt;"Bash(cat *)"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;The full configuration deep-dive, 5 settings.json templates, 8 cheat sheets, and architectural breakdowns of all 6 projects are in &lt;a href="https://jyhcraft4.gumroad.com/l/vgxmzs" rel="noopener noreferrer"&gt;The Claude Code Field Manual&lt;/a&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;/blockquote&gt;

</description>
      <category>ai</category>
      <category>claude</category>
      <category>llm</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
