⌘K
For Android & iOS teams

Ship native apps without waiting

Write screens in Kotlin, Swift, or TypeScript. Deploy without a store review. Monitor production's distribution.

terminal


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.

terminal

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.

1

Add the SDK dependency to your project

2

nativeblocks init — auth and project config

3

nativeblocks code-gen — generates typed DSL

4

Deploy with CLI and you're live

CLI

terminal

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.

v1.2.0
Live
v1.1.2
Active
v1.1.0
Active
v1.0.0
Archived
~10 sec

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.

64%
active on v1.2.0
36%
active on v1.1.0

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
Learn about Code Push

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.

v1.2.0
64%
v1.1.2
23%
v1.1.0
9%
older
4%

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.

12,847↑ 18% vs last month
JanAprJulOctDec

Release management

Live status for every tagged release. Roll out, pause, or revert from one place.

v1.2.0
Rolling out
v1.1.2
Active
v1.1.0
Active
v1.0.0
Archived

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