Ladder Map

Start at the top and stop at the first rung that is truly required. If two rungs look plausible, pick the lower-operational-cost rung and write the escape hatch.

flowchart TD
    idea([App idea]) --> content{"Mostly content, docs, reports, or prototype?"}
    content -->|Yes| staticWeb["Static Astro or static web"]
    content -->|No| browserOk{"Can browser APIs cover the product?"}
    browserOk -->|Yes| pwa["Web app or PWA"]
    browserOk -->|No| mobileDeep{"One mobile OS needs deep platform APIs?"}
    mobileDeep -->|Yes| nativeMobile["Native mobile"]
    mobileDeep -->|No| bothMobile{"Android and iOS at launch?"}
    bothMobile -->|Yes| crossMobile["Expo or Flutter"]
    bothMobile -->|No| desktopNeed{"Desktop app required?"}
    desktopNeed -->|Yes| desktop["Tauri, Electron, Windows App SDK, or Wails"]
    desktopNeed -->|No| cliNeed{"Automation or developer workflow?"}
    cliNeed -->|Yes| cli["CLI"]
    cliNeed -->|No| serverNeed{"Shared state, auth, payments, jobs, or integrations?"}
    serverNeed -->|Yes| backend["Backend/API plus thin UI"]
    serverNeed -->|No| aiNeed{"AI tools, MCP, local models, or sandboxing core?"}
    aiNeed -->|Yes| aiNative["AI-native app stack"]
    aiNeed -->|No| smaller["Re-scope to a smaller web, local, or CLI app"]

How To Use It

  1. Write one sentence for the product shape.
  2. Walk the ladder and stop at the first required rung.
  3. List the constraints that forced that rung.
  4. List the constraints that did not matter yet.
  5. Define the quality gate that proves the choice works.

What The Ladder Optimizes

PriorityMeaning
Smallest maintainable surfaceFewer runtimes, fewer release paths, fewer policy gates
Platform fitUse native when the app depends on native permissions, UX, or APIs
Distribution realityStore review, signing, installer reputation, and updates count as product work
Local-first by defaultKeep data local until shared state is a requirement
AI-agent safetyPrefer stacks with official docs, commands, examples, and known traps

Tip: The ladder is not a ranking of technologies. It is a way to avoid paying for a bigger stack before the product earns it.