I shipped my first iOS app in 30 days for $300. Here's the build log.
I take a lot of screenshots. The article I'll read later. The recipe I'll cook on Sunday. The movie name from someone's Instagram story. A job post, a product, a tender. Most of them die in my camera roll. So I built Chista — an iOS app that auto-imports every screenshot, classifies it with AI (Article, Product, Event, Reference, Media), and surfaces a one-tap action: Buy on Amazon , Add to Calendar , Reserve on OpenTable , etc. It shipped on the App Store thirty days after I started, for about $300 in total cost. The interesting part wasn't the app. It was what the build revealed. What I built Chista is a native iOS app + Python backend. iOS reads new screenshots in the background via PHPhotoLibraryChangeObserver , scoped to PHAssetMediaSubtype.photoScreenshot (so it literally can't see your other photos). Each new screenshot gets OCR'd on-device with Apple Vision , then the image + OCR text get POSTed to the backend. Backend sends the pair to OpenAI GPT-4o with a structured prompt that returns a CategorizationResult JSON: category, subtype, title, suggested action, extracted data (price, deadline, URL, etc.). Result gets persisted and pushed back to the inbox via Supabase real-time. That's the whole thing. The "magic moment" is just: you screenshot something, switch to Chista a few seconds later, it's already sorted with a contextual action button. Stack Layer Tool Why iOS app Swift 5.10, SwiftUI, StoreKit 2 iOS 17+, modern surface Backend FastAPI on Railway One-file ergonomics, fast cold starts Database + Auth Supabase Postgres + JWT auth out of the box AI OpenAI GPT-4o (Pro), gpt-4o-mini (Free) Tier-routed at categorization time Push APNs via aioapns Direct, no Firebase middleman Subscriptions StoreKit 2 + app-store-server-library Server-side JWS verification Affiliate routing Custom matrix in Supabase tables Amazon Associates wired, more pending Hosting (web) Cloudflare Pages Free, fast, never goes down No frameworks I wouldn't reach for again. What it cost Lin