Inspiration

I'm a video editor by trade, and I kept seeing photos I loved without any idea how to get that look on my own camera (a Canon 70D). The EXIF tells you what their camera did — not what yours should do with a different sensor, lens and ISO ceiling. Beginners hit this constantly: real cameras are powerful but confusing.

I noticed ToneAdapt solving the same problem for guitarists ("match this tone on the gear you own") and thought: photographers need exactly this.

What it does

CameraAdapt lets you pick a reference look (or upload any photo), tell it your camera and lens, and it gives you:

  • Your settings — aperture, shutter, ISO and focal length adapted to your gear (crop factor, depth-of-field equivalence, exposure rebalancing, your body's usable ISO limit).
  • An honest match rating — green or amber. Never "you can't do this", always "here's the closest you'll get".
  • An in-camera recipe for Fujifilm, Canon and Nikon.
  • A colour grade you can export as a Lightroom .xmp, Capture One .costyle or .cube LUT for Resolve / Premiere / Photoshop.
  • How to shoot it — time of day, light and handheld vs tripod tips.

Facts vs estimates is a hard rule: values read from EXIF are shown plainly, AI-estimated values are always hedged ("~f/2", "likely").

How I built it

  • Native Swift / SwiftUI, built with Claude Code.
  • A deterministic, offline math adaptation engine does the core work instantly and for free; an AI layer then refines the written guidance without ever contradicting the numbers.
  • Photo uploads: EXIF first, then a vision model for anything missing — routed through a Supabase edge function so no API keys ship in the app.
  • A curated gear database (cameras, phones and lenses, with lens optics from Lensfun) and a library of reference looks across 10 moods (Golden Hour, Blue Hour, Neon Night, Film…).
  • RevenueCat powers subscriptions: a cameraadapt_pro entitlement with annual and monthly plans and a free trial. You see a full, real adaptation for free first, then the paywall.

Challenges

  • Making adaptation physically honest: depth of field and exposure don't transfer 1:1 between sensor sizes, and phone photos report 35mm-equivalent focal lengths.
  • Paywall placement: I shipped it before the result, got real feedback that it felt like a wall, and moved it to after the first result in 1.3.
  • Shipping fast as a solo developer: 1.0 through 1.3 went live on the App Store during Shipaton.

What I learned

Copy proven onboarding and monetisation patterns, then listen hard to real users. Every release was driven by feedback from friends, family and early reviews.

What's next

Community looks, more in-camera recipes, and growing through short-form UGC video on TikTok and Instagram.

Built With

  • claude
  • lensfun
  • openai
  • revenuecat
  • supabase
  • swift
  • swiftui
  • xcode
Share this project:

Updates

Submission history