← Back Rebalancer

Rebalancer

Crypto Rebalancing · Mobile app · iOS

Solo Lead UX + AI — design and build with Claude Code

Designed and built solo, from concept to App Store


Rebalancer — crypto portfolio rebalancing app

01 · I built the tool I kept needing

Problem & Context

I rebalance crypto myself, and the pair I actually care about is almost never one an exchange will show me. Everything is priced against USDT. If I want to know where SOL stands against XRP, no exchange and no wallet treats that as something I can keep on a list and watch.

02 · One pair of hands, all the way through

Roadmap

I owned every layer of this one — concept, product design, the iOS app, the backend, the servers, the APIs and the push notifications — built with Claude Code.

01

Research

Competitor analysis, reviews on the App Store and YouTube, Telegram channels, interviews with the crypto community. Nobody treated an ALT/ALT pair as something you could keep and watch.

No direct competitor

02

Prototype

Several concepts ran side by side. I committed to one — the pair as the only object the app asks you to create — and cut the rest instead of keeping options open.

One direction chosen

03

Testing and iteration

Two rounds through TestFlight, then reworking what testers actually stumbled on rather than what looked worth polishing.

Four flows · four changes

04

Publish on the App Store

Shipping was a design decision too: what to leave out so the first version could stand on its own, and what the listing should promise.

Live

05

Analytics and post-launch research

Analytics went in to replace opinion with behaviour, and the reading of reviews and channels carried on after release rather than stopping at launch.

Instrumented

03 · What I checked before building

Research

Three questions came first: whether anything already did this, who keeps running into it, and how few decisions each path could take.

Market analysis

I went looking for the app I wanted to buy. What exists are four workarounds, each stopping in a different place.

Where people look now Any ALT/ALT pair Kept as a pair Ratio history Alert on the ratio Holdings in it
TradingView spread charts a chart layout
Community Pine scripts per chart, per script
Converters — Coinbase, MetaMask and the rest one amount, typed in
Portfolio trackers fixed bases of the portfolio on the USD price
Rebalancer
What that means The gap is technical rather than commercial: no exchange publishes an ALT/ALT feed, so the ratio has to be assembled from two USD legs and divided — which is exactly where every row above stops.

User personas

Three groups came out of the conversations and the reading. I belong to the first one myself, which is where the product started; the interviews put the other two beside it.

Group 1 Crypto investor

WhoHolds several alts and moves between them on the pair's ratio, not the dollar price.

PainNo exchange or wallet shows ALT/ALT directly — you read two USDT prices and divide them yourself.

Group 2 Experienced rebalancer

WhoFollows the ratio by hand — a spreadsheet, or arithmetic in their head — and keeps coming back to check.

PainIt all rests on remembering to look. Nothing watches the number, so the moment can pass unnoticed.

Group 3 Technical trader

WhoTechnical enough to chart a spread in TradingView or write their own indicator.

PainThe workaround never becomes a product: TradingView advises against alerts on spread charts, and a script needs an account and setup.

User flows

Each flow came out of one question: how few decisions can this take? What follows are the paths I settled on — and, in the last one, the line where the product deliberately stops.

Off-app App Store listing Five screenshots and a description — no trial, no preview
Decision Does this solve my problem?
No
End Never installed The listing is the entire pitch
Yes
Action Install
Inside the app
Sheet Disclaimer A notice with one button — nothing to answer
Screen Empty watchlist One line, one button, no tour
Decision Obvious what to do here?
No
End Leaves with nothing Nothing on screen explains a ratio
Yes
Action Tap Add pair
System A live pair appears Seeded and already tracking, not a blank form
Action Swap in your own coins
Decision Worth keeping?
No
End Deleted Straight back to the empty state
Yes
End Kept An alert on it is the next thing to do

There is no onboarding, and that is a decision rather than a gap: no tour, no welcome screens, no coach marks. Tapping the one button produces a pair that is already tracking rather than a blank form, so the app is learned by using it. The one dialog on the way in is a disclaimer with a single acknowledge button, and it is there for App Review rather than for the reader. The store screenshots do the explaining before the app opens, which is what lets the first screen stay this quiet. Moving some of that inside is the next thing I would test.

Action Tap + From the watchlist
Sheet Token selector Search the catalogue
Action Pick base
Action Pick quote
If picked the wrong way round
Action Swap sides Same pair, reversed
End Pair is live Tracked from that moment

Two picks, no form. The pair is the only thing the app asks you to create, so I kept it to two decisions — and made the sides swappable instead of expecting people to get the order right first time.

Screen Pair detail Opened from the watchlist
Action New alert
Sheet Prefilled at the current ratio Opens on today's number
Decision Notifications allowed?
Not yet
System Permission banner Asks once; the alert is still saved
Yes
Action Set the threshold
End Alert armed

The prefill is the whole design. An empty field asks “what number?” — prefilled with where the ratio sits right now, it asks “how far from here?” — which is the question I always arrived with myself.

The permission branch saves the alert either way. Making the notification prompt a precondition would have meant losing the thing the person came to do.

Screen Pair detail Simulator lives here, not in the list
Action Enter amounts What you'd move
Decision More than two steps?
Within Free
End See the outcome Before committing to anything
Beyond Free
Sheet Paywall Pro: unlimited chain steps

The simulator answers “what would this do” without doing it. Free stops at two steps in a chain; deeper chains are where Pro begins — I put the paywall where the tool starts doing planning work, not at the front door.

Screen Coins Its own tab
Action Enter what you hold Edited in place, hideable
System Prices move
End Totals recalculate In the denomination you choose

