How I Built Provenance Appraisal AI

The idea for Provenance came from a simple observation: antique appraisal is slow, expensive, and gated behind specialist knowledge. Most people who find something interesting at an estate sale or in a grandparent’s attic have no easy way to figure out what it’s worth or what it is. A quick photo should be enough to get a useful answer.

What Provenance does

Provenance is an AI appraisal app for antiques, collectibles, and household items. You photograph something — a piece of furniture, a ceramic figurine, a vintage watch, a signed print — and the app returns an AI-generated appraisal that includes an estimated value range, the likely period and origin, identifying features to look for, and condition considerations that affect value.

The app is available on Android via the Google Play Store. It’s built as a Trusted Web Activity (TWA) — which means the core experience is a web app, packaged for Android distribution. This approach lets a single developer ship to both web browsers and Android without maintaining two separate codebases.

The technical stack

The frontend is React and TypeScript, hosted on Vercel. The backend is Express with Supabase handling authentication and usage tracking. Appraisals are generated by the Claude AI API — the model is given the uploaded image along with a structured prompt asking for a valuation in a specific format. The Android package is a TWA built with Android Studio and signed with a dedicated keystore.

Credits are sold in packs through a Stripe integration. New users get a small number of free appraisals to try the app before purchasing.

What I learned shipping to Android as a solo developer

Publishing to the Google Play Store as an indie developer involves more steps than it probably should. The TWA approach is genuinely powerful — write a web app, wrap it for Android — but there are real gotchas. Status bar colors must be color resource references, not hex values. The Play Store review process scrutinizes new apps closely. Digital asset links have to be configured precisely for the TWA to work correctly.

None of these problems are insurmountable, but they’re not documented in one place. Most of what I know about TWA packaging came from working through errors one at a time.

Try it

Provenance is available at provenance-taupe.vercel.app on the web, and on the Google Play Store for Android. If you have something you’ve always wondered about, photograph it and find out.