← Back to archive

Repo of the Day

vercel-labs/native: Toolkit for building native desktop apps

Published: Aug 11, 2026

Open repository ↗

Toolkit for building native desktop apps

Summary

Native SDK is a toolkit for building native desktop applications using TypeScript and a Native markup format, compiling app logic and views into a native executable that renders in OS windows. It also supports Zig cores and optional embedded web content. The repository is marked as a Vercel Labs experiment, and the README notes that platform capabilities vary and mobile support is still evolving.

What it is useful for

Native SDK targets engineers who want to ship a desktop application without bundling a browser-based runtime. Its model-update-view loop dispatches typed messages to an update function that returns the next model and effects, with the view derived from that model, which fits apps where a clear state machine is helpful. The example apps demonstrate the toolkit's range: a chatbot with streaming responses and text editing, a soundboard with audio and asset handling, a system monitor with subprocesses, tables, and timers, and a calculator focused on keyboard input and theming.

The toolkit is less suited when you need consistent behavior across every desktop platform today, since it is labeled experimental and explicitly says mobile support is still evolving. Engineers who need a stable, production-ready desktop framework should treat this as a starting point rather than a finished runtime.

How engineers can use it

The documented quick start installs the CLI globally with Node.js 24 or later, then scaffolds and runs a sample counter app:

npm install -g @native-sdk/cli
native init my_app
cd my_app
native dev

The generated project contains src/core.ts (the model, messages, and update function), src/app.native (the view with layout, bindings, and message dispatch), and app.json (app identity, windows, permissions, and security settings). native dev watches markup changes and reloads the view while preserving state; TypeScript core changes rebuild and restart the app. The README also documents native dev --core to run core logic under Node.js without opening a window, native check to validate the project, and native build to produce a release binary. Teams can scaffold a Zig project instead with native init my_app --template zig-core.

External work such as filesystem or network access runs through effects and TypeScript services rather than directly inside update, and the CLI uses a Zig toolchain from PATH or offers to download the pinned version. For full platform prerequisites and the complete workflow, the README points to a Quick Start guide, and the example catalog lists additional apps to study before committing to a design.