The only flow here with no branch, and that's the point: Coins is a ledger of what you own. Anything that behaves like an exchange rate belongs to the simulator — keeping those apart is what stops the app from implying it can trade for you.

System Threshold crossed Ratio reaches your number
System Push delivered Even with the app closed
Screen Open and check Chart, holdings, simulator
Outside the app
Off-app Execute on the exchange Rebalancer never places the order

This is where I drew the product's edge. Rebalancer tells you the moment arrived and shows you the numbers; the trade happens on your exchange. Not a missing feature — a deliberate limit that keeps the app clear of custody, keys and order execution.

04 · Designed in code, so the prototype was the app

Prototype

There was no Figma stage. The prototype ran on a phone from the start, which is why the screens and the system behind them were decided together.

Screens

Four screens from the shipped app. The flows behind them are in the section above; this is what came out.

Rebalancer watchlist: an expanded SOL/XRP pair with its ratio chart, above a list of other tracked pairs

Watchlist — the open pair, then the rest as rows with sparklines

The rebalance simulator on the SOL/XRP screen, showing step 1 and step 2 of a swap chain with the ratio for each

Simulator — each leg priced at a target ratio, against the current one

iPhone lock screen with four Rebalancer alerts delivered, each naming a pair and the ratio it reached

Alerts — delivered on the lock screen when a ratio crosses its threshold

The SOL/XRP pair screen with its ratio chart and a tracked-coins block restating each holding in the other coin

Pair screen — both holdings restated in the coin on the other side

The backend behind them

Biggest challenge

The alert is the product, and an alert has to arrive with the app closed — that one requirement pulled a backend behind a one-person design project. Price sources that answer a phone refuse a data centre, iOS background refresh cannot be trusted, and an alert that has fired must not fire again: every one of those is a server problem, not a screen.

Cloudflare Workers Cron Triggers KV D1 R2 Expo Push APNs Pages StoreKit 2

05 · Four flows, four things I had wrong

Testing

Two rounds through TestFlight, on other people's phones. Each flow gave up one thing I had assumed, and each one changed the build.

01Creating a pair

FoundNobody could see how to enter the amounts they hold from the watchlist.

ChangedA prompt button on the watchlist, so holdings go in without leaving the screen you are on.

02Living with the watchlist

FoundThe first thing people reached for was reordering the cards.

ChangedPress and hold to drag — the order of the list is the user's, not mine.

03Pair detail and the simulator

FoundPeople expected the app to remember their holdings and carry them into the simulator.

ChangedA MAX button that fills in the saved holding, so the simulator starts from real numbers.

04Hitting the free limits

FoundThe paywall landed out of nowhere and read as a wall.

ChangedA plain note that the free limit is reached first, with a way to read about Pro — so going further is a choice, not an ambush.

06 · Shipping to a market that is not one country

Publish on the App Store

The listing had to sell the same idea in every storefront, so the cards lead with the pair — not the feature list.

Listing card: “Create custom pairs — that exchanges don't show”, over the watchlist screen

Create custom pairs

Listing card: “See tracked coins convert”, over the holdings screen

See tracked coins convert

Listing card: “Get alerted on your custom pairs”, over a lock screen of delivered alerts

Get alerted on your pairs

Listing card: “Plan the rebalance, step by step”, over the simulator

Plan the rebalance

Listing card: the app collects no personal data — on-device, no accounts, no wallets, tracker only

No accounts, no wallets

Localization

The audience for an ALT/ALT tool isn't in one country, so English-only would have narrowed the position from the start. The work was absorbing each market's requirements without growing a settings screen per market — that, not the word count, is what took the time.

31 languages in the app

A country code where the language belongs to one market. English, Español, Français, Русский and both Chinese scripts are spoken across several, so those carry the name alone.

English Español Français Deutsch Italiano Nederlands Português (BR) Português (PT) Русский Українська Polski Čeština Slovenčina Hrvatski Magyar Română Български Ελληνικά Türkçe Suomi Svenska Norsk Dansk 简体中文 繁體中文 日本語 한국어 हिन्दी ไทย Bahasa Indonesia Tiếng Việt

AI translation

Generate all 31 languages

Gemini pass

Second-pass quality review

07 · What the app has to tell me next

Analytics and post-launch research

Analytics is in place and the reading of reviews and channels carries on. The question it has to answer first: whether a first alert leads to a second — the signal that it has entered someone's routine.

First questions
Whether a first alert leads to a second Which flow people stop at Whether the free limits sit in the right place

08 · Live, and shipped solo

Outcome

It's live. One person took it from concept to the App Store — design, app, backend and delivery in the same loop. What it settles into in people's routines is the next thing to measure.

The interface ships in 31 languages, so the audience was never scoped to one market.

The Rebalancer Tool page on the App Store: icon, the subtitle “Create your own pairs”, a 5.0 rating, the Finance category, and the five listing cards

The product page as it stands in the store — the same pair-first pitch, from the subtitle down to the cards.

Live on the App Store
31 languages in the app
Solo concept → App Store

09 · What the build taught me

Reflection

What I'd do differently

The backend turned out bigger than I scoped it. Next time I'd size the invisible parts first, before a line of interface exists.

What I learned

The line between designer and developer is thinner than it used to be. With AI I shipped something end-to-end that would normally take a team — but AI accelerates the parts you understand and is useless for the parts you don't.

Next case → DobroDoc+ — Online Medical App
01 Problem 02 Roadmap 03 Research 04 Prototype 05 Testing 06 Publish 07 Analytics 08 Outcome 09 Reflection