All Articles
What I Tried, In Order, When Gemini API Returned User location is not supported in Production
Hitting the Gemini API from Cloudflare Workers or Vercel and getting hit with a sudden 'User location is not supported' error? Here is the exact order I worked through, drawn from a live production incident on my own indie apps.
Turning my own artworks into 120 wallpaper variants in 30 days with Gemini 3.2 Pro and Imagen 4 — an artist-developer's content supply pipeline
A 30-day production log of building a pipeline that takes one of my own paintings and expands it into a 120-piece wallpaper series, using Gemini 3.2 Pro for structural analysis and Imagen 4 for variations. Includes real costs, quality gates, and downstream app KPIs.
Gemini API Returns 400 When You Set tools and responseSchema Together — Three Designs That Make Function Calling and Structured Output Coexist
You want function calling to fetch external data and a strict JSON shape for the final answer. Setting tools and responseSchema together returns 400. Here's why, plus three production-tested designs that make both work.
Why I Always Resize Images With Pillow Before Sending Them to the Gemini API
A practical look at why preprocessing images with Pillow before they reach the Gemini API quietly cuts both latency and token usage. Numbers from a real personal project, plus the helper function I now reuse everywhere.
Build a Voice + Screen-Share AI Pair Programmer with the Gemini Live API in TypeScript
A practical playbook for wiring the Gemini Live API to getDisplayMedia and a microphone to build an over-the-shoulder AI pair programmer in TypeScript, with cost controls and the gotchas I hit in production.
Integrating Gemini API into iOS Widgets: Working Around WidgetKit's Execution Limits
Calling Gemini API directly from a WidgetKit TimelineProvider silently fails after release. Learn the App Groups caching pattern plus BGTaskScheduler refresh that keeps widgets fresh while cutting API calls to roughly one tenth, with field-tested numbers and a pre-release checklist.
Migrating from Gemini 2.5 Pro to 3.2 Pro in 7 Days — A Production Playbook for Compatibility Testing, Output Diff Scoring, and Rollback Design
A 7-day playbook for moving production systems from Gemini 2.5 Pro to 3.2 Pro: compatibility testing, LLM-as-Judge scoring, shadow traffic, and rollback.
Putting Gemini on Your Desktop and Phone as a PWA — How It Compares to a Browser Tab in Daily Use
How to install gemini.google.com as a Progressive Web App on macOS, Windows, iPhone, and Android — and what I actually measured after a week of comparing PWA usage to keeping it as a Chrome tab.
Gemini API DEADLINE_EXCEEDED Errors: Five Things to Check First
When DEADLINE_EXCEEDED suddenly starts spiking on your Gemini API backend, here are the five checks I run first — based on real production debugging.
Building a Paid Service with the Gemini Multimodal API: Image, Audio, and Video Processing
A complete implementation guide for paid services built on Gemini's multimodal capabilities — covering image analysis, audio transcription, video processing, PDF Q&A, Stripe Metered Billing integration, and production error handling.
NotebookLM vs Gemini Gems: What I Learned After 3 Months of Using Both
Both NotebookLM and Gemini Gems run on Gemini, but they're built for completely different jobs. After 3 months of daily use, here's my honest take on when to use which — including a two-phase workflow that eliminated most of my tool-switching confusion.
Gemini 2.5 Pro + Imagen 4 Content Automation Pipeline: Complete Build Guide
Build a production-ready pipeline combining Gemini 2.5 Pro and Imagen 4 API to auto-generate blog articles, SNS posts, and thumbnails. Covers async processing, quality filters, and monetization design.