All Articles
Localizing App Store Keyword Fields with Gemini 2.5 Flash — A Month of Notes Across 40 Apps
Operational notes from a month of using Gemini 2.5 Flash to draft the 100-character App Store keyword field across 40 wallpaper apps and several locales — CJK byte counting, deduping against the title, prohibited terms, and what actually moved the needle.
The Day You Switch Gemini Embedding Models: Designing a Zero-Downtime Reindex
Upgrade your embedding model and every vector you ever stored becomes incompatible. Here is a dual-index design for re-embedding hundreds of thousands of vectors without downtime, complete with a resumable reindex job and a query-side abstraction layer.
Preserving Gemini 3 Thought Signatures So Multi-Turn Function Calling Doesn't Degrade
When you build function calling on Gemini 3 thinking models, reasoning quality often drops from the second turn onward. The cause is usually a dropped thought signature. Here is how to keep it and verify the effect.
Why Gemini 2.5 Pro Rejects thinkingBudget: 0 (and How to Fix It)
Setting thinkingBudget to 0 on Gemini 2.5 Pro returns a 400 INVALID_ARGUMENT error. Here is why the per-model thinking budget ranges differ, how to minimize thinking on Pro the right way, and when to switch to Flash, with Python and JavaScript examples.
Two Months of Turning App Store Connect Daily Sales into a Slack Digest with Gemini 2.5 Flash
Notes from two months of running App Store Connect Sales/Trends data through Gemini 2.5 Flash and posting a short morning digest to Slack. Why Flash beat Pro for this job, how AdMob and store revenue stopped colliding, and what a single 'normal/check' label changed.
Propagating a Time Budget Through a Multi-Stage Gemini Pipeline
A field memo on killing DEADLINE_EXCEEDED errors in an in-app help search by carrying a single request-wide deadline through the embed, search, and generate stages — sizing maxOutputTokens from the remaining budget and reserving a fallback budget so a breach returns a partial answer instead of an error.
Designing a Semantic Clustering Pipeline for App Reviews with Gemini Embeddings
How I cluster 10,000+ app reviews from my indie apps using Gemini Embeddings to compute improvement priorities. The three-layer pipeline and cost design that emerged from a year of running it.
Treating a 0.5B Local LLM as a 'Front-Line Router' — Gemini Nano Next to Qwen 0.5B
Qwen2.5 0.5B reads as 'too weak for daily chat' when you give it the wrong task. As a mobile-app developer with 50M cumulative downloads behind me, I find it useful to put Gemini Nano next to Qwen 0.5B and think about the routing layer instead.
Why HTTP Referrer Restrictions on Your Gemini API Key Cause 403 Errors in Production
Walks through why a Gemini API key with HTTP referrer restrictions can suddenly return 403 PERMISSION_DENIED in production. Covers the exact referrer string format, SDK behavior differences, how to safely route around the limitation with a tiny edge proxy, and how it differs from the CORS error you hit when calling straight from the browser.
Three Weeks Rewriting 40 App Store Descriptions in Gemini Advanced Canvas
Notes from three weeks of rewriting 40 App Store descriptions in Gemini Advanced Canvas. What I let the AI handle, what I always touched by hand, and the small ASO effects I observed across my wallpaper and well-being apps.
Layering Gemini API Response Caches in Three Tiers — How I Split Memory, Redis, and Context Cache
Notes from running a three-tier cache (in-memory, Redis, Gemini Context Cache) in front of the Gemini API for six weeks across a wallpaper app — actual hit rates, billing impact, and the invalidation traps that ate me alive.
Cursor's New Model on Coding Agent Index, and Why I Still Pick Gemini as My Center of Gravity
A third-party evaluator, Coding Agent Index, recently rated a new Cursor-developed model as 'frontier-class performance at one-tenth the cost.' I walk through how a solo developer who keeps Gemini at the center of their stack should read that ranking, and where to add the new model without churning the rest of the workflow.