{"schema_version":"1.1","reviewed":"2026-10-10","selection_guide":"/choose.md","selection_rules":{"component":{"field":"kind","match":"includes"},"ui_preference":{"field":"ui","match":"equals"},"static_hosting":{"field":"host","values":["static"]},"offline_browser":{"field":"ui","values":["client","full"]},"native_both":["ios","android"],"unknown_is_supported":false},"coverage_gaps":["Desktop stack preparation","C# and .NET stack preparation","Embedded and game development preparation","Exact dependency compatibility qualification","Executable starter projects","Representative cross-stack agent delivery comparisons"],"profiles":[{"id":"elixir-phoenix-liveview","title":"Phoenix + LiveView","language":"Elixir","group":"Web applications","summary":"Connected products, live updates and background work in one application.","shape":"Phoenix · LiveView · Ecto · PostgreSQL","kind":["web","api"],"ui":"server","host":"server","selection":{"native_ui":false,"static_hosting":false,"offline_client_candidate":false},"use_cases":["Connected browser products and portals","Real-time collaboration interfaces","JSON APIs for native clients","Durable application background work"],"choose_when":["Server-owned state and business rules dominate a connected product.","Phoenix conventions and OTP process lifecycles match the service requirements.","A relational store can also support durable background jobs."],"avoid_when":["The main deliverable is a platform-native mobile UI or offline-first client.","The application depends on a library, accelerator or vendor SDK unsupported by the intended Elixir deployment.","A small static site, simple script or CLI does not need a running web application."],"tradeoff":"A persistent server owns the UI state. Use a separate client for substantial offline work.","guide_url":"/stacks/elixir-phoenix-liveview/","markdown_url":"/stacks/elixir-phoenix-liveview/guide.md","json_url":"/stacks/elixir-phoenix-liveview/record.json"},{"id":"typescript-next-node","title":"Next.js","language":"TypeScript","group":"Web applications","summary":"React interfaces with server rendering, routes and application logic.","shape":"React · Next.js · PostgreSQL · Drizzle","kind":["web"],"ui":"full","host":"node","selection":{"native_ui":false,"static_hosting":false,"offline_client_candidate":true},"use_cases":["Authenticated web products","Server-rendered React interfaces","Browser applications with owned APIs and relational data"],"choose_when":["Shared TypeScript contracts and React UI are useful","Server rendering or a web-facing backend is required","Team accepts explicit server/client and cache boundaries"],"avoid_when":["Only static editorial content is required","Existing API already owns all backend responsibilities and SSR is unnecessary","Native mobile or desktop UI is the deliverable"],"tradeoff":"Server/client boundaries, caching and deployment adapters need deliberate design.","guide_url":"/stacks/typescript-next-node/","markdown_url":"/stacks/typescript-next-node/guide.md","json_url":"/stacks/typescript-next-node/record.json"},{"id":"typescript-react-vite-browser","title":"React + Vite","language":"TypeScript","group":"Web applications","summary":"An interactive browser app connected to an existing or separate API.","shape":"React · Vite · TypeScript · your API","kind":["web"],"ui":"client","host":"static","selection":{"native_ui":false,"static_hosting":true,"offline_client_candidate":true},"use_cases":["Interactive dashboards","API-backed browser tools","Client-rendered applications"],"choose_when":["Backend/identity already have owners","SSR is not a product requirement","Browser UI and API can be deployed independently"],"avoid_when":["Searchable server-rendered content is central","The task requires native device UI","Team expects the frontend scaffold to supply backend auth or persistence"],"tradeoff":"This is a frontend. Your backend still owns identity, data permissions and durable work.","guide_url":"/stacks/typescript-react-vite-browser/","markdown_url":"/stacks/typescript-react-vite-browser/guide.md","json_url":"/stacks/typescript-react-vite-browser/record.json"},{"id":"rails-hotwire-postgresql","title":"Rails + Hotwire","language":"Ruby","group":"Web applications","summary":"Database-backed products with HTML, accounts and jobs close together.","shape":"Rails · Turbo · Stimulus · PostgreSQL","kind":["web"],"ui":"server","host":"server","selection":{"native_ui":false,"static_hosting":false,"offline_client_candidate":false},"use_cases":["SaaS","Business CRUD","Collaboration and workflow products"],"choose_when":["An integrated monolith and server-owned UI fit the product.","A small team benefits from stable conventions and limited integration work."],"avoid_when":["The core is an offline-first canvas or requires extensive browser-owned state.","Hard CPU/latency constraints justify a specialist service."],"tradeoff":"Rich offline or canvas-heavy interfaces can need a separate client.","guide_url":"/stacks/rails-hotwire-postgresql/","markdown_url":"/stacks/rails-hotwire-postgresql/guide.md","json_url":"/stacks/rails-hotwire-postgresql/record.json"},{"id":"laravel-livewire-postgresql","title":"Laravel + Livewire","language":"PHP","group":"Web applications","summary":"PHP product applications with a cohesive UI, auth and queue toolset.","shape":"Laravel · Livewire · Blade · PostgreSQL","kind":["web"],"ui":"server","host":"server","selection":{"native_ui":false,"static_hosting":false,"offline_client_candidate":false},"use_cases":["SaaS","Administrative and business applications","Server-driven interactive products"],"choose_when":["PHP team or Laravel ecosystem fit is strong.","Integrated auth, queues and concrete agent inspection tools reduce assembly work."],"avoid_when":["The UI fundamentally requires an offline/client-state architecture; use the Inertia alternative if Laravel still fits.","A hosting plan cannot operate needed queue workers or scheduled jobs."],"tradeoff":"The web process, queue workers and scheduler each need deployment supervision.","guide_url":"/stacks/laravel-livewire-postgresql/","markdown_url":"/stacks/laravel-livewire-postgresql/guide.md","json_url":"/stacks/laravel-livewire-postgresql/record.json"},{"id":"python-django","title":"Django","language":"Python","group":"Web applications","summary":"Data-heavy products with an ORM, forms, accounts and admin.","shape":"Django · PostgreSQL · uv · pytest","kind":["web"],"ui":"server","host":"server","selection":{"native_ui":false,"static_hosting":false,"offline_client_candidate":false},"use_cases":["CRUD-heavy SaaS","Internal products and admin tools","Server-rendered business applications"],"choose_when":["Accounts, forms, admin and database workflows are central","A cohesive conventional monolith reduces integration decisions"],"avoid_when":["Only a small stateless endpoint is needed","The core workload needs a different runtime or hard real-time guarantees"],"tradeoff":"Interactive clients and long-running jobs require their own interface and worker choices.","guide_url":"/stacks/python-django/","markdown_url":"/stacks/python-django/guide.md","json_url":"/stacks/python-django/record.json"},{"id":"go-service","title":"Go service","language":"Go","group":"APIs & services","summary":"HTTP APIs and backend services with a straightforward binary deployment.","shape":"net/http · pgx · sqlc · PostgreSQL","kind":["api"],"ui":"none","host":"binary","selection":{"native_ui":false,"static_hosting":false,"offline_client_candidate":false},"use_cases":["APIs","control planes","concurrent network services","background workers"],"choose_when":["Prefer explicit service code and standard tooling","Kubernetes or Go infrastructure integration matters","PostgreSQL already owns business state"],"avoid_when":["Need a batteries-included product framework","Hard real-time or no-GC constraints","Rich client UI is the primary product"],"tradeoff":"Product features such as authorization and administration need explicit assembly.","guide_url":"/stacks/go-service/","markdown_url":"/stacks/go-service/guide.md","json_url":"/stacks/go-service/record.json"},{"id":"rust-service","title":"Rust service","language":"Rust","group":"APIs & services","summary":"Services where runtime control and explicit resource handling matter.","shape":"Axum · Tokio · SQLx · PostgreSQL","kind":["api"],"ui":"none","host":"binary","selection":{"native_ui":false,"static_hosting":false,"offline_client_candidate":false},"use_cases":["Native network services","resource-sensitive APIs","services sharing a Rust core"],"choose_when":["Memory/resource control or Rust library reuse is important","Team accepts ownership/async complexity for compile-time guarantees"],"avoid_when":["Primary goal is conventional CRUD delivery with minimal framework assembly","Team cannot maintain Rust async code","A full product framework is needed immediately"],"tradeoff":"Async runtime and type complexity add development work; measure the reason to choose them.","guide_url":"/stacks/rust-service/","markdown_url":"/stacks/rust-service/guide.md","json_url":"/stacks/rust-service/record.json"},{"id":"python-fastapi","title":"FastAPI","language":"Python","group":"APIs & services","summary":"Typed Python APIs alongside Python integrations, data or AI libraries.","shape":"FastAPI · Pydantic · SQLAlchemy · Alembic","kind":["api"],"ui":"none","host":"server","selection":{"native_ui":false,"static_hosting":false,"offline_client_candidate":false},"use_cases":["Typed JSON APIs","Integration services","HTTP endpoints for model or worker products"],"choose_when":["API contracts and Python integrations matter more than built-in product/admin UI","A separate frontend or service boundary already exists"],"avoid_when":["The team mostly needs accounts, admin, forms and CRUD that Django supplies","Blocking or CPU-intensive jobs would be run inside request event loops"],"tradeoff":"Authentication, migrations and durable jobs are separate integration decisions.","guide_url":"/stacks/python-fastapi/","markdown_url":"/stacks/python-fastapi/guide.md","json_url":"/stacks/python-fastapi/record.json"},{"id":"go-cli","title":"Go CLI + TUI","language":"Go","group":"Tools & automation","summary":"Command-line applications and terminal interfaces distributed as binaries.","shape":"Cobra · Bubble Tea when needed · GoReleaser","kind":["cli"],"ui":"terminal","host":"binary","selection":{"native_ui":false,"static_hosting":false,"offline_client_candidate":false},"use_cases":["Shipped command-line products","infrastructure administration tools","terminal dashboards"],"choose_when":["Want compiled distribution with Go ecosystem access","Command structure and terminal UX matter more than tight low-level control"],"avoid_when":["Primarily a short disposable script","Host SDK or native UI framework mandates another language","Strict no-GC constraints"],"tradeoff":"Test every target platform; interactive terminals and redirected output have different needs.","guide_url":"/stacks/go-cli/","markdown_url":"/stacks/go-cli/guide.md","json_url":"/stacks/go-cli/record.json"},{"id":"rust-cli","title":"Rust CLI + TUI","language":"Rust","group":"Tools & automation","summary":"Portable command-line tools with explicit memory and resource control.","shape":"Clap · Ratatui when needed · Cargo","kind":["cli"],"ui":"terminal","host":"binary","selection":{"native_ui":false,"static_hosting":false,"offline_client_candidate":false},"use_cases":["Fast native developer tools","parsers and analyzers","shipped terminal applications"],"choose_when":["Need native performance or reuse of Rust libraries","Want ownership/type checks around complex transformations"],"avoid_when":["Disposable automation would be simpler in Python or shell","Build latency and cross-toolchains outweigh runtime needs"],"tradeoff":"Cross-compilation and native dependencies still need target-specific qualification.","guide_url":"/stacks/rust-cli/","markdown_url":"/stacks/rust-cli/guide.md","json_url":"/stacks/rust-cli/record.json"},{"id":"python-scripts-workers","title":"Python automation + AI","language":"Python","group":"Tools & automation","summary":"Scripts, integrations and workers close to the Python data and AI ecosystem.","shape":"uv · Pydantic · HTTPX / provider SDK · pytest","kind":["automation"],"ui":"none","host":"server","selection":{"native_ui":false,"static_hosting":false,"offline_client_candidate":false},"use_cases":["Reusable automation scripts","Scheduled imports and transformations","Model/tool orchestration workers"],"choose_when":["The deliverable is a bounded task or worker rather than a web product","Python SDKs or data libraries materially simplify integrations"],"avoid_when":["A one-off script is being expanded into an undocumented product backend","Hard real-time deadlines or a native deployment requirement dominate"],"tradeoff":"Persistent workers need an execution platform; model outputs and tool calls need validation.","guide_url":"/stacks/python-scripts-workers/","markdown_url":"/stacks/python-scripts-workers/guide.md","json_url":"/stacks/python-scripts-workers/record.json"},{"id":"swift-swiftui-ios","title":"Swift + SwiftUI","language":"Swift","group":"Native mobile","summary":"Native iPhone and iPad apps using Apple's UI and platform APIs.","shape":"SwiftUI · Swift concurrency · SwiftData · Xcode","kind":["ios"],"ui":"native","host":"native","selection":{"native_ui":true,"static_hosting":false,"offline_client_candidate":true},"use_cases":["iPhone and iPad products","Native Apple integrations","Accessible mobile clients for a shared service"],"choose_when":["Apple-native UI and platform capabilities are requirements","A Mac/Xcode build environment and Apple distribution ownership are available"],"avoid_when":["The requirement is a single shared UI across iOS and Android","There is no supported macOS/Xcode build environment"],"tradeoff":"Apple builds and distribution need macOS/Xcode; Android needs its own client.","guide_url":"/stacks/swift-swiftui-ios/","markdown_url":"/stacks/swift-swiftui-ios/guide.md","json_url":"/stacks/swift-swiftui-ios/record.json"},{"id":"kotlin-compose-android","title":"Kotlin + Compose","language":"Kotlin","group":"Native mobile","summary":"Native Android apps with platform UI, lifecycle and storage integration.","shape":"Compose · ViewModel · Room · Coroutines","kind":["android"],"ui":"native","host":"native","selection":{"native_ui":true,"static_hosting":false,"offline_client_candidate":true},"use_cases":["Android phones, tablets and foldables","Native Android integrations","Accessible mobile clients for a shared service"],"choose_when":["Android-native UI and platform behavior are requirements","The team can own an Android SDK, emulator/device and signed release pipeline"],"avoid_when":["The requirement is a single shared UI for Android and iOS","No Android device or emulator verification can be performed"],"tradeoff":"Device diversity and background restrictions need Android-specific checks; iOS is a separate client.","guide_url":"/stacks/kotlin-compose-android/","markdown_url":"/stacks/kotlin-compose-android/guide.md","json_url":"/stacks/kotlin-compose-android/record.json"}]}
