← Files AppllamaARCHIVED FILE
skills/appllama-usage/references/build-from-scratch.md
5.22 KB · Oct 4, 2026 · 12:13 UTC
# Playbook: build an app from scratch
The user says "build me a habit tracker" (or any category). This is the full
loop. Do not stop early: the goal is a finished app where every screen is
verified better-than-reference in the simulator — not a scaffold.
## Phase 1 — Find the winners
1. Translate the user's need and priorities into 1–3 `search_apps` queries
("habit tracker", "habit tracker with streaks and social accountability").
Add filters that encode the user's ambitions — e.g. `revenue_min` to bias
toward proven money-makers, `launched_after` for modern design language.
2. From the results, shortlist the **top 5** by a blend of revenue,
rating, downloads, and fit to the user's brief — not revenue alone.
The flow lists in the results tell you a lot before you even open an
app: one with `Paywall: 9` screens has a monetization story worth
studying; one with `Onboarding: 25` is quiz-onboarding heavy.
3. `get_app` each shortlisted app. Record metrics + flows in
`research/<category>/apps.md`.
## Phase 2 — Study every screen of the top 5
For each shortlisted app, walk `list_app_screens` page by page — ALL of it,
in journey order, and look at every image. Design language lives in the
pixels, not the metadata. As you go, build the app's `screens.md`: screen
id, name, flow, notable elements, palette — and download the screens so you
can read the journey side by side.
You are extracting the **category's design language**, so read across apps,
not just within one:
- What does the first-open moment look like in this category?
- How long is onboarding, and what does each step *earn* (permission,
personalization data, commitment)?
- Where does the paywall sit, and what's on it (trial framing, price
anchoring, feature grid, social proof)?
- What's the home-screen information hierarchy? What's one tap away?
- What do empty states, streaks/progress, and notifications look like?
Write the synthesis into `patterns.md`: the psychology of the category —
what every winner does (table stakes), what only the best do (edge), and
what all of them do badly (your opening).
## Phase 3 — Frame-by-frame on the top 3
Pick the 3 strongest apps and re-walk their decisive flows screen by screen
(`list_app_screens` with `flow=` filters; `get_screen` on pivotal screens to
see similar-screen alternatives across the library). For each screen answer:
what is its ONE job, what makes it work, what would you change. This is
where you stop being a catalog and start being a design director.
## Phase 4 — Design the feature set
From `patterns.md`, write the app's spec: the best features across all
studied apps, minus the bloat, plus the opening you found. Screen list with
flows, in journey order — and the **navigation map**: for every screen, what
it *is* (push, modal with its own stack, form sheet, full-screen modal,
overlay, tab root) and what back does from it, including the one-way doors
(sign-in, onboarding done, purchase, finished session) where back must not
re-enter the old state. The grammar comes from appllama-app-design-skill's
Navigation laws; the evidence comes from the flows you walked —
note whether each winner presents its composer as a modal, its filters as a
sheet, its detail as a push, and copy that consistency. Get user sign-off on
the spec if they're present; otherwise state your choices and proceed.
## Phase 5 — Build screen by screen
For EVERY screen, in journey order:
1. Re-open your references for that screen type (your local board first;
`search_screens` for gaps — both modes, they surface different screens).
2. Build it following **appllama-app-design-skill** end to end (HIG fidelity,
semantic colors, native controls, motion laws, state architecture).
3. Generate image assets with the best image model available (imagegen /
Higgsfield MCP or CLI / whatever is present) at the highest quality — one
style system for the whole app, per appllama-app-design-skill's
references/image-assets.md.
4. **Simulator loop until flawless**: run on the iOS Simulator (or Android
emulator), screenshot, actually look, exercise the motion frame by frame,
check the Dynamic Island / safe areas / dark mode / Dynamic Type, fix,
repeat. The checklist lives in appllama-app-design-skill's
references/simulator-loop.md. A screen isn't done because it compiles —
it's done when you can't find a flaw and it stands next to the top-3
references without embarrassment.
5. State management stays boring and strong (server state / client state /
ephemeral separation per the design skill). Motion is tracked and
verified, not assumed.
## Phase 6 — The bar
Walk the whole app in the simulator as a new user, three times: happy path,
skeptic path (skip everything skippable), abuse path (bad input, offline,
interrupt mid-flow, and every back path — chevron, edge swipe, Android
hardware back, active-tab re-tap — especially right after sign-in,
onboarding, a purchase and a finished session, where back must fail to
re-enter the old state). Compare each flow against the best reference you
studied. If any screen of yours is worse than the best equivalent screen in
your research, it goes back into the loop. **You cannot declare the build
finished until every screen holds that comparison.**
SHA-256: ec11a7112e1f7988e294a3b90a94820f55f98ee0ad396e0028bb74fd67227983