The modern Android toolchain
Declarative UI. File-based routing. Zero-config tooling. Ship production apps in minutes, not days.
curl -fsSL https://whitehall.sh/install | bash@prop val user: User
<Column class="gap-16 p-20">
<Image src={user.avatar} class="w-64 h-64" />
<Text class="text-xl font-bold">
{user.name}
</Text>
@if (user.isVerified) {
<Badge color="primary">Verified</Badge>
}
<Button onClick={() => $navigate("/profile")}>
View Profile
</Button>
</Column>Compiles to pure Kotlin/Compose. Zero runtime. Zero overhead.
Reactive by default. Just use var and watch it update.
Drop a file. Get a screen. Navigation just works.
No Gradle. No SDK installs. Just code and run.
One toolchain. Everything you need to build, test, and ship Android apps.
$fetch with caching, loading states, and error handling built in.
Page transitions, list animations, and shared elements with simple directives.
Type-safe $navigate with params, state, and deep linking.
Reactive var, global stores with @store, and ViewModels.
$dispatch and $periodic for WorkManager tasks.
Built-in formatter, linter, and hot reload for fast iteration.
One command to install. Three commands to your first app.