Case studies — AI TOOL · INTERNAL

Self-hosted CDN with AI that names your images for you.

Cloudflare R2 media CDN with Gemini Vision-powered auto-renaming, upload presets, and per-asset analytics.

Every agency has the same problem: a media library full of IMG_4821.jpg files that nobody can find. Zippy CDN solves the naming problem at upload time, Gemini Vision reads the image and generates a descriptive, SEO-friendly filename before it ever lands in storage.

R2 storage. AI naming. Built-in analytics.

AI Renaming Gemini Vision Reads Every Upload

When an image is uploaded, Gemini Vision analyzes the content and generates a descriptive SEO-friendly filename, for example, sunset-aerial-photo-santa-teresa-costa-rica.jpg . The IMG_4821.jpg problem is solved permanently, at upload time.

Upload Presets One Click. All Transforms.

Define named presets, "blog-hero", "product-thumbnail", "og-image", with target dimensions, format (WebP or AVIF), quality settings, and CDN path prefix. One click applies all transformations at upload time via Cloudflare Workers.

Per-Asset Analytics View Count, Bandwidth, Referrers

Every asset in the CDN has its own analytics row: view count, bandwidth consumed, and referring domains tracked. Surfaced in a Next.js dashboard, see which images are driving traffic and which are sitting idle.

Bulk Operations Rename, Convert, Delete in Batches

Bulk rename with AI across a folder, batch format conversion to WebP or AVIF, bulk delete with confirmation modal. Operations run as background jobs, the dashboard shows progress without blocking the UI.

How the auto-renaming works.

STEP 01 IMAGE UPLOAD

File lands in a staging bucket on Cloudflare R2. The upload triggers a Cloudflare Worker that passes the image binary to the Gemini Vision API for content analysis.

STEP 02 GEMINI VISION ANALYSIS

Gemini Vision describes the image content and generates a slug-formatted, SEO-friendly filename. The model is prompted to be specific: subject, location, context, not generic labels like "photo-of-person.jpg".

STEP 03 TRANSFORM + STORE

The Worker applies the upload preset transformations, resize, format conversion, quality, and moves the processed file to the production bucket under the AI-generated filename. The CDN URL is returned to the dashboard.

What it runs on.

Image analysis + naming Gemini Vision API

Object storage Cloudflare R2

Image transformation Cloudflare Workers

Dashboard UI Next.js

Asset metadata + analytics Supabase

On the bench.

  • Gemini Vision API
  • Cloudflare R2
  • Cloudflare Workers
  • Next.js
  • Supabase