Radical

Radical runs your web app in native shells

An introduction to Radical for developers who already use server-rendered web apps.

Radical runs a web UI in Android and iOS WebViews. The Vite plugin generates the native projects; an Effect bridge connects the UI to native capabilities. Your framework keeps routing, rendering, data fetching, and HTTP handling.

TanStack Start is the implemented adapter. React hooks expose capabilities; custom plugins use Effect Schema manifests.

Where the UI lives

ModeUI sourceServer workOffline startup
Remote, the defaultConfigured HTTP originDocuments and dataVisited route snapshots or packaged fallback
BundledPackaged SPA assetsAPI and server functionsPackaged UI; remote data needs app-owned handling

Both modes share the native bridge. Browser behavior depends on each capability.

Platform boundaries

CapabilityAndroidiOSBrowser
CLI build and runGradle and adb; emulator or USB deviceXcode on macOS; iPhone simulatorVite dev server
Physical deviceCLI with adb targetApp-owned signing and Xcode runNot applicable
Native APIsEnabled manifestsEnabled manifestsCapability-specific web services
UI deliveryRemote or bundledRemote or bundledWeb origin

Radical does not provide authentication, store distribution, or a database. Native context describes presentation and cannot prove identity.

On this page