All Articles
Putting Gemini Embeddings in the Browser — Building a Serverless FAQ Search with IndexedDB
How I shipped semantic search for a few hundred FAQ entries without standing up a vector database. Gemini Embedding runs once at build time, the index sits in IndexedDB, and searches happen in the browser.
Cutting Gemini Embedding's output_dimensionality from 768 to 256 reduced my vector DB storage to one-third
An indie developer's record of trimming gemini-embedding-001 from 768 to 256 dimensions for an 80,000-row wallpaper recommendation index, with measured numbers on storage, cost, recall trade-offs, an int8 quantization implementation, a CI benchmark gate, and the five-step rollout plan I now use in production.
Gemini API: RESOURCE_EXHAUSTED When Sending Large PDFs or Videos via inlineData — When to Switch to Files API
Why the Gemini API returns RESOURCE_EXHAUSTED for large PDFs or videos sent via inlineData, and a practical migration path to Files API based on real indie-developer experience.
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.