What's Missing Before You Can Publish Your App

You built the app. It works on your phone. But before Apple will approve it, you need a few more things in place. This guide covers authentication, cloud storage, payments, and everything else — in plain English, with the tools to use and the exact prompts to give Claude.


Why This Matters

Right now the app saves coins locally on the phone only. If someone deletes the app, their entire collection is gone. And without accounts, you have no way to charge users or limit free scans. These three things — auth, storage, and payments — are what turn a prototype into a real product.


1. Authentication (User Accounts)

What it is: Letting users sign up and log in so their data is tied to them, not just their phone.

Tool to use: Supabase — free to start, handles sign up, login, and password resets out of the box. Works with React Native.

Alternative: Firebase Auth by Google — also free, slightly more complex to set up.

Prompt to give Claude:

Add Supabase authentication to my Expo React Native app. I want users to be able to sign up and log in with their email and password. Show a login screen when the user is not authenticated, and once logged in take them to the main app. Use @supabase/supabase-js. My Supabase project URL is [PASTE URL] and my anon key is [PASTE KEY].


2. Cloud Storage + Database (Syncing Coins Across Devices)

What it is: Instead of saving coins on the phone, you save them to a database in the cloud. The user can switch phones and their collection is still there.

Tool to use: Supabase Database — same tool as auth above, so you only need one account. Gives you a database with a simple dashboard, no technical knowledge needed.

For coin photos: Supabase Storage — stores the actual images. Also included in Supabase for free.

Prompt to give Claude:

Replace AsyncStorage in my Expo app with Supabase. Create a coins table that stores: id, user_id, name, country, year, denomination, composition, condition, value_low, value_high, rarity, mintage, error_detected, history, image_url, created_at. Upload coin photos to Supabase Storage and save the public URL. All reads and writes should be scoped to the logged-in user only.