Constraints And Signals

Signals override defaults. A simple web app can become native when a single non-negotiable platform API appears. A planned backend can disappear when local-first data and export are enough.

Strong Override Signals

SignalUsually pushes towardWhy
Restricted permissionsNative mobileStore policy and OS permission UX define the product
SMS, contacts, background location, Bluetooth, NFCNative mobileBrowser and cross-platform abstractions can be incomplete or policy-limited
Budget-device performanceNative mobile or carefully scoped PWAFramework overhead matters when devices are weak
Offline-first with local ownershipNative, desktop, PWA, or CLIAvoid backend-first until sync is required
Heavy file-system workflowsDesktop shell or CLIBrowser file APIs rarely match native ergonomics
Command-palette desktop UXElectron or carefully tested TauriRendering/focus consistency can matter more than binary size
Store-native trustNative mobile or native WindowsStore listing, permissions, and updates shape user trust
Shared accounts and rolesBackend/APIYou need server-side identity and authorization
Tool execution by AIAI-native stackPrompt instructions are not a security boundary

Weak Signals

These are not enough by themselves:

  • “I know React.”
  • “AI is better at this stack.”
  • “This framework is lighter.”
  • “We might need sync later.”
  • “It should be cross-platform eventually.”
  • “The demo looks native.”

Release Signals

Distribution is often the hidden deciding factor.

Release pathQuestions to answer
URL/static hostingIs it public, private, protected, or tailnet-only?
PWA installWhich browsers/devices must install and work offline?
Play StoreWhich permissions need declarations, review, and policy evidence?
Microsoft Store/MSIXIs the app packaged, unpackaged, store-distributed, or sideloaded?
Direct desktop downloadHow will signing, reputation, updater, and support work?
CLI packageWhich package manager or binary download path is real for users?

Warning: A dev command is not a release gate. A stack is not proven until the app can build in the release shape users will receive.