All Articles
Apple Vision Framework × Gemini API: Hybrid Image Recognition — Cutting Wallpaper App Cloud Inference Costs by 70%
How I built an on-device prefilter with Apple Vision Framework to cut Gemini Vision API calls by more than half in my iOS wallpaper app. Real cost, accuracy, and latency numbers, with the gotchas an indie developer hits along the way.
Two Weeks of Classifying Half a Year of App Store Reviews with Gemini File API
I ran half a year of App Store Connect reviews through the Gemini File API for two weeks straight, asking it to classify and summarize them. Here is what worked, where Batch Mode fit better, and which sharp edges took me a few days to round off.
Taming Gemini API Tail Latency with Request Hedging: A p99 Design Notebook
A four-month operational journal of taming Gemini API tail latency with hedged requests across a production indie app portfolio. Includes measured p50/p95/p99 numbers, a working Swift and TypeScript implementation, and the cost-control parameters that kept monthly billing growth under 18%.
Why Your Gemini File API Uploads Vanish After 48 Hours — and How to Code Around It
Gemini File API resources are auto-deleted 48 hours after upload. Here is how to recognize the failure, why it happens, and concrete patterns for re-uploading, falling back to inline data, and managing expiration safely.
Gemini API × Sentry: A Production Pipeline for LLM Error Tracking and Prompt Failure Observability
Pair Sentry's error tracking with Gemini-specific failure modes so you can catch safety filter blocks, recitation rejections, empty completions, and quiet latency drift in production.
When Gemini API Streaming Cuts Off Mid-Response in Production: The Diagnosis Order I Run
How I diagnose mid-response cutoffs in Gemini API streaming - the order I check network, SDK, and server-side suspects, with real cases from indie production.
Designing Around the Gemini 2.0 Flash Deprecation Without Letting It Disrupt Indie Development: My May 2026 Risk-Distribution Notes
How I rebuilt my indie-development jobs to absorb the upcoming Gemini 2.0 Flash deprecation - provider abstraction, cost numbers, a rehearsal day, captured from my May 2026 review.
Why Your Gemini API Structured Output Keeps Failing Validation — and How to Stabilize It
A field guide to the three layers where Gemini API structured output breaks — server-side schema rejection, silent empty responses, and client-side parsing — with practical fixes from an indie developer's production AdMob reporting pipeline.
Six Weeks of Running an App Store vs. Google Play Review Diff with Gemini
A six-week record of using the Gemini API to classify App Store and Google Play reviews in parallel and surface platform-specific priority items. Notes from running this on an indie wallpaper app with 50M+ cumulative downloads, including the three platform gaps that actually showed up and the monthly cost.
Idempotency Key Design for the Gemini API: Patterns I Use to Prevent Duplicate Generation Across Six Sites
After five months of running six AI-driven sites in parallel, I built an idempotency layer in front of the Gemini API to neutralize retry storms. This deep dive shares the SHA-256 + Cloudflare Workers KV design, the operational numbers behind it, and the four gotchas that only surface in production.
Why Gemini API Returns Empty Responses with finishReason: RECITATION, and the Prompt + Post-Processing Design That Stopped It
Run a Gemini content agent long enough and one day logs fill with finishReason: 'RECITATION' and empty content arrays. This is the verbatim-quotation safety system firing. Here is the prompt rewriting pattern and TypeScript post-processor I deployed across six auto-publishing pipelines at Dolice — it dropped my incident rate by 90%.
Why Gemini API Returns MALFORMED_FUNCTION_CALL — Causes and Fixes
Hit by finishReason: MALFORMED_FUNCTION_CALL in production? Three root causes, how to diagnose each, and the workarounds that actually worked in our indie iOS/Android pipeline.