CLAUDE LABJP
FORK — Claude Code 2.1.212 changes what /fork does: it copies your conversation into a new background session with its own row in claude agents, so you can keep working. The old in-session subagent is now /subtaskLIMITS — WebSearch calls are now capped at 200 per session by default, and subagent spawns get the same 200 ceiling, so a runaway search or delegation loop stops on its ownMCPBG — MCP tool calls running past two minutes now move to the background automatically, keeping the session usable. Tune the threshold with CLAUDE_CODE_MCP_AUTO_BACKGROUND_MSPLANFIX — Fixed plan mode auto-running file-modifying Bash commands such as touch and rm without a permission prompt or an SDK canUseTool callbackSONNET5 — Claude Sonnet 5 is running on introductory pricing of $2 per million input tokens and $10 per million output. After August 31 it moves to $3 and $15IPO — Bankers are reportedly lining up investor meetings for Anthropic ahead of a possible public listing as soon as OctoberFORK — Claude Code 2.1.212 changes what /fork does: it copies your conversation into a new background session with its own row in claude agents, so you can keep working. The old in-session subagent is now /subtaskLIMITS — WebSearch calls are now capped at 200 per session by default, and subagent spawns get the same 200 ceiling, so a runaway search or delegation loop stops on its ownMCPBG — MCP tool calls running past two minutes now move to the background automatically, keeping the session usable. Tune the threshold with CLAUDE_CODE_MCP_AUTO_BACKGROUND_MSPLANFIX — Fixed plan mode auto-running file-modifying Bash commands such as touch and rm without a permission prompt or an SDK canUseTool callbackSONNET5 — Claude Sonnet 5 is running on introductory pricing of $2 per million input tokens and $10 per million output. After August 31 it moves to $3 and $15IPO — Bankers are reportedly lining up investor meetings for Anthropic ahead of a possible public listing as soon as October
Back to Blog

Claude Lab — May 2026 in Review: Quiet Maintenance Notes from Year 12 of Indie Development

monthly-roundupclaude-codeclaude-in-chromeadmobindie-developer2026

I'm sitting at my usual desk on the last working day of May, reading back through what we shipped on Claude Lab this month. May was not "the month we chased a flashy new release." It was the month we quietly tightened the seams of our own app business and the publishing pipeline running next to it. I'm Masaki Hirokawa, artist and indie developer. Thank you for reading along this month.

Twelve years in to running a personal app business — the one that crossed the fifty-million-download mark some time back — I notice I'm choosing slow maintenance over showy new features more and more often. Having Claude as a working partner has visibly raised the speed of that slow maintenance. This recap follows that same grain.

The month's theme: bringing four wallpaper apps back into shape

Through the first half of May, I was running four iOS wallpaper apps (Beautiful HD Wallpapers, Ukiyo-e Wallpapers, Law of Attraction Everyday, Relaxing Healing) through StoreKit 2 migration, Firebase Apple SDK's CocoaPods-to-SPM move, and a full AdMob mediation rework — all in parallel. "In parallel" sounds neat. In practice, it meant one person holding four titles' worth of dSYMs, release notes, and tax forms at the same time.

That's the backdrop for Running StoreKit 2 Migration Across Four iOS Wallpaper Apps with Claude Code — May 2026 Field Notes. Rewriting from the SKPayment era to Transaction.currentEntitlements async sequences is one thing; doing it four times in a row means you need a structure that prevents you from making the same mistake four times. The piece is a record of how I landed on a workflow where Claude Code produced a shared diff patch and I only touched each app's specific exceptions by hand.

On the Android side, dropping in Glide 5.0.5 immediately broke Android 6.0.1 devices with NoClassDefFoundError: java.util.function.Supplier — a category of landmine I genuinely hadn't stepped on in twelve years. I wrote about it in Killing a Glide 5.0.5 Java 8 API Crash with One Line via Claude Code, and the fix turned out to be a single line: coreLibraryDesugaringEnabled true. Claude Code went back and forth between the Crashlytics stack trace and the AGP 9.x release notes, and on a morning when I was tired, it played the role of someone who calmly says "here's the repro condition, here are the candidate fixes."

The longer-form story is Debugging Crashlytics for a 50M-Download App with Claude Code: An 11-Day Implementation Log. It tracks the eleven days I spent slowly chasing a RecyclerView IndexOutOfBoundsException. The honest takeaway: the unglamorous fix — a few lines of defensive copy, plus checking it every morning — was the fastest path through.

Around AdMob, the operation shifted to "see the whole picture in the morning"

On monetization, May was the month we restructured AdMob mediation across all four apps. Adding Three AdMob Mediation Partners with Claude — Four Apps in Parallel, and What W-8BEN and eCPM Actually Tested is the field report from adding Liftoff, InMobi, and Unity Ads, written all the way down to the order of tax-form submissions. The real bottleneck across four apps in parallel turned out to be each mediation partner's payment-profile setup. I had Claude alternate between English W-8BEN explanations and Japanese internal-note summaries, and the whole thing closed in a single day.

Once that settled, I started using Claude in Chrome to walk through the AdMob console for me every morning. Two Weeks of Catching AdMob Fill-Rate Dips at Morning Standup — Claude in Chrome Field Notes is the story of switching to a workflow where, within ten minutes of opening my desk, I can tell whether a fill-rate dip is structural or just noise. Alongside that, Three Weeks of Letting Claude in Chrome Run My Android Vitals Weekly Review and A Month of Running AppLovin MAX A/B Test Reviews Through Claude in Chrome settled into the routine, and even on days I never open the consoles myself, the mornings where numbers slip are no longer mornings I miss.

A Daily Pipeline for Aggregating App Store Connect and AdMob Revenue with Claude Code is the quietest foundation under all of this: four apps × seven countries × multiple ad sources, viewed side by side every morning. Sustaining peak AdMob revenue, I've come to feel, depends less on flashy campaigns than on the habit of looking at the same numbers from the same angle every day.

We deepened Claude Code operations another notch

On the development-infrastructure side, May was heavy on "designs that keep working long after they start working."

Quality Gate Design from Seven Months of Running a Four-Site Auto-Publishing Pipeline on Claude Code + GitHub Actions is the record of how, running Claude Lab, Gemini Lab, Antigravity Lab, and Rork Lab side by side, we slowly distilled the failure modes and recovery points into a Python quality gate called article_gate.py. The split that took seven months to articulate: which violations to block at generation (template intros, thin word counts, missing personalization) and which to catch just before push (broken internal links, JA/EN count mismatches).

In a similar vein, Rebuilding for 5,000 Articles on the Morning We Hit Cloudflare Workers' 62 MiB Limit — A Content Split Architecture got a lot of reads. Carrying HTML inside articles.json is peaceful up to about 3,000 articles; cross 5,000 and the whole thing breaks at once. I wrote up the morning we split HTML into public/content/ and started serving it through the ASSETS binding, with the actual back-and-forth with Claude Code preserved. "Make something work" and "make it grow without breaking" are different problems — and I learned that one with my head, not my notes.

Skills, subagents, and rules are now four months into real operation, and the picture is clearer. Combining Claude Code's Skill, Subagents, and Rules to Spin Up a Project in Under an Hour — A Pattern for Indie Operations and Three Design Patterns for Passing State Between Subagents — Lessons from Four Months of Blog Auto-Generation are two pieces written off the parts of my own production runs that actually hurt, not off design theory. Reading them back, the resolution is at a level I genuinely couldn't have hit six months ago.

In the API & SDK category, A Month-End Forecasting Guide for Claude API Token Costs captures the operating pattern of "keep an eye on the bill so it never quietly spikes." Costs aren't a thrilling topic, but if you intend to run an indie business in decade-long arcs, this is a number to keep quietly in your peripheral vision every month.

Industry news centered on the Anthropic IPO

On the news side, Anthropic IPO May 2026: What Developers and Individual Investors Should Know Now was the month's opening piece. For people on the platform side, an IPO can feel far away — but API pricing roadmaps, free-tier shape, and enterprise contract terms all eventually trickle down into an indie developer's revenue structure. It feels like the right month to start asking "how much do we lean on Anthropic, and what do we keep in our own hands."

The models themselves matured along parallel tracks: Claude on Xcode, Claude in Chrome, and Cowork's Computer Use each grew up independently. Pieces like Semi-Automating Firebase SDK Updates with Claude on Xcode — Implementation Notes Across Six Indie iOS Apps show that an IDE with Claude inside it is now ordinarily useful even at the six-app indie scale.

Three quiet adjustments that worked

To close, three small adjustments that worked across the whole month.

The first: handing the morning round through Crashlytics and AdMob over to Claude in Chrome as a fixed routine. The shift from "look when I feel like it" to "always look in the morning" pulled my time-to-notice on fill-rate dips and new crashes earlier by an average of six to ten hours.

The second: inserting a Python quality gate into the four-site, four-articles-per-day pipeline. Claude's drafts are "fine but thin" surprisingly often, and judging on word count alone invites padding. Once we required at least three utility signals (code, metrics, structured procedure, implementation insight, domain terms…), only pieces I'm happy to reread survived.

The third: doing "make it work" and "make it keep working" on different days. Get something running with Claude Code the same day and the joy of it pushes long-term maintenance off your to-do list. Looking back across the month, the days where I sat down with Claude separately to harden a piece were the days that paid me back later.

Questions I'm carrying into June

A few questions I'm holding for next month.

First, how far do I overlap Claude on Xcode and Claude in Chrome? Using both daily, the line between their jobs is starting to blur. I want to put my own usage split into words over the next month.

Second, how do we grow the premium articles across four sites? May shipped 48 premium pieces; from here, I want to look more carefully at the difference between "articles people keep coming back to" and "articles that are consumed once."

And finally, before I enter year 13 of indie development, I want to document the operation itself — the one where Claude is in the loop. Getting to a state where "even if I'm not here today, tomorrow's articles ship at the same quality" is the goal I'd like to reach at the folder level first.

Thank you to everyone who read along in May. I'll be at this same desk next month, keeping the quiet record going. If you're someone making things alone, over long stretches, I hope you find a fragment here worth taking with you.