Case Study · Live iOS App

I designed
and shipped
AuLedger.

A gold portfolio tracker I built from scratch. From Figma to a live App Store release.

No team. No backend. Just a focused product that solves a real problem. Every product, design, and tradeoff decision was mine.

Role
Founder · Product Designer
Stack
Figma → AI → App Store
Focus
Trust · Clarity · Speed
Scroll
Problem

Gold owners still do too much mental math.

Most people are guessing
They check spot price, estimate purity, do rough math in their head. Or they just don't track it at all.
The tools that exist suck
Spreadsheets are flexible but annoying. Dealer sites aren't built for tracking. Generic portfolio apps don't know what melt value means.
There was a clear gap
A simple, focused app built specifically for physical gold. One that just tells you what you own and what it's worth.
Solution

Focused, fast, and private.

I didn't want this to feel like a finance app. No accounts. No syncing. No clutter. Just open it and see what your gold is worth.

Live prices
Pulls current gold prices so what you see is always accurate, not whatever you entered last week.
Track everything you own
Coins, bars, jewelry. Add what you have, including weight, purity, and photos.
Multiple currencies
See your total in USD, EUR, GBP, JPY, CAD, AUD, and more. Exchange rates refresh on demand.
No account needed
Everything stays on your device. I didn't want people signing up just to track what they already own.
AuLedger item detail screen showing a gold necklace with melt value, purity, and photo
Every piece, fully tracked
Live melt value, purity, photos, and how much you're up or down since you bought it.
AuLedger coin picker showing American Eagle, Buffalo, Kangaroo and other gold coins
No manual lookups
American Eagle, Buffalo, Maple Leaf, Krugerrand. Pick your coin and the specs fill in automatically.
Process

Lean. Build-first. Real.

01
Define
I didn't spend months on this. I had a clear problem, a clear gap, and a rough idea of what the app should do. I used Trello to map out features, prioritize what mattered, and keep scope tight.
Trello · AuLedger
AuLedger Trello board
02
Design
I worked through the core flows in Figma. Not to make a deliverable, but to think through the product before writing code.
Figma · AuLedger Wireframes
AuLedger Figma wireframes
03
Build
AI helped me move faster through implementation. It handled a lot of the boilerplate. I handled the decisions.
04
Ship
The real design work happened here. In the edge cases, the constraints, the things that broke, and what I cut.
On using AI

AI helped. I decided.

I used AI to move faster through the build. It didn't choose what to make, what to cut, or how things should work. Those calls were mine.

Screens

The app.

Four screens. Portfolio, item detail, coin picker, and currency settings. Each one answers a specific question.

Portfolio
Portfolio
Live spot price with a candlestick chart, your total value, and every holding with its current gain or loss.
Item detail
Item detail
Photos, melt value, purity, and exactly how much you're up or down since you bought it.
Coin picker
Coin picker
Pick from a built-in list of the most common gold coins. Specs fill in automatically. No manual entry.
Currency
Currency
Switch between USD, EUR, GBP, JPY, CAD, AUD, and more. Rates update on demand.
Scroll to see more
Design decisions

Why it looks like this.

I didn't design this to be clever. I designed it to be obvious. Each callout is a real decision, with the tradeoff that came with it.

AuLedger portfolio dashboard — annotated design decisions
1
2
3
4
5
1
The timestamp is doing real work

I show exactly when the price last refreshed because gold moves constantly. If the data is 20 minutes old, you should know that. Hiding it would make the screen look cleaner. It would also make it harder to trust.

2
Three timeframes on purpose

I tried more options. It just made the chart harder to use. Collectors mostly care about long-term appreciation and what happened today. 2Y, YTD, and 24H covers both. Everything in between is noise for this use case.

3
Total value at the top

Most people open the app to check one thing: what is my gold worth right now? That number is the biggest thing on screen. The chart gives it context. The list breaks it down. The total is the answer.

4
The gain number is calculated, not stored

That +$23k figure is computed on every load from the current spot price, not pulled from a database. Storing it would mean it's only accurate as of the last sync. Calculating it live means it's always correct.

5
List first, detail on tap

Most visits are just a quick check, not a deep dive. The list is compact by design: name, value, gain. If you want more, tap. The UI treats passive reading as the default case, because that's what it actually is.

Product thinking

The decisions that shaped it.

Why no account system?

Because trust matters more than growth hacks. I didn't want people signing up just to track what they already own. Local-first removes that friction entirely.

Why gold-specific?

A generic portfolio app doesn't understand melt value or purity. I built something narrow on purpose. Being specific is what makes it useful.

Why not add more features?

I didn't want to add everything upfront and make the app harder to use. I focused on getting the core right first. More features will come, but only if they actually make the product better, not just bigger.

Why this monetization?

The free version is genuinely useful. Premium adds convenience, not access. I never wanted to lock people out of the thing that makes the app worth using.

Under the hood

What it's built on.

SwiftUI, local-first data storage, and a live gold pricing API. Everything runs on the device.

claude-code — auledger
>reviewing architecture and data model
>debugging chart behavior and premium gating
>iterating on UI flows and edge cases
>refining product details before release
submitted to App Store
SwiftUILocal-first data modelLive gold pricing APIImport / ExportIn-app subscriptionsAd gating
The product

This is real.

AuLedger portfolio dashboard — live on the App Store

Live on the App Store. Used by real people to track real collections. Values pull from live gold prices, so the numbers are always current. No mockups. No fake data.

App Store
Downloadable today. Everything shown here actually exists.
Actively improved
I keep working on it. Edge cases get fixed. Flows get tightened.
Built to grow
The core is solid. Premium tools, analytics, and collector workflows are the natural next step.
Distribution

Getting it in front of users.

I didn't just build the app — I needed to get it in front of people.

auledger.app
AuLedger marketing landing page
Landing page

Clear message. One goal.

I created a simple landing page focused on one thing: what the app does and why it matters. No fluff, no feature lists. Just the value prop and a direct path to download.

Clarity over marketing. If someone lands on the page and immediately understands what they get, the job is done.

Google Ads · AuLedger campaign
Google Ads campaign dashboard for AuLedger
Google Ads

Real clicks. Real signal.

I didn't want to assume people would use this, so I ran ads and let real behavior answer that. Search campaigns targeted people actively looking for gold tracking tools.

Clicks told me demand was real. Behavior on the landing page told me where the message needed tightening. It was cheaper to learn this early than to find out later.

Learnings

What shipping this taught me.

Clarity beats features

Every time I added something, I asked whether it made the app clearer or just bigger. Most ideas got cut.

Speed matters

Getting to a real, working product fast meant I could make real decisions, not hypothetical ones.

Real products teach more

Building this end-to-end changed how I think about design. Less about screens. More about what actually happens when someone uses it.

What's next

I think, design,
and ship.

I don't just design interfaces. I build real products and see them through. If you're looking for someone who can take an idea all the way to something people actually use, let's talk.