Ship native apps without waiting
Write screens in Kotlin, Swift, or TypeScript. Deploy without a store review. Monitor production's distribution.
❯
How it works
From your terminal to every user's phone, in three steps.
Integrate the SDK
Add Nativeblocks to your project and import your existing components.
// Initialize SDK
NativeblocksManager.initialize(
applicationContext = this,
edition = NativeblocksEdition.Cloud(
endpoint = NATIVEBLOCKS_API_URL,
apiKey = NATIVEBLOCKS_API_KEY
))
// Import your component
@NativeBlock(
name = "My Button",
keyType = "MY_BUTTON"
)
@Composable
fun MyButton(...) { }
Build with the DSL
Write screens using the Nativeblocks DSL in Kotlin, Swift, or TypeScript.
val title: STRING = remember("Hello")
androidFrame(route = "/welcome")
.variables(title)
.rootBlock {
nativeblocksColumn(key = "root")
.content {
nativeblocksText(key = "heading")
.setTextData(title)
myButton(key = "cta")
.onClick { navigate("/home") }
}
}
Deploy and see it live
Push to production with one command. Users get it on next app open.
❯ nativeblocks frame deploy
--file welcome
--tag v1.2.0
Bundling frame...
✓ Frame validated
✓ Upload complete
✓ v1.2.0 live in production
The tools you actually need
One SDK, one CLI. Works with your existing Android and iOS codebase.
Nativeblocks SDK
// MainActivity.kt
NativeblocksManager.initialize(
applicationContext = this,
edition = NativeblocksEdition.Cloud(
endpoint = NATIVEBLOCKS_API_URL,
apiKey = NATIVEBLOCKS_API_KEY
)
)
// Render a frame
NativeblocksFrame(route = "/")
Kotlin, Swift & TypeScript
Drop the SDK into your existing project. No new language, no architecture changes.
- Under 1 MB
- Jetpack Compose & SwiftUI
- Works with your existing components
- Hot-reload in development
Set up in minutes
From zero to a running frame in four steps.
Add the SDK dependency to your project
nativeblocks init — auth and project config
nativeblocks code-gen — generates typed DSL
Deploy with CLI and you're live
CLI
❯ nativeblocks init
Authenticating...
✓ Project configured
❯ nativeblocks code-gen
Reading integrations...
✓ Typed DSL generated
❯ nativeblocks frame deploy --tag v1.0.0
✓ v1.0.0 registered
Roll back in one click
Tag every release. If something breaks, you're one click away from the last good version.
Typical rollout time
Updates reach users on next app open. No App Store queue.
A/B Testing
Pass user context to the SDK and let the dashboard serve different frames per segment.
NativeblocksManager.getInstance()
.setGlobalParameters(
"language" to "EN",
"country" to "US",
"appVersionCode" to "45"
)
Tag distribution
See what percentage of your active users are on each tagged release this month.
Push a fix before users file a ticket
Run nativeblocks frame deploy. Users pick up the change on next app open. No store submission, no review queue.
- No App Store or Play Store submission
- Target by user, version, or percentage
- Roll back to any previous release instantly
- Tag releases for controlled production rollouts
See what's going on in production
Tag distribution, active users, and release status. Without leaving the dashboard.
Tag distribution
See what percentage of your active users are on each tagged release this month.
64% of active users on v1.2.0 this month
Daily active users
Watch engagement as you roll out. Spot drops before they turn into support tickets.
Release management
Live status for every tagged release. Roll out, pause, or revert from one place.
Trusted by innovative teams
Companies signed up to use Nativeblocks
Stop waiting for review cycles
A UI fix shouldn't take a week to ship. With Nativeblocks, it takes a command.
No credit card required · Free tier available
