Skip to main content
Case Study

Estimonia: AI Photo Valuation for Antiques, on Web and iOS

Estimonia is our own product. Upload photos of an antique, watch or piece of jewellery and get a USD value range, a confidence score and a written rationale. We built and run it end to end: a Laravel 12 API with queued vision analysis, a web scanner, an Expo iOS app and an auction house directory.

Estimonia estimonia.com
Estimonia: AI Photo Valuation for Antiques, on Web and iOS

The challenge

Most people just want to know if it's worth anything

Most people holding an inherited watch, clock or ring don't need a certified appraisal. They need a first answer: is this worth a specialist's time, or not? Appraisers are slow and expensive for that question, and generic image search returns listings rather than a value.

A model answer isn't a product

A vision model will happily name an object and quote a price, but the output has to be structured, bounded and honest about uncertainty. It also has to handle blurry photos, cluttered scenes and things that aren't collectibles at all, without every failed call silently costing money.

Nobody wants to sign up just to ask

The audience is one-off and privacy-sensitive. Putting a sign-up wall in front of the first valuation would lose most of them, so the system had to work anonymously on both the web and the phone while still letting people keep what they scanned.

Our approach

One API, two clients

A monorepo with a Laravel 12 API (PHP 8.4, MySQL) serving both the web scanner and an Expo / React Native iOS app. The versioned API issues anonymous Sanctum tokens, so a first scan needs no account. Anonymous users can convert to a registered account later without losing their items.

Async valuation pipeline

Each upload of up to four photos creates a Scan. A queued ProcessScanJob, run on Redis and Laravel Horizon, sends the images through Prism to OpenAI GPT-4.1 vision with a strict JSON contract: an image-quality verdict with warning codes, the item's name and model reference, its materials, a tight USD min/max range, confidence and rarity scores, and a comparables-based explanation. The job is rate-limited against the provider, retries with increasing backoff, and writes the result to an Item. Uploads are downscaled to 2000px before storage.

Cost and failure visibility

Every model call is logged with token usage and cost, and with its outcome (success, rejected or failed). Spend is recorded before the JSON is parsed, so broken responses still count. An admin dashboard shows daily spend, cost per scan, budget projection and money spent on rejected photos. Per-IP and per-user throttles protect the anonymous endpoints.

Reuse over new pipelines

Later features run on the same Scan → Job → Item path instead of forking it. The estate-valuation flow, which values a whole household from a batch of photos behind a tokenised link, uses it, and so do the opt-in seller introductions to auction houses. Cost logging, value tiers and retries apply to them automatically.

Estimonia screen 1
Estimonia screen 2
Estimonia screen 3

How we delivered

  1. 1

    Product & brand

    Design

    Defined a calm, trust-first product with value ranges and confidence scores instead of single prices, and a restrained heritage visual system.

    Brand system Scan UX
  2. 2

    API & data model

    Development

    Built a Laravel 12 API with anonymous Sanctum auth and Scan, Item, directory and guide models, shared by web and mobile.

    Laravel 12 MySQL Sanctum
  3. 3

    Vision pipeline

    AI

    Wired queued GPT-4.1 vision analysis through Prism with a strict JSON schema, retries, rate limiting and per-call cost logging.

    Prism Horizon Cost logging
  4. 4

    iOS app

    Mobile

    Shipped an Expo / React Native app with camera capture, an offline-persisted query cache and over-the-air updates.

    Expo React Query EAS Update
  5. 5

    Guides & directory

    Content

    Published a Knowledge Hub of value guides and an auction house directory with fee comparison and metal-price calculators.

    55 guides 112 listings

Results

55
Value guides in the Knowledge Hub
112
Auction house & dealer listings
17
Countries in the directory

Growth over time

Since Jun 2025

Live on web and the App Store

Estimonia runs on estimonia.com with a no-account browser scanner and a native iOS app built with Expo and shipped with over-the-air updates. Each result shows a value range, confidence and rarity scores and an explanation, and people can save items to a personal collection.

A research layer around the tool

The Knowledge Hub has 55 value guides across watches, jewellery, antiques, coins, art and collectibles. A directory of 112 auction houses and dealers in 17 countries includes a fee comparison, and gold, silver and coin-silver melt calculators run on live metal prices.

Routes to sale

Owners can choose to let vetted auction houses and dealers see an item anonymously. Contact details move only after the owner agrees. The estate-valuation flow turns a whole house of photos into a decision list: take it to a specialist, sell it yourself, or let it go.

Have something to build — or something that is stuck?

Tell us what you are working on. You will talk to an engineer, not a salesperson.

Before you go — have a system that's stuck, or needs AI?

We build what's missing, put AI where it earns its place, and keep it running.