Cross-platform does not mean pretending every host is the same. Fission keeps product behavior shared while validating the parts that belong to each platform.
Desktop
Native app loop
macOS, Windows, and Linux provide the fast local loop for product UI, diagnostics, and desktop packaging paths.
Mobile
Real host projects
Android and iOS hosts keep the shared model intact while validating touch, lifecycle, safe areas, keyboards, package outputs, and stores.
Web
Browser delivery
The web shell compiles the app for browser delivery without moving product behavior into a separate JavaScript application.
Target model
Use the fastest loop until the host itself matters.
macOS, Windows, Linux, Web, Android, iOS, Terminal, Static site, and SSR should all be tested as real outputs. The right target depends on the behavior you are proving.
Desktop
Use the fastest local host
macOS, Windows, and Linux keep the iteration loop short while still exercising layout, rendering, input, capabilities, and packaging expectations.
The web target keeps application behavior in Rust while the browser host owns WebAssembly loading, renderer selection, assets, and web-specific diagnostics.
Move between hosts without rewriting product code.
01
Choose the fastest loop
Use desktop when it answers the current product question fastest.
02
Switch to the host
Use browser, emulator, simulator, or device runs when the host is part of the behavior.
03
Package intentionally
Move from target run to target package without losing the app model.
Real targets
macOS, Windows, Linux, Web, Android, iOS, Terminal, Static site, and SSR are production targets with host-specific validation where the platform boundary matters.