Inspiration

I make images every day, and I kept wanting to know why one picture works and another doesn't. What is the light doing, what is the mood, which style is it borrowing? Most AI apps only generate. I wanted one that reads a picture first and then lets you make something from what it found.

What it does

You drop in a picture and AIKIZI reads it with 10 parallel AI classes. The result comes back in seven tabs: core, mood, visual, form, style, world and matter. From any result you can remix it into a new image, or apply one of 14 Realms, ready-made looks, to your own photo with no prompt to write. More are coming. Explore holds more than 11,000 public decodes you can search by mood, style, colour, light or subject. Your Library keeps what you make, private or published.

How we built it

  • SwiftUI app with two Metal shaders (plasma and starfield) drawn through colorEffect.
  • RevenueCat for every purchase: four subscriptions from one Offering, plus three consumable credit packs.
  • A Cloudflare Worker is the whole backend, with R2 for media and Supabase Postgres for accounts and the credit ledger.
  • Gemini 3.7 Flash does the decode. Nano Banana 2 and Nano Banana Pro do the images. ElevenLabs and Google Lyria do the audio.
  • I'm one person. I built it with Claude Code as my pair.

Challenges we ran into

  • Apple's reviewer paid and got nothing. Our server trusted the device to say sandbox or production, and it refused sandbox. Now the server asks Apple which environment holds the transaction, and RevenueCat's webhook is trusted because it sits behind a secret.
  • Credit packs could charge without granting. If our server was unreachable at the moment of purchase, the credits were lost. Now a failed grant is saved on the device and retried at every launch, and a StoreKit listener catches Ask-to-Buy approvals.
  • Rejected under 5.1.2(i) for sending photos to an AI provider without asking. We built one small card that appears at the first AI tap, never at launch. It says where your photos, videos, audio and prompts go, and one tap names the companies. Nothing is sent until you allow it.

Accomplishments that we're proud of

  • It shipped. 1.0 has been live in 175 countries since 17 September 2026.
  • Two independent grant paths, RevenueCat's webhook and our own Apple check, both de-duplicated on the transaction id. A purchase cannot be lost or counted twice.
  • The decode screen: the picture is sized once and never moves, and a clear glass panel floats over it.

What we learned

  • Test the purchase exactly as the reviewer will, in sandbox, from a fresh account.
  • A privacy screen can be short. What is sent, who gets it, and one Allow.
  • Charging credits is easy. Giving them back fairly when the AI fails is the real work.

What's next for AIKIZI

  • 1.1: iPad, and push notifications for finished decodes and monthly refills.
  • A RevenueCat Experiment on the paywall.

Fair Credits: how AIKIZI makes money (HAMM)

AIKIZI sells credits two ways: a monthly plan (Basic 180 or Pro 540 credits) or a pack you keep (210, 700 or 1,400 credits, good for a year).

  • Plan credits refill each month and are spent first.
  • Pack credits wait until the plan runs out, oldest first. So a pack still pays off if you cancel your plan.
  • Fair Credits: every credit is charged up front and given back if the AI fails. That covers a decode, an image, a Realm and a sound. A refund only matches the exact charge it reverses, so it can never pay out twice.
  • All purchases run through RevenueCat, and two independent paths grant them: the RevenueCat webhook and a server check with Apple.

Design

  • The hard part of AIKIZI is showing 10 AI readings on a 6-inch screen without drowning the picture.
  • The picture is sized once and never moves. The results sit in a clear glass panel over it, so the image reads through the analysis.
  • Seven tabs, each with its own colour, split the reading into things a person thinks in: core, mood, visual, form, style, world, matter.
  • Two Metal shaders give the dark screens depth without a single stock background.

Built With

  • cloudflare-r2
  • cloudflare-workers
  • elevenlabs
  • gemini
  • metal
  • nano-banana
  • postgresql
  • revenuecat
  • storekit
  • supabase
  • swift
  • swiftui
Share this project:

Updates

Submission history