| Static/content | The app is mostly pages, reports, docs, or generated snapshots | Users need per-request personalization, auth, sessions, or write APIs | Astro/static site, static assets, private preview route |
| Web/PWA | Browser APIs satisfy the product and install/offline helps | Restricted permissions or reliable native background work are core | Web app, manifest, service worker, IndexedDB/cache plan |
| Native mobile | One mobile platform’s permissions, UX, or performance dominate | You need equal Android+iOS launch without deep native behavior | Kotlin Compose or SwiftUI, local DB, platform tests |
| Cross-platform mobile | Android and iOS both matter and native needs are standard | One platform requires deep custom native work | Expo/React Native or Flutter with native escape hatches |
| Desktop shell | Local files, OS windows, tray/menu, sidecars, or offline desktop UX matter | A browser/PWA gives enough UX and distribution | Tauri/Electron/Wails/Windows App SDK, local storage, updater plan |
| CLI | The product is automation or developer workflow | Non-technical users need visual flows | Library core, CLI commands, shell completions, package distribution |
| Backend/API | Shared state, auth, payments, jobs, integrations, or server trust are required | Local/static can meet the v1 promise | API, DB, migrations, job runner, health checks, thin UI |
| AI-native | AI tools/data/workflows are the product architecture | AI is just a chat box or summarization feature | MCP/tool layer, workspace isolation, sandboxing, audit logs |