Where to Adopt Gemini 3.5 Flash GA First — Per-Workload Evaluation and a Staged Rollout with a Model Router
How I migrated production workloads to Gemini 3.5 Flash GA in stages: a per-workload evaluation harness, measured results, an env-based model router, and rollback design.
The Morning Gemini Generated Fine but the Publish Crashed — A 'Generation Outbox' So Expensive Output Is Never Lost
Generation succeeds, then the process dies right before publishing. The expensive output is gone, and you pay for the same generation again. Here is a 'generation outbox' that persists the output first and turns publishing into an idempotent follow-up, plus what it did for me during the June outage.
Reading a Night of Logs in Three Minutes — Building My Own Daily Brief for Ops With the Gemini API
Inspired by Gemini's Daily Brief, I built a pipeline that turns overnight operations logs into one morning email: collect, summarize with response_schema, render, deliver — with measured token counts and a fallback that kept working through the June outage.
Is Anyone Actually Using Your Gemini Feature? Measuring Acceptance, Regeneration, and Edit Distance
Token charts will not tell you whether users embrace a Gemini-powered feature. A practical design for measuring acceptance rate, regeneration rate, and edit distance with Swift and BigQuery, with two weeks of real numbers.
Gemini's Preview Image Models Shut Down on June 25 — Code Diffs and Checks From an Actual GA Migration
How I moved my image pipeline off Gemini's preview image models before the June 25 shutdown — confirming GA model IDs, Python code diffs, regression checks, and a safe cutover order.
Gemini Interactions API: Fixing What Broke When the Legacy outputs Schema Was Removed on June 6
Google removed the Gemini Interactions API legacy outputs schema on June 6, 2026. A symptom-based walkthrough of migrating to steps and the new response_format.
Reverse-Engineering Empty Gemini API Responses with finish_reason — Triage, Retry Classification, and Monitoring
An empty response.text has three distinct failure layers — candidates, prompt_feedback, and finish_reason. Production code for detecting thinking-token starvation, classifying what is worth retrying, and monitoring your empty-response rate.
A Lightweight Gemini Backend with Bun and Hono — Reclaiming the Small Tools of Indie Development
Has your Node and Express Gemini backend grown heavy with dependencies and build times? Here is how I moved one to Bun and Hono — folding streaming, rate limiting, cost caps, testing, and self-hosting into a single light runtime — along with the pitfalls I hit in production.
Why Firebase AI Logic Returns 403 When Calling Gemini from iOS — And How to Fix It
Firebase AI Logic (formerly Vertex AI in Firebase) often returns 403 PERMISSION_DENIED when calling Gemini from an iOS app. Here is how to isolate the three real causes — App Check enforcement, disabled APIs, and missing Blaze billing — based on hands-on device testing.
A Month of Refreshing App Store Promotional Text Weekly with Gemini
Notes from one month of rewriting App Store promotional text (the 170-character line above the description) weekly with the Gemini API. How I reused a slot that ships without review, what I handed to AI, what I always touched by hand, and whether it moved anything.
Empty Output but finish_reason Is MAX_TOKENS on Gemini 2.5/3: Cause and Fix
Your prompt is just a few lines, yet a low maxOutputTokens on gemini-2.5-flash returns empty text with finish_reason MAX_TOKENS. The culprit is thinking tokens. Here are three fixes with working code.
Mixing Gemini 2.5 Flash and Flash-Lite for App Store Localization
An operations log from running the same wallpaper-app store copy through both Gemini 2.5 Flash and Flash-Lite. Real cost gaps, where the lighter model breaks down, and how I now route by text type and locale